Cancel line items
Tango API supports a workflow where a previously issued reward can be canceled. You can self-cancel a fully unredeemed Choice Product (Reward Link®, Global Choice Link, Promo Link™, and Disbursement Link) within five (5) calendar days of sending the reward.
The funds from a canceled reward minus fees are refunded to the same Tango account from which the reward was originally ordered. If you need to reissue the reward, refer to reissue a line item. To create a new order, see Create an order under a specific account .
Notes:
- You can only cancel fully unredeemed Choice products anytime within five (5) calendar days of sending it.
- You can only cancel the first issuance of a Promo Link. See our Tango user document for Reissue Promo Links rules and exceptions.
- You cannot self-cancel a reward outside the five-day window. For a valid reason to cancel outside the five-day window or to discuss the issue, contact your Customer Success Manager (CSM) or [email protected]. For the general cancellation policy, refer to Tango Cancellation Policy.
Use cases
See the following use cases to cancel a line item:
| Problem | Solution | 
|---|---|
| You entered the wrong recipient information | Have you sent a Reward Link to the wrong person? As long as the Reward Link remains fully unredeemed, you have five days to: | 
| Your recipient didn't meet your business requirements | Has the recipient failed to meet your business requirement for receiving the reward? As long as the Reward Link remains fully unredeemed, you have up to five days to cancel. | 
Use the following endpoint to cancel a qualified line item:
| Endpoint | Purpose | 
|---|---|
| POST {URI}/lineItems/{referenceLineItemID}/cancel | Cancel a line item on this platform. | 
Use the following path parameter to identify which line items you're canceling:
| Path params | Data type | Requirement | Description | 
|---|---|---|---|
| referenceLineItemID | string | required | Reference line item ID is returned in the line items response. | 
The following body parameters are used to provide the reason for canceling your line item. See Get all reason codes for descriptions:
| Body params | Data type | Requirement | Description | 
|---|---|---|---|
| reasonCode | string | required | Enter the reason code to cancel this line item. See Get all reason codes for reasons and their descriptions. -DELIVERY_INFO -REWARD_AMOUNT -REWARD_TYPE -RECIPIENT -CURRENCY -RECIPIENT_REQUESTED -RECIPIENT_OBLIGATIONS -DUPLICATE -FRAUD -OTHER | 
| otherReason | string | optional | This field is required if reasonCode equals OTHER. Enter a description of why you canceled this line item only if the available reasonCodes don't meet your needs. | 
How to cancel an existing line item?
See the steps below:
- Call POST {URI}/lineItems/{referenceLineItemid}/cancelto cancel the reward.
- Enter the referenceLineItemIDfor the line item you are planning to cancel.
- Enter a reason code. A successful returned response is 202 Accepted.
- Call GET {URI}/lineItems/{referenceLineItemID}and enter the samereferenceLineItemIDthat was cancelled to see the updated reward status. The status appears as 'cancelled' in the payload.
Here is the response returned when canceling a line item is successful:
{
  Accepted
}If you try to cancel a line item that is already cancelled, you will get 422 unprocessable .
{
  "timestamp": "2025-02-14T18:20:46.859981268Z",
  "requestId": "57aa9a08-385e-4075-b2d4-1d96477b08cd",
  "path": "/raas/v2/lineItems/RG250106-133850-97-1/unfreeze",
  "httpCode": 422,
  "httpPhrase": "Unprocessable Entity",
  "i18nKey": "422.234",
  "message": "Line Item is ineligible to cancel."
  }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": [
    {}
  ]
}The possible response codes for this endpoint are as follows. For details, see i18nkey codes and their error messages:
| Response | Description | 
|---|---|
| 202 | The server has received and accepted the request, but has not yet completed processing it. | 
| 400 | The server could not understand the request due to invalid syntax. | 
| 403 | The server understood the request but refused to authorize it. | 
| 422 | The server understands the request but cannot process it due to semantic errors. | 
Updated 16 days ago
