Get a list of async orders
Get a list of Async Orders placed under this Platform.
This Tango API endpoint allows you to retrieve a list of successful asynchronous orders placed under your platform. You can track, audit, and manage your reward program by reviewing your previously placed async orders using the Tango API. This endpoint also helps filter and search for specific orders using query parameters, such as date, status, and externalRefID. These orders are processed in the background (non-blocking) and are multiple line items that may complete at different times.
Note:The
GET {URI}/asyncOrdersendpoint returns only successfully processed async orders. Failed orders are excluded from the list response. To retrieve a specific failed order, query it directly using itsexternalRefID.UseGET /asyncOrders/customers/{customerIdentifier}/accounts/{accountIdentifier}/{externalRefID}withorderStatus = FAILED. Learn more in Get async orders status.
Endpoint
Use the following endpoint to retrieve a list of all reward async orders placed under your platform:
| Endpoint | Purpose |
|---|---|
GET {URI}/asyncOrders | Get a list of async orders placed under this platform. |
Use case
Acme Health runs a monthly wellness incentive program where employees who complete health challenges receive digital rewards. The program needs to handle multiple reward distributions, support various delivery methods, track order status and delivery, and enable follow-up actions such as resends. Acme uses this endpoint to be able to:
- Send hundreds of rewards in one async order.
- Support multiple delivery channels.
- Gain full visibility into order and line item status.
- Integrate with Acme’s internal wellness tracking system.
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 | Filter results by account identifier. The string must have 5-100 characters. |
| customerIdentifier | string | Filter results by customer identifier. The string must have 5-100 characters. |
| externalRefID | string | Filter results by external reference ID. The string may have up to 100 alphanumeric characters. |
| startDate | string | Filter results by a start date or date-time. Use RFC 3339 format such as "2016-01-01" or "2016-01-01T00:00:00Z". See https://www.ietf.org/rfc/rfc3339.txt |
| endDate | string | Filter results by an end date or date-time. Use RFC 3339 format, such as "2016-01-01" or "2016-01-01T00:00:00Z". See https://www.ietf.org/rfc/rfc3339.txt |
| maxResults | int32 | Specify the maximum number of results to return per page. |
| elementsPerBlock | string | Specify the number of results to include in each block of returned data. |
| page | int32 | Specify the page number of results to return. |
| minAmount | double | Filter results by minimum reward face value. Returns only orders with a reward value greater than or equal to the specified amount. Best practice: Specify both minAmount and maxAmount to define an amount range and improve search results. |
| maxAmount | double | Filter results by maximum reward face value. Returns only orders with a reward value less than or equal to the specified amount. Best practice: Specify both minAmount and maxAmount to define an amount range and improve search results. |
| currencyCode | string | Filter results by currency code. The value must be a three-character currency code. |
| utid | string | Filter results by reward UTID. A UTID uniquely identifies a reward. For example, U1234 may support attributes such as NONE, EMAIL, PHONE, and EMBEDDED. |
| ptid | string | Filter results by physical template ID (PTID). PTID is required for orders where the reward has a fulfillment type of Physical. |
| rewardName | string | Filter results by reward name. Returns only orders associated with the specified reward name. |
| senderFirstName | string | Filter results by the sender’s first name. The value can contain up to 100 characters and cannot include <, >, or /. |
| senderLastName | string | Filter results by the sender’s last name. The value can contain up to 100 characters and cannot include <, >, or /. |
| senderEmail | string | Filter results by sender email address. Returns only orders associated with the specified sender email address. |
| recipientEmail | string | Filter results by recipient email address. Returns only orders associated with the specified recipient email address. |
| recipientMobileNumber | string | Filter results by the recipient’s mobile number. Enter the number in E.164 format, including the country code (for example, +15551234567). |
| recipientFirstName | string | Filter results by the recipient's first name. The recipientFirstName may have up to 100 characters. You cannot use < or > or / in the name. |
| recipientLastName | string | Filter results by the recipient's last name. The recipientLastName may have up to 100 characters. You cannot use < or > or / in the name. |
| deliveryMethod | string | Filter by the deliveryMethod for your order. See Delivery methods in Tango API . |
| orderStatus | string | Filter results by order status. Valid values are: COMPLETE, PENDING, FAILED, CANCELLED, and PARTIAL. See order status . Note: GET {URI}/asyncOrders does not return orders with orderStatus = FAILED, even if you filter by orderStatus = FAILED. |
| lineItemStatus | string | Filter results by line item status. Valid values are: COMPLETE, PENDING, FAILED, and CANCELLED. See line item status . |
| campaign | string | Filter results by campaign. The maximum length is 1024 characters, including the special characters such as @, #, %, etc. |
| notes | string | Filter results by order notes. Returns only orders with notes matching the specified value. The value can contain up to 150 characters. |
| lineItemNotes | string | Filter results by line item notes. Use this parameter to search for orders based on notes associated with individual line items. |
| purchaseOrderNumber | string | Filter results by purchase order number. Returns only orders associated with the specified purchase order number. |
| prevCursor | string | Retrieve the previous page of results in a paginated response. Use the prevCursor value returned by a previous API response. |
| nextCursor | string | Fetch the previous page of results when calling Tango's async-orders endpoints. Use the prevCursor value provided in the response when additional pages are available. |
Examples
The following example shows the payload including pagination when you use GET {URI}/asyncOrders. The return payload shows the total amount charged at the order level, making it easier to determine the total amount charged without summing the paginated line items. See totalAmountCharged in the payload example:
{
"prevCursor": "string",
"nextCursor": "string",
"prevPageAvailable": true,
"nextPageAvailable": true,
"maxResults": 0,
"orders": [
{
"createdAt": "2025-10-23T21:52:43.041Z",
"referenceOrderID": "string",
"externalRefID": "string",
"customerIdentifier": "string",
"accountIdentifier": "string",
"accountNumber": "string",
"sender": {
"firstName": "string",
"lastName": "string",
"email": "string",
"address": {
"streetLine1": "string",
"streetLine2": "string",
"city": "string",
"stateOrProvince": "string",
"country": "string",
"postalCode": "string",
"companyName": "string"
},
"mobileNumber": "string"
},
"campaign": "string",
"purchaseOrderNumber": "string",
"notes": "string",
"fulfillBy": "2025-10-23T21:52:43.041Z",
"orderStatus": "string",
"totalLineItemsRows": 0,
"amountCharged": {
"currencyCode": "string",
"value": 0,
"total": 0
}
}
]
}Here's an example payload for when you receive a 400 error message:
{
"timestamp": "2025-10-23T21:52:43.041Z",
"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. |
| 500 | Something went wrong on the server, but the server cannot be more specific about the exact problem. |
Updated 19 days ago
