Get async line item details
Get line item details for a specific Async Order.
Closed Release:This feature is available for a limited number of customers with a specific use case.
This endpoint is used to retrieve detailed information about each line item in an asynchronous order placed through the Tango API. The endpoint provides a line-by-line breakdown of an async order, allowing you to view the status of each individual reward item, see who each item was sent to, understand how each item was delivered (email, SMS, physical mail, etc.), review reward details like name, amount, and fees, and audit delivery outcomes, including reward credentials.
Use the following endpoint to retrieve a detailed breakdown of each line item in the async order:
| Endpoint | Purpose |
|---|---|
GET {URI}/asyncOrders/customers/{customerIdentifier}/accounts/ {accountIdentifier}/{externalRefID}/lineItems | Get line item details for a specific async order. |
Benefits
- Async orders are reward orders that may take time to process.
- Subscribe to the asyncOrderStatus webhook event to receive real-time order updates.
- Async orders are multi-line-item reward orders where each item may be different.
- Tracks the progress of each reward in the order.
- Handles failures or retries for specific line items.
- Retrieves the reward credentials.
- Supports customer delivery of the rewards when
deliveryMethod=NONE.
Use case
Acme Health has just completed a quarterly employee recognition campaign, sending out hundreds of rewards using the POST {URI}/asyncOrders endpoint. Each reward was tailored to the recipient, and Acme wanted to deliver the reward to the employee using their own internal process (deliveryMethod = NONE). Acme uses this endpoint to verify order status for each individual reward and retrieves the reward credentials to then deliver to the employees.
The following path parameters indicate which specific async order the request is acting upon:
| Path params | Data type | Requirement | Description |
|---|---|---|---|
| customerIdentifier | string | required | Specify the customer to be queried |
| accountIdentifier | string | required | Specify the account to be queried. |
| externalRefID | string | required | An idempotent field that can be used for your order cross-reference and to prevent accidental order duplication. This value is returned in the order response, order details, and order history. The string has a maximum of 100 alphanumeric characters. |
The following query parameters are used to filter, sort, or paginate data in your request. They are typically optional and allow you to customize the response without changing the endpoint structure:
| Query params | Data type | Requirement | Description |
|---|---|---|---|
| prevCursor | string | optional | Specify the previous cursor to return. It allows you to navigate backward in a paginated list of results. It's used whenever the response includes a partial set of results. |
| nextCursor | string | optional | Specify the next cursor to return. It allows you to retrieve the next page of results when working with paginated data. It's used whenever the response includes a partial set of results. |
| maxResults | int32 | optional | Maximum number of line items to return. The limit parameter accepts an integer between 1 and 500, with a default value of 100. For example, setting limit=32 will return up to 32 line items. |
| externalRefLineItemsIDs | array of strings | optional | Specify the externalRefLineItemIDs to be queried. A maximum of 50 externalRefLineItemIDs can be provided. It's used to identify specific line items within the order. If provided, the system returns line items matching these IDs. Max 50 items in the array. Length: 0–100 characters per string. |
| referenceLineItemIDs | array of strings | optional | Specify the referenceLineItemIDs to be queried. A maximum of 50 referenceLineItemIDs can be provided. |
| failedOnly | boolean | optional | False or True. Default is false. If true, only return line items that failed. If no failed items exist, the response should return 'NONE' or 'NULL' for the lineItems array. |
The following example illustrates the payload for using this endpoint and its associated parameters. 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:
{
"referenceOrderID": "string",
"externalRefID": "string",
"accountIdentifier": "string",
"customerIdentifier": "string",
"sender": {
"firstName": "string",
"lastName": "string",
"email": "string"
},
"amountCharged": {
"currencyCode": "string",
"value": 0,
"total": 0
},
"purchaseOrderNumber": "string",
"campaign": "string",
"orderNotes": "string",
"orderStatus": "string",
"orderErrors": [
{
"errorCode": "string",
"errorMessage": "string"
}
],
"pagination": {
"prevCursor": "string",
"nextCursor": "string",
"prevPageAvailable": true,
"nextPageAvailable": true,
"maxResults": 0,
"numberOfElements": 0
},
"lineItems": [
{
"referenceLineItemID": "string",
"externalRefLineItemID": "string",
"lineItemStatus": "string",
"lineItemErrors": [
{
"errorCode": "string",
"errorMessage": "string"
}
],
"deliveryStatus": "string",
"deliveryMethod": "string",
"scheduledDeliveryDate": "2025-10-23T21:52:43.041Z",
"deliveryDate": "2025-10-23T21:52:43.041Z",
"etid": "string",
"ptid": "string",
"utid": "string",
"canCancel": true,
"canFreeze": true,
"rewardName": "string",
"quantity": 0,
"shippingMethod": "string",
"physicalMethod": "string",
"amountIssued": {
"value": 0,
"currencyCode": "string",
"exchangeRate": 0,
"fee": 0,
"total": 0
},
"amountCharged": {
"value": 0,
"currencyCode": "string",
"exchangeRate": 0,
"fee": 0,
"total": 0
},
"dateIssued": "2025-10-23T21:52:43.041Z",
"expirationDate": "2025-10-23T21:52:43.041Z",
"recipient": {
"firstName": "string",
"lastName": "string",
"email": "string",
"mobileNumber": "string",
"address": {
"companyName": "string",
"streetLine1": "string",
"streetLine2": "string",
"city": "string",
"stateOrProvince": "string",
"postalCode": "string",
"country": "string"
}
},
"lineItemActionReason": "string",
"reissuedFromReferenceLineItemId": "string",
"reissuedToReferenceLineItemId": "string",
"emailSubject": "string",
"message": "string",
"lineItemNotes": "string",
"rewards": [
{
"rewardStatus": "string",
"credentialList": [
{
"label": "string",
"value": "string",
"type": "string",
"credentialType": "string"
}
],
"redemptionInstructions": "string"
}
]
}
]
}The possible response codes for this endpoint are as follows. For details, see i18nkey codes and their error messages:
| Response code | Meaning |
|---|---|
| 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. |
| 404 | The server was unable to find the requested resource. In other words, the URL you're trying to access doesn't point to anything that exists on the server. |
| 500 | Something went wrong on the server, but the server cannot be more specific about the exact problem. |
Updated 6 days ago
