Response classes and error messages
Tango API uses standard status codes used in HTTP responses to indicate the result of a request. Status codes focus on communication between users and servers and are essential for your debugging and error handling. We expect you to encounter the following HTTP status codes:
HTTP code response | Status code | Description |
---|---|---|
2xx | Success | 2xx responses indicate a successfully completed request. |
4xx | User errors | 4XX errors indicate incorrect requests. Review and correct before retyring. |
5xx | System errors | 5XX errors indicate Tango system cannot fulfill the request. This might be due to temporary issues with one of our suppliers, Tango system, or undetermined internet vagaries. Given the nature of HTTP-over-internet communications, 500 errors are inevitable. We strongly recommend implementing an exponential back-off retry mechanism that retries order requests when a 500 series error is received. Order requests receiving a 5XX error may occasionally process after a network connection is lost. The optional External Reference ID is an idempotent parameter that can be used to ensure duplicate orders are not created. implement an automated retry mechanism that is capped at 5 requests |
Other HTTP status code responses are. ango is not currently using 1xx and 3xx codes:
HTTP code response | Status code | Description |
---|---|---|
1xx | Informational | 1xx series responses are not implemented in the system at this time. They are not expected to see. |
3xx | Redirection | 3xx series responses are not expected. Log the response you get and report to Tango immediately. |
Response headers
Response headers are HTTP headers that provide additional information about a response to a request. You can provide useful information such as _date _and _requestId _in your response headers. See example below:
{
"timestamp": "2021-09-20T14:52:56.8Z",
"requestId": "492fc1a0-ae5b-441b-a12a-ff6c028ceded",
"path": "/raas/v2/orders",
"httpCode": 400,
"httpPhrase": "Bad Request",
"errors": [
{
"path": "utid",
"code": 400500,
"i18nKey": "422.024",
"message": "The Item identifier provided is not valid. Please check the identifier and try again. You can confirm valid Items with the Get Catalog call."
}
]
}
Consider logging the following values for potential error troubleshooting along with the response JSON:
referenceOrderID
(for successful orders)requestId
,httpCode
andmessage
(for errors)
Note:
- JSON is currently the only supported content type for inputs or outputs. It is not required that the requests contain an Accept header, but if they do, it must contain
application/json
or/
.- All dates must be represented in a format that is compatible with ISO 8601, for example: 2013-02-21T20:37:07-07:00.
- Tango can add fields in the Tango API response objects at any time. What you use to un-marshal the JSON responses into native data types must handle unknown fields without failing.
Error testing in sandbox
Tango has included two items in our sandbox environment that can be used for testing 5XX series errors. Placing an order for these items results in the most common error responses you may encounter in the production account. If you don't see these items in your catalog, contact your Customer Success Manager (CSM) or [email protected].
Item | UTID |
---|---|
Failure Test 1 | U770618 |
Failure Test 2 | U065143 |
i18nKey codes and their error messages
i18nKey responses are used to provide more specific error codes to facilitate error handling. You can use i18nKey to show localized error messages based on an HTTP code. See the table below:
Note:
This following i18nKey list is provided as an example only and may change without prior notice. Use your best judgement to troubleshoot. For more questions, contact our Customer Success Manager (CSM) or [[email protected]](mailto:[email protected].
400 | Tango API error message |
---|---|
400.001 | Invalid Request |
400.004 | Unable to refund {0} to Account {1} during the cancellation of rewardEntity {2}. Exception details: {3} |
400.005 | Could not refund RewardLink for the amount {0} when cancelling the lineItemEntity {1}. There was an issue with getSVPayment() using paymentEntity {2} |
400.006 | Could not refund RewardLink for the amount {0} when cancelling the rewardEntity {1}. |
400.007 | Could not refund RewardLink for the amount {0} when cancelling the lineItemEntity {1}. There are no rewards on this lineItemEntity |
400.008 | Cannot fail LineItem in [{0}]. [PENDING] expected. |
400.010 | Cannot edit currency for this account because it already has transactions. Please create a new account with the proper currency. |
400.011 | Invalid currency code: {0}. Must have exactly 3 letters. |
400.014 | Could not refund the Expired Reward Link for amount {0}, Account {1}, LineItemID: {2}. |
400.024 | Invalid state or region |
400.025 | Invalid postal code |
400.026 | Invalid country code |
400.027 | Invalid supplier request data field ({0}). {1} |
400.028 | Invalid currency code: {0}. Must be USD |
402 | Tango API error message |
---|---|
402.001 | There are insufficient funds in your account to process this order. |
402.051 | There was an error authorizing the card. Please check your card details and try again. If you need assistance, please write to [email protected] . |
403 | Tango API error message |
---|---|
403.001 | Authorization Error |
403.002 | You are not authorized to delete this credit card with this account. |
403.003 | Cannot resend an email that was created with sendEmail=false. Please use the order details call to access information on this order. |
403.004 | Cannot send more than once every {0} hours. Last sent at {1} |
403.005 | Cannot send more than once every {0} seconds. Last sent at {1} |
403.006 | You are not Authorized to Register a Credit Card with this Account. |
403.007 | Customer Identifier not found in authorized ids. |
403.008 | The specified etid does not belong to the given platform |
403.009 | This line item does not belong to a platform provided. |
403.016 | The fraud velocity system flagged this provisioning attempt as having exceeded a pre-determined threshold. |
403.017 | Platform is not verified to create customers or accounts. |
403.019 | You are not Authorized to change the "Powered By Tango Card" property of an email template. |
403.021 | The Customer and Account is not authorized to access this email template |
403.022 | The line item has reached its max limit of being reissued five times. |
403.023 | Cannot re-send reward email more than once every 24 hours |
403.024 | Reward must be expired to reissue. |
403.025 | Reward must have remaining balance to reissue. |
403.026 | Reward must be refunded to reissue. |
403.027 | Reward has already been reissued. |
403.028 | Reward must be Promo Link to reissue. |
403.029 | Account must be on user platform. |
403.031 | The Reward Security Key cannot be validated. |
403.032 | User does not have authorization to access this resource. |
403.033 | This reward is currently frozen and cannot be activated. If you believe this is an error, please reach out to [email protected] . |
403.034 | Cannot resend reward. Please contact [email protected] for assistance. |
403.035 | Account not authorized to order Disbursement Link items. |
403.036 | Account not authorized to order Cryptocurrency Link items. |
403.038 | Account not authorized for ACH transfers. |
404 | Tango API error message |
---|---|
404.001 | Not found |
404.002 | This customer does not exist for this platform. |
404.003 | The account does not exist for this platform. |
404.004 | The account does not exist for this platform or is in an inactive state. |
404.005 | The order you requested cannot be found in our system under this platform. Please double check the number and try again. |
404.009 | Supplier entity not found. |
404.010 | Mustache template not found for {0}, check the supplier configuration. |
404.011 | The reference deposit ID provided was not found. Please verify format and ID and try again. If you need further assistance, please write to [email protected] . |
404.012 | Account order not found for order id {0}. |
404.013 | No orders found for {0} {1}. |
404.017 | The order you requested cannot be found under this platform. Please check the Order Reference Id and try again. |
404.018 | The reward you requested cannot be found. |
404.019 | The catalog you specified does not exist. |
404.022 | Credit card not found |
404.023 | Platform Client not found |
404.024 | Handler Not found |
404.025 | Credit card unregister not found |
404.026 | Account not found |
404.030 | Account with ID ''{0}'' could not be found. |
404.033 | Could not find Item with utid: {0} |
404.034 | {0} was not found as a country Id |
404.035 | Platform Client does not exist |
404.036 | Customer not found for: {0} |
404.042 | LineItemEntity with id [{0}] could not be found |
404.046 | Invalid PaymentMethodType: ''{0}'' for orderID ''{1}'' |
404.053 | Email Template not found |
404.055 | Email template identifiers not found for platform |
404.056 | Queue not found for name: {0} |
404.057 | ItemProvisioner ''{0}'' not found |
404.058 | BufferInventoryQueueEntity not found for bufferInventoryQueueId: {0} |
404.059 | Platform Client {0} does not exist. |
404.060 | CreditCardDeposit not found for RequestId: {0} |
404.072 | Could not find Inventory Batch with ID {0} |
404.073 | Order does not have matching parent order |
404.074 | Order does not have matching parent order account |
404.076 | Payment not found for Order id:{0}. Every order should have a payment. |
404.077 | Platform with id: {0} not found. |
404.078 | Platforms not found |
404.079 | Platform with id: {0} does not have accountFundingAttributes with id: {1} |
404.081 | Platform key with ID {0} could not be found for platform client ID {1} |
404.082 | Item Provisioner not found |
404.083 | Unable to find supplier for UTID: {0} |
404.084 | Invalid emailTemplateIdentifier |
404.085 | Email template {0} does not have a default |
404.086 | Cannot find email template by identifier |
404.087 | Account transaction not found |
404.089 | Account or Customer Not Found or Inactive |
404.090 | Could not find item with item_id=''{0}'' |
404.092 | Order Not Found |
404.093 | Item Not Found |
404.094 | ExchangeRate Not Found |
404.095 | Platform client not found with ID {0} |
404.098 | Buffer Inventory Queue {0} not found: {1} |
404.100 | PaymentSourceExchangeRateEntity ExchangeRate Not Found |
404.101 | OrderEntity with id [{0}] could not be found |
404.102 | LineItemEntity with id [{0}] could not be found |
404.103 | ItemEntity with id [{0}] could not be found |
404.104 | Brand missing for brandId=''{0}'' |
404.106 | No OrderManualReview found with ID {0} |
404.107 | RequestMetadataEntity for OrderEntity with id [{0}] not found. |
404.108 | Source IP for RequestMetadataEntity with id [{0}] not found. |
404.109 | An Expired Reward Link Entity could not be found for OrderId: {0}, Line Number: {1} |
404.111 | No Orders found for Supplier Request ID: {0} |
404.113 | Delivery not found for Delivery ID: {0} |
404.114 | Box User {0} could not be found! |
404.115 | Could not find order supplier rule for ID: {0} |
404.116 | Brand approval partner not found: {0} |
404.117 | Brand approval request not found: {0} |
404.118 | Brand approval request note not found: {0} |
404.119 | Brand approval request {0} brand {1} not found. |
404.120 | Note not found: {0} |
404.121 | Alert not found: {0} |
404.122 | Brand {0} Note {1} not found |
404.123 | Item {0} Note {1} not found |
404.124 | Brand {0} Alert {1} not found |
404.125 | Item {0} Alert {1} not found |
404.126 | Landing page {0} not found |
404.128 | Redemption data missing |
404.132 | Attribute with name "{0}" not found. |
404.133 | Qualtrics API key with ID {0} could not be found for platform client ID {1} |
404.137 | UTID does not exist |
404.138 | UTID is not a choice product |
404.140 | ACH Request not found for RequestId: {0} |
404.141 | ACH Subscription not found for identifier: {0} |
404.142 | Account has been frozen, please contact your Tango CSM or email [email protected] |
404.143 | No delivery with status {0} was found for reward {1}. |
404.144 | Supplier event not found: {0} |
409 | Tango API error message |
---|---|
409.002 | Another order with the same external reference ID of {0} for accountId {1} is currently in process but not complete. Please ensure a minimum of 2 seconds for all retries. |
409.005 | You already have an existing email template with this name, please choose a different name. |
409.007 | This account identifier, {0} exists already for this platform and customer. |
409.012 | This customer identifier, {0} exists already for this platform |
409.015 | A Catalog with the name, {0}, already exists |
409.016 | An item with the given utid already exists. |
409.017 | The account display name, {0}, already exists on this platform. |
409.018 | The account identifier, {0}, already exists on this platform. |
409.019 | Supplier name already exists |
409.022 | Batch Contains Duplicate Rows |
409.023 | Found duplicate rewards in the database |
409.026 | A platform with name, {0}, already exists. |
409.027 | Could not refund Promo Link for line item {0}. It has already been refunded. |
409.028 | A buffer for utid {0} with denomination {1} already exists. |
410 | Tango API error message |
---|---|
410.001 | The order does not contain a re-acquirable reward. |
422 | Tango API error message |
---|---|
422.002 | The card you attempted to un-register is not registered in our system or the account information provided is incorrect. Please check the customer, account and card token information for accuracy. You can use the GET creditCards call to verify the correct information |
422.003 | Transaction currency type does not match account |
422.004 | Account must be ACTIVE to add transactions |
422.006 | Field {0} must not exceed {1} characters in length. |
422.008 | The account name or account identifier does not match our naming conventions. Please consult our acceptable naming conventions at https://sandbox.tangocard.com/raas_api_console/v2/ |
422.011 | International items require a currency code. |
422.018 | Variable maxValue must be greater than minValue. |
422.023 | Email templates must have a name. Please supply a name with your request. |
422.024 | The Item identifier provided is not valid. Please check the identifier and try again. You can confirm valid Items with the Get Catalog call. |
422.025 | Amount is not within the range allowed for the item: Min = {0}, Max = {1}. |
422.026 | This item only allows whole values, please retry with whole values. |
422.027 | Amount is not correct for this fixed value item. Amount should be = {0}. |
422.030 | The item you requested is not active. Please contact your Tango Card CSM. |
422.031 | The order etid specified was not valid. |
422.036 | The card you attempted to fund with is not registered in our system. Please consult our documentation at https://integration-www.tangocard.com/raas_api_console/v2/ for credit card registration instructions. |
422.038 | There was an error with your deposit attempt. Please check your card details and try again. If you need assistance, please write to [email protected] . |
422.049 | The account transition specified was not valid. |
422.050 | There are already 10 credit cards registered to this account. Please un-register a card and try again. |
422.051 | There was an error un-registering the card. For any concerns or assistance, please contact [email protected] . |
422.053 | Account ''{0}'' for Customer ''{1}'' for Platform ''{2}'' not found or not in active state |
422.055 | Attempted to add a funding Transaction with a DECLINED state. Fundings should never be added as DECLINED, only updated to it. |
422.058 | Value type cannot be mapped. |
422.059 | Amount ({0}) is not within the range allowed for this item: Min = {1} Max = {3} |
422.060 | Illegal item type expected variable or fixed |
422.061 | Parameter cannot be null |
422.063 | Status was not in the CybersourceDepositStatus enum, was {0} |
422.066 | Failed to create landing page for reward. |
422.067 | Cannot generate a landing page for response with No redemption Data |
422.072 | Cannot generate a landing page for api rewards that have no credentials. |
422.077 | SupplierId doesn't exist |
422.078 | customUrlWithMustache required when customUrl is selected. |
422.079 | Changing supplierName not allowed |
422.080 | Input credential keys ({0}) did not match existing credential keys ({1}). If you intended to overwrite the existing keys, add force=true to the ''POST /admin/suppliers/id/credentials'' request. |
422.081 | Converting YML-based Supplier not allowed |
422.082 | The {0} service is not a valid service. |
422.083 | The {0} supplier does not support the {1} service. |
422.084 | At least one item is required for this platform''s catalog |
422.085 | Cannot delete template that has already been used. |
422.088 | Creds and redemptiontypes dont match size! |
422.097 | The Item requested is not active. |
422.099 | Fixed value items need to have the correct amount |
422.100 | Illegal item type expected variable or fixed |
422.101 | Exchange rate cannot be 0. Base exchange rate: {0} Output exchange rate: {1} |
422.103 | Request template ''{0}'' variable not specified |
422.104 | {0} {1} request template ''{2}'' variable not specified |
422.115 | Attempted to add a Rebate Transaction with a incorrect status. Rebates should only be added as PROCESSED |
422.116 | Cannot add a line item to an order that is not in a PENDING status |
422.117 | Cannot add a line item with a value that exceeds the order total |
422.119 | length must be between 1 and 100 |
422.134 | not a well-formed email address |
422.144 | SVS Digital credentials did not contain card number |
422.149 | The status is the same for Manual Review. A change was expected. |
422.150 | {0} is already in a Complete state. Could not change status. |
422.152 | Invalid order status. Expected: {0} Actual: {1} |
422.154 | You must pass a valid, non-null boolean value for the showPoweredByTangoCard property of an email template |
422.155 | You must pass a valid, non-null boolean value for the createdByAUserWithEmulation property of an email template |
422.156 | Account must have a status of ACTIVE |
422.158 | Invalid platform for the email template |
422.159 | Invalid email template access control for this template |
422.160 | Invalid platform status. Expecting: KYB APPROVED |
422.161 | Invalid email template default for this template {0} |
422.162 | Expiration Date should not be specified for given UTI |
422.164 | Invalid UTIDs: {0} - You can confirm valid UTIDs with the Get Catalog call. |
422.166 | Invalid order currency code for this item. The currency code should be {0} |
422.179 | Cannot update brand approval request {0} brand {1} status. Brand has a partner. |
422.180 | Brand approval request {0} already has the following brand id(s): {1} |
422.181 | Brand approval request note {0} is not editable. |
422.184 | Note {0} is not editable. |
422.185 | Alert {0} is not active. |
422.186 | Alert {0} is not editable. |
422.187 | UTID {0} cannot be edited for the following reason: {1} |
422.188 | Tango Card does not provide services to this email address domain: {0} |
422.190 | The Reference Line Item Id is not formatted properly. Please ensure that there is a line item number on the end. |
422.191 | It looks like there's a hiccup on our end. Please reach out to Customer Support. |
422.194 | Tango Card does not provide services to this country: {0} ({1}) |
422.197 | Reward Credentials are invalid for this Reward. |
422.199 | Catalog restrictions for this item cannot be {0}. Please remove item from these catalogs "{1}" and try again |
422.200 | Activation is not allowed for this type of reward. |
422.204 | There was an error with your request attempt. Please check your card details and try again. |
422.209 | The provided reward landing page is in an invalid state for unprovisioning |
422.210 | The provided reward is in an invalid state for unprovisioning |
422.213 | Invalid inventory item, the item supplier type must be INVENTORY | UTID: {0} |
422.217 | ACH Daily Usage Limit cannot be set above {0}. |
422.218 | ACH Daily Usage Limit may only be set by TRUSTED accounts. |
422.219 | Suppliers must remain active while they have active or test items |
422.220 | Supplier {0} has an invalid status for {1} |
422.224 | Credit Card has been deleted from account |
422.226 | Invalid scheduled delivery time. Scheduled delivery time must be between {0} minutes and {1} minutes in the future. |
422.237 | Event {0} has too many line items for processing with identifier type {1}. |
429.008 | Rate limit exceeded for supplier rate limit 1 TPS threshold reached. |
429.009 | Transaction amount cannot be processed. For any concerns or assistance, please contact your support representative. |
429.011 | This order using account {0} has exceeded the allowable rate of {1} requests per {2}. |
429.012 | This request has exceeded the allowable rate of {0} requests per {1}. |
500 | Tango API error message |
---|---|
500.001 | Unexpected Application error |
500.002 | Service temporarily unavailable. We recommend implementing an incremental retry. If the problem persists please check out status page. |
500.023 | Unexpected batch error: {0} |
500.024 | Something went wrong with the batch in breaking down into rows. Please poke a dev to see what went wrong |
500.026 | Cannot fulfill LineItem in [{0}]. [PENDING] expected. |
500.027 | Could not decrypt the cypher text |
500.047 | Unable to instantiate SupplierClientBuilder of type {0}: {1} |
500.048 | Could not create a customUrl |
500.049 | something unexpected happened in rownumber:{0} and batchId:{1} |
500.051 | Unable to unmarshall SOAP response |
500.076 | Unexpected issue while connecting with Datawire: status code {0}. |
500.078 | We were unable to get your reward. Please try again later or reach out to Customer Support. |
500.999 | Unknown domain exception. |
503 | Tango API error message |
---|---|
503.002 | This item is temporarily unavailable. Please try again in 24 hours. |
503.003 | Supplier Failure while trying to order SVS Digital Reward |
503.004 | {0} {1} service took too much time ({2} ms). |
503.005 | {0} {1} service failed due to: {2} |
503.006 | Unable to obtain SupplierClient for supplierEntity.id={0} {1} |
503.008 | itemProvisionerId required for inventory item |
503.009 | An error occurred while obtaining OAuth token |
503.010 | supplier {0} unable to read Request Entity in SupplierConfig. \n{1} |
503.011 | supplier {0} Request Map Empty/null. Can''t order without it. |
503.013 | RewardLink cancel unsuccessful using request: {0} |
503.015 | RewardLink createSV unsuccessful using request: {0} |
503.026 | Unexpected batch error: {0} |
503.029 | Could not save reward: {0} |
503.031 | Failed to write redemption data to string for: {0} |
503.032 | Unable to reverse failed SVS Digital transaction with STAN {0} after three attempts - requires manual followup |
503.033 | Failed to reverse SVS Digital transaction with STAN {0}, with error: {1} |
503.034 | Unexpected return code: {0} |
503.035 | Supplier error, please try again. An incremental retry is recommended. If the problem persists, please send your platform name, JSON request and any other helpful details to [email protected]. Please DO NOT send any sensitive information such as platform keys, credit card details, or passwords |
503.039 | Http method {0} unsupported for supplier {1} |
503.040 | Incomm supplier missing ProgramId. |
503.042 | This item is temporarily unavailable due to configuration maintenance. Please try again in 24 hours. |
503.043 | Encountered unexpected failure while trying to order a reward: {0} |
503.044 | {0} {1} service took too much time ({2} ms). |
503.045 | Item {0} did not have a supplier code |
503.046 | Unable to reverse failed SVS Virtual transaction with STAN {0} after three attempts - requires manual followup |
503.048 | Could not create a customUrl |
503.051 | No Firstdata service urls available. |
503.052 | Invalid response code [ {0} ] received from Valuelink. |
503.053 | No Firstdata service urls available. |
503.502 | Service temporarily unavailable. We recommend implementing an incremental retry. If the problem persists please check out status page at: Tango Card Status ", |
Updated 6 days ago