CentaPay

Last updated

Error and decline codes#

Every code the platform can return on a failed request, with the cause it reports and whether sending the same request again can succeed.

Availability. CentaPay is pre-launch. Production is expected in Q4 2026, with sandbox access ahead of it. Coverage differs by market, and the payment methods available differ by market too. The coverage table on our main site is the single source for what is live where, and for current dates. Nothing in this documentation should be read as a service available today.

Error & Decline Codes#

When a request fails validation, the synchronous response contains:

Response
{
  "result": "ERROR",
  "error_message": "Description of the error",
  "error_code": 204002
}

Error Code Reference

The Category column is the cause, as the platform reports it. The Retry column is what to do about it. They are separate axes, and the same cause can carry different retry advice depending on the code.

Codes marked Not classified are ones where the documented cause does not settle the retry behaviour. They are left unclassified deliberately rather than guessed at, because wrong retry advice either hammers an endpoint that will never succeed or abandons one that would.

CodeDescriptionCategoryRetryGuidance
400#Duplicate request (order_id already used)ValidationTerminalThe order_id is spent. Issue a new one. Do not retry the same request.
204002#Enabled merchant mappings or MIDs not foundConfigurationAccount configurationContact support. Retrying will not change the mapping.
204003#Payment type not supportedConfigurationAccount configurationContact support. Retrying will not change the mapping.
204004#Payment method not supportedConfigurationAccount configurationContact support. Retrying will not change the mapping.
204005#Payment action not supportedConfigurationAccount configurationContact support. Retrying will not change the mapping.
204006#Payment system/brand not supportedConfigurationAccount configurationContact support. Retrying will not change the mapping.
204007#Day MID limit not set or exceededLimitsNot classifiedConflates a limit not set with a limit exceeded. See questions.md Q4.
204008#Day merchant mapping limit not set or exceededLimitsNot classifiedConflates a limit not set with a limit exceeded. See questions.md Q4.
204009#Payment type not foundConfigurationAccount configurationContact support. Retrying will not change the mapping.
204010#Payment method not foundConfigurationAccount configurationContact support. Retrying will not change the mapping.
204011#Payment system/brand not foundConfigurationAccount configurationContact support. Retrying will not change the mapping.
204012#Payment currency not foundConfigurationAccount configurationContact support. Retrying will not change the mapping.
204013#Payment action not foundConfigurationAccount configurationContact support. Retrying will not change the mapping.
204014#Month MID limit exceededLimitsTransientA monthly window. Retry in the next period, not sooner.
204015#Week merchant mapping limit exceededLimitsTransientA weekly window. Retry in the next period, not sooner.
208001#Payment not foundTransactionTerminalThe trans_id does not exist. Check it rather than retrying.
208002#Cannot request 3DS for payment not in 3DS statusTransactionNot classifiedDepends on whether the payment can still reach that state. See questions.md Q4.
208003#Cannot capture payment not in PENDING statusTransactionNot classifiedDepends on whether the payment can still reach PENDING. See questions.md Q4.
208004#Capture amount exceeds auth amountTransactionTerminalArithmetic. Retrying the same amount always fails.
208005#Cannot refund payment not in SETTLED or PENDING statusTransactionNot classifiedDepends on whether the payment can still settle. See questions.md Q4.
208006#Refund amount exceeds payment amountTransactionTerminalArithmetic. Retrying the same amount always fails.
208008#Reversal amount exceeds payment amountTransactionTerminalArithmetic. Retrying the same amount always fails.
208009#Partial reversal not allowedTransactionTerminalNot permitted for this transaction. Send a full reversal.
208010#Chargeback amount exceeds payment amountTransactionTerminalArithmetic. Retrying the same amount always fails.
205005#Card token invalid or not foundTokenTerminalThat token will not become valid. Collect the card again.
205006#Card token expiredTokenTerminalThat token will not become valid. Collect the card again.
205007#Card token not accessibleTokenNot classifiedCause not stated. See questions.md Q4.
100000#Previous payment not completedValidationTransientWait for the earlier payment to reach a final state, then retry.
Decline reasons are returned in the decline_reason field for DECLINED transactions. These are human-readable strings from the issuer or risk engine, not codes. Common examples: "Insufficient funds", "Card expired", "Do not honor".

Where to go next#

Symptoms that do not carry a code, such as a request that gets no response at all, are on Troubleshooting. The sandbox scenarios that produce specific declines are on Testing.