EDD REST API – Sales
The EDD REST API provides access to sales data via the /sales/ endpoint. The sales endpoint allows for you to query the database and retrieve information for recent sales. A basic sales query looks like this:
http://example.com/edd-api/sales/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70
Requests to the /sales/ endpoint accept the following parameters:
key– The API key to authenticate the request (required).token– The API token to authenticate the request (required).number– The number of records to return (optional).email– A search parameter to return only payments that match the given email (optional).id– The ID number of a specific payment record (optional).purchasekey– The purchase key for a specific payment record (optional).
For each sale returned, the following information will be available:
- ID – The sale ID number.
- key -The sale purchase key.
- subtotal – The sale subtotal.
- tax – The sales tax amount.
- fees – Any arbitrary fees that were added to the sale.
- total – The total sale amount.
- gateway – The payment method, such as stripe or paypal, used to make the purchase.
- email – The email address associated with the sale.
- date – The date the sale was made.
- discounts – List of discount codes used.
- products – A list of products purchased. For each product:
- id – The Product ID.
- quantity – The cart quantity for the item.
- name – The name of the product.
- price – The price of the product (after any discounts).
- price_name – The price option name that was purchased (if the product has variable prices).
An example sales query response looks like this:
{
"sales": [
{
"ID": 123,
"mode": "",
"status": "publish",
"transaction_id": 12323461261234,
"key": "ca2aaaa2a9e9e5369b8280403431b6fd",
"subtotal": 89,
"tax": "0",
"fees": null,
"total": "8.009",
"gateway": "manual",
"customer_id": "2",
"user_id": "0",
"email": "[email protected]",
"date": "2021-09-29 13:47:41",
"discounts": null,
"products": [
{
"id": 167,
"quantity": 1,
"name": "Stripe Pro Payment Gateway",
"price": 89,
"price_name": "Single Site"
}
],
},
{
"ID": 122,
"mode": "",
"status": "publish",
"transaction_id": 12324621266234,
"key": "7608c3f1b8f5e00b7f21add193ab7ced",
"subtotal": 199,
"tax": "0",
"fees": null,
"total": "199.00",
"gateway": "manual",
"customer_id": "2",
"user_id": "0",
"email": "[email protected]",
"date": "2021-09-29 13:30:59",
"discounts": null,
"products": [
{
"id": 1245716,
"quantity": 1,
"name": "Extended Pass",
"price": 199,
"price_name": ""
}
}
]
}
You can narrow the results down by email by adding “&[email protected]”. Replace “[email protected]” with the actual user’s email address for whom you want to show sales.
http://example.com/edd-api/sales/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&email=test@test.com
Retrieving Specific Sale Records
To retrieve a specific sale record, you can include either the id or the purchasekey parameter in the request.
For example, to retrieve a sale by the purchase key, the request looks like this:
http://example.com/edd-api/sales/?key=&token= &purchasekey=
To retrieve a sale by the ID, the request looks like this:
http://example.com/edd-api/sales/?key=&token= &id=
Searching Sale Records
Passing the email parameter will result in the API returning all sale records that match the given email address.
http://example.com/edd-api/sales/?key=&token= &email=