Get a list of async orders

Get a list of Async Orders placed under this Platform.


🚧

Closed Release:

This feature is available for a limited number of customers with specific use cases only.

This endpoint allows you to retrieve a list of 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. These orders are processed in the background (non-blocking) and are multiple line items that may complete at different times.

Use the following endpoint to retrieve a list of all reward async orders placed under your platform:

EndpointPurpose
GET {URI}/asyncOrdersGet a list of async orders placed under this platform.

Benefits

  • Tracks and audit all async orders across your platform.
  • Filters and searches for specific orders using query parameters, such as date, status, and externalRefID.

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.

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

maxResults

int32

Specify the number of maxResults per page.

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, or USD. 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 sendEmail: true. The senderFirstName may have up to 100 characters. You cannot use < or > or / in the name.

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 sendEmail: true. The senderlastName may have up to 100 characters. You cannot use < or > or / in the name..

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 sendEmail: true.

recipientEmail

string

Specify the recipient’s email address to be queried.

recipientMobileNumber

string

Specify the recipient mobile number to be queried. The recipientMobileNumber is required if deliveryMethod=PHONE. The following validation rules apply to mobile numbers for SMS delivery:

  • Country Code: Must be included.
  • Format: +CCCPPPPPPPPPPPP (where C is the country code, 1-3 digits, and P is the phone number, up to 12 digits).
  • Initial Release: Only accepts US phone numbers (Country code = +1) and 10 digits for the phone number. -Standard: Follows ITU E.164, allowing (+) and up to 15 digits for the combined country code and phone number.

recipientFirstName

string

Specify the recipient’s first name to be queried. The recipientFirstName may have up to 100 characters. You cannot use < or > or / in the name.

recipientLastName

string

Specify the recipient’s last name to be queried. The recipientLastName may have up to 100 characters. You cannot use < or > or / in the name.

deliveryMethod

string

Specify the delivery method for an order to determine how a reward is sent to a recipient. deliveryMethod will replace sendEmail once released: -NONE: Tango does not deliver. You are responsible to deliver the rewards to your recipient. This option is similar to sendEmail=false. -EMAIL: Tango delivers the reward to the recipient via email. You must include the recipient email. This option is similar to sendEmail=true. -PHONE: Tango delivers the reward to the recipient via text. You must include the recipient phone number. -ADDRESS: Tango delivers the physical rewards via carriers such as the post office, FexEx, UPS, etc. You must include the recipient address. -EMBEDDED: You will embed Tango's lading page into your application. Tango will not deliver the rewards.

status

string

Specify the status to be queried: COMPLETE -PENDING -FAILED -CANCELLED -PARTIAL

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 purchaseOrderNumber to be queried.

prevCursor

string

nextCursor

string

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": [
    {}
  ]
}

The possible response codes for this endpoint are as follows. For details, see i18nkey codes and their error messages:

ResponseDescription
200The request was successful.
400The server could not understand the request due to invalid syntax.
401Authentication is required and has either not been provided or failed.
403The server understood the request but refuses to authorize it.
500Something went wrong on the server, but the server cannot be more specific about the exact problem.


© 2025 Tango API are provided by Tango, a division of BHN, Inc.