Freeze eligible line items in an async order
Coming soon: This feature will be coming soon.
Use this endpoint to submit a freeze action for all eligible Choice product line items in an async order. The order itself is not frozen. If the order contains no eligible line items, the request does not freeze anything. This endpoint applies only to Choice Products such as Reward Link®, Global Choice Link, Promo Link™, and Disbursement Link. See Manage Choice products.
Each eligible frozen reward becomes temporarily locked and cannot be redeemed until it is unfrozen or automatically released. See Order action status for more information. Call POST {URI}/asyncOrders/{referenceOrderID}/freeze with a valid reason code to apply the freeze action to all eligible line items in the async order.
Use case
ACME Health uses asynchronous orders to issue large batches of wellness rewards. When a fraud‑monitoring rule flags certain members’ line items after submission, the operations team temporarily freezes specific unredeemed rewards to prevent redemption while the async order is still processing. Freezing is evaluated at the line-item level within the async order. If the async order contains no eligible line items, the request does not freeze anything. Fully unredeemed Choice Products can be frozen within five days of issuance to investigate issues such as incorrect amounts, wrong recipient information, or suspected fraud. The freeze is automatically lifted after 48 hours if no further action is taken.
How it works?
When you call POST {URI}/asyncOrders/{referenceOrderID}/freeze, the system does not freeze the async order itself. Instead, it uses the order ID to look up the order and then evaluates each line item in that order. Only eligible line items are frozen. Ineligible line items are skipped.
- You send a freeze request for an async order using
referenceOrderID. - The system finds all line items in that order.
- The system checks each line item for freeze eligibility.
- The system freezes every line item that qualifies.
- The system leaves any non-eligible line items unchanged.
- The final outcome is reported through the
OrderActionStatuswebhook event.
Endpoint
Use the following endpoint to freeze a qualified line item:
| Endpoint | Purpose |
|---|---|
POST {URI}/asyncOrders/{referenceOrderID}/freeze | Apply a freeze action to all eligible line items in an async order. |
Use the following path parameter to identify the async order whose eligible line items you want to freeze:
| Path params | Requirement | Data type | Description |
|---|---|---|---|
referenceOrderID | required | string | Reference order ID for the async order whose eligible line items will be evaluated for freezing. |
Use the following body parameters to specify why you are freezing the eligible line items in the async order:
| Body params | Data type | Requirement | Description |
|---|---|---|---|
| reasonCode | string | required | Enter the reason codes for freezing the eligible line items in the async order. See Get all reason codes . |
| otherReason | string | optional | This field is required if reasonCode equals OTHER. Enter a description of why you are freezing the eligible line items when the available reasonCode values do not fit your use case. |
Notes
- The endpoint evaluates all line items in the specified async order and freezes only those that are eligible. If the async order has no eligible line items, no line items are frozen.
- Only fully unredeemed Choice Products, such as: Reward Link®, Global Choice Link, Promo Link™, and Disbursement Link are eligible to be frozen.
- Freeze must occur within 5 calendar days of reward issuance.
- A reward can be frozen multiple times as long as it remains unredeemed and within the valid timeframe.
- Frozen rewards auto‑unfreeze after 48 hours if no action is taken.
- Promo Links do not have their expiration dates extended by freezing.
Response message
Here is the immediate response returned after the freeze action is submitted for the eligible line items in the async order:
{
"referenceOrderId": "string",
"externalRefID": "string",
"status": "string",
"totalLineItems": 0,
"date": "2026-02-17T18:02:33.823Z"
}The response body provides:
| Field | What it tells you |
|---|---|
referenceOrderId | Tango’s system‑assigned order ID. |
externalRefID | Your own order tracking ID (idempotency key). |
status | The current status of the submitted async order action. |
totalLineItems | How many rewards were in the order. |
date | When this order event occurred. |
Response codes
A 202 Accepted response means the freeze action was submitted for processing. It does not guarantee that any line items were eligible to be frozen. The possible response codes for this endpoint are as follows. For details, see i18nkey codes and their error messages:
| Response code | Meaning |
|---|---|
| 202 | The server received the request and accepted it for processing. The freeze action is processed asynchronously for eligible line items. This response does not guarantee that any line items were eligible to be frozen. |
| 400 | The server could not understand the request due to invalid syntax. |
| 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. |
| 422 | The server understands the request but cannot process it due to semantic errors. |
Updated 5 days ago
