Get a list of orders placed on this platform
This Tango API endpoint is used to retrieve a list of orders associated with your platform and account. It is primarily used to retrieve all orders or a filtered subset, audit and track orders, monitor delivery status, support customer service and troubleshooting workflows.
This endpoint is typically used after orders have already been created through the API (for example, via POST {URI}/orders. You can track, audit, and manage your reward program by reviewing your previously paced orders.
Use case
Acme Health, a wellness‑benefits provider, uses Tango’s API to automate the distribution and tracking of health‑related rewards. These rewards are sent to employees and program participants when they complete activities such as annual checkups, fitness challenges, preventive screenings, or wellness milestones. Once Acme Health creates reward orders via POST {URI}/orders, they rely on GET {URI}/orders to track reward delivery status, monitor program performance, resolve participant issues, detect fraud or abnormal activity, and ensure timely fulfillment.
Endpoint
Use the following endpoint to retrieve a list of all reward orders placed under your platform:
| Endpoint | Purpose |
|---|---|
GET {URI}/orders | Get a list of Orders placed under this platform. |
Note:
GET {URI}/orderscurrently returns a maximum of 10,000 results. Use Tango API query parameters to filter and paginate large datasets more efficiently.
This endpoint supports query parameters: deliveryMethod, recipientMobileNumber , and deliveryStatus, allowing you to filter orders by delivery types like EMAIL, PHONE, ADDRESS, and EMBEDDED.
Parameters
Here is a list of query parameters offered with this endpoint to better filter your search results:
Query params | Data type | Description |
|---|---|---|
accountIdentifier | string | Specify the account to be queried. The string must have 5-100 characters. |
customerIdentifier | string | Specify the customer to be queried. The string must have 5-100 characters. |
externalRefID | string | Specify the external reference ID to be queried. The string may have up to 100 alphanumeric characters. |
startDate | string | Specify the starting date or date time to be queried according to RFC 3339, i.e. "2016-01-01" or "2016-01-01T00:00:00Z". See https://www.ietf.org/rfc/rfc3339.txt |
endDate | string | Specify the ending date or date time to be queried according to RFC 3339, i.e. "2016-01-01" or "2016-01-01T00:00:00Z". See https://www.ietf.org/rfc/rfc3339.txt |
elementsPerBlock | int32 | Specify the number of elements in a block. |
page | int32 | Specify the page number to return. |
minAmount | double | Specify the minimum face value of the reward to be queried. 👍 **Best practice:**When you are searching for an amount, we recommend you to enter a minimum and a maximum amount for the search. |
maxAmount | double | Specify the maximum face value of the reward to be queried. 👍 **Best practice:**When you are searching for an amount, we recommend you to enter a minimum and a maximum amount for the search. |
currencyCode | string | Specify the currency code of the reward to be queried. The string must be three characters. We accept AUD, CAD, EUR, GBP, and USD for Global Choice Link s. Only one currency can be specified. Currency can never be changed. The currency defaults to USD if no currency is specified. |
utid | string | Specify the unique identifier of the reward to be queried. For example: UTID=U1234 has the attributes= (NONE, EMAIL, PHONE, and EMBEDDED). |
ptid | string | Specify the unique identifier of the physical delivery template to be queried. PTID is required for orders where the UTID is Reward Type = Reward Link, Fulfillment Type = Physical. |
rewardName | string | Specify the reward name of the reward to be queried. |
senderFirstName | string | Specify the sender's first name to be queried. This information is for tracking purposes only and doesn’t change the email address the reward is sent from when |
senderLastName | string | Specify the sender's last name to be queried. This information is for tracking purposes only and doesn’t change the email address the reward is sent from when |
senderEmail | string | Specify the sender email address to be queried. This information is for tracking purposes only and doesn’t change the email address the reward is sent from when |
recipientEmail | string | Specify the recipient’s email address to be queried. |
recipientMobileNumber | string | Specify the recipient mobile number to be queried. The
|
recipientFirstName | string | Specify the recipient’s first name to be queried.
The |
recipientLastName | string | Specify the recipient’s last name to be queried.
The |
deliveryMethod | string | A query of orders based on their method of delivery. We have introduced various ways of reward delivery to your recipients through |
orderStatus | string | Specify the status to be queried. See order status. -COMPLETE -PENDING -FAILED -CANCELLED -PARTIAL |
lineItemStatus | string | Specify the status to be queried. See line item status . -COMPLETE -PENDING -FAILED -CANCELLED |
campaign | string | Specify the campaign to be queried. The maximum length is 1024 characters including the special characters such as @, #, %, etc. |
notes | string | Specify the notes to be queried. The string may have up to 150 characters. |
lineItemNotes | string | Specify the notes to be queried. |
purchaseOrderNumber | string | specify the |
Response body
The response body for GET {URI}/orders contains all order records returned by your query, along with pagination details and all relevant attributes for each order. It tells you which orders were found, how many exist, and provides complete metadata for each order, including delivery details, status, campaign identifiers, timestamps, and sender/recipient information.
On a successful request (200 OK), the response body includes some important fields. Below are key notes and considerations to help you understand field behaviors and best practices:
- The page object describes pagination metadata. Your integration should use these values to handle pagination:
- number—the current page number returned.
- elementsPerBlock—the maximum number of items per page.
- resultCount—the number of orders returned on this page.
- totalCount—the total number of matching orders across all pages.
sendEmailis deprecated and should not be used to determine delivery behavior. UsedeliveryMethodinstead (e.g., EMAIL, PHONE, ADDRESS, etc.).- The response includes
status,orderStatus, andlineItemStatus. These may differ depending on: delivery success or failure, partial order completion, and multi‑item orders. - Always use
orderStatusorlineItemStatusfor determining fulfillment state, not the presence of credentials. externalRefIDis returned as provided when the order was created. Use it to detect duplicate orders or track retries across systems.createdAtis returned in Coordinated Universal Time (UTC) for consistency across all systems.- The
deliveryMethodenum indicates how the reward was delivered. It may differ from what was originally requested if the system applied fallback handling. - For digital delivery (EMAIL, PHONE, EMBEDDED), the address object will be absent or empty.
- For physical delivery (ADDRESS, BULKSHIPMENT), the address object is required and returned.
- Each returned order includes the following identifiers helpful for classification and reporting: utid (identifies the reward type (catalog item ID)) and ptid (identifies the reward product type).
amountChargedrepresents the billing amount, including fees or exchange rate effects. denomination represents the reward’s face value to the recipient. These may differ based on currency, markup, or program configuration.- Some orders include an
asyncOrderEntityobject, indicating that the reward may be processed asynchronously. If present, check this object for additional status details. This is common for certain reward types or delivery pipelines. orderExternalRefIdDupeindicates whether the providedexternalRefIDhas been used before. This is useful for auditing and validating idempotency behavior.
Examples
The following example shows the payload including pagination when you use GET {URI}/orders. The delivery method, delivery status and other delivery details are included in the payload.
{
"page": {
"number": 0,
"elementsPerBlock": 0,
"resultCount": 0,
"totalCount": 0
},
"orders": [
{
"referenceOrderID": "string",
"externalRefID": "string",
"customerIdentifier": "string",
"accountIdentifier": "string",
"accountNumber": "string",
"amountCharged": {
"value": 0,
"currencyCode": "string",
"exchangeRate": 0,
"fee": 0,
"total": 0
},
"denomination": {
"value": 0,
"currencyCode": "string",
"exchangeRate": 0,
"fee": 0,
"total": 0
},
"utid": "string",
"ptid": "string",
"rewardName": "string",
"sender": {
"firstName": "string",
"lastName": "string",
"email": "string"
},
"recipient": {
"firstName": "string",
"lastName": "string",
"email": "string",
"mobileNumber": "string",
"address": {
"companyName": "string",
"streetLine1": "string",
"streetLine2": "string",
"city": "string",
"stateOrProvince": "string",
"postalCode": "string",
"country": "string"
}
},
"emailSubject": "string",
"message": "string",
"deliveryMethod": "NONE",
"etid": "string",
"status": "string",
"orderStatus": "string",
"lineItemStatus": "string",
"campaign": "string",
"createdAt": "2025-11-03T23:25:29.857Z",
"notes": "string",
"orderClientSource": "string",
"purchaseOrderNumber": "string",
"orderExternalRefIdDupe": true,
"asyncOrderEntity": {
"externalRefID": "string",
"status": "string",
"totalLineItems": 0,
"createdAt": "2025-11-03T23:25:29.857Z",
"failedLineItems": [
{
"lineItemId": "string",
"externalRefLineItemID": "string",
"utid": "string",
"errors": [
{
"field": "string",
"errorCodeValue": 0,
"errorCodeName": "string",
"message": "string"
}
]
}
],
"duplicateLineItemRefIds": {
"additionalProp": 0
}
}
}
]
}Here's an example payload for when you receive an error:
{
"timestamp": "2025-02-21T23:23:13.930Z",
"requestId": "string",
"path": "string",
"httpCode": 0,
"httpPhrase": "string",
"i18nKey": "string",
"message": "The error message will show here for error codes ",
"errors": [
{}
]
}Response codes
The possible response codes for this endpoint are as follows. For details, see i18nkey codes and their error messages:
| Response | Description |
|---|---|
| 200 | The request was successful. |
| 400 | The server could not understand the request due to invalid syntax. |
| 401 | Authentication is required and has either not been provided or failed. |
| 403 | The server understood the request but refuses to authorize it. |
Updated 4 days ago
