Payment Errors
The following error codes and messages appear in REST responses when an error prevents completion of the request.
See also:
Note
Create Payment error responses include Payment Failed Webhook data. See Create Payment Error Examples.
Error Code | Description | g |
|---|---|---|
CREATE_PAYMENT_APPLE_PAY_MISSING_FIELDS | Message: The request tried to create an Apple Pay payment with decrypted data, but one or more required fields were missing. The missing fields are listed at the end of the error code. The request was rejected. Corrective action: Provide all required fields. Explanation: When you used Apple Pay with raw data, the Correct Example: Correct Example: {
"payment_method": {
"type": "apple_pay",
"details": {
"decrypted_data": "{complete_data_here}"
}
}
} | |
ERROR_3DS_AUTHENTICATION_FAILURE | Message: The request attempted an operation that requires a card, but the 3DS authentication failed. The request was rejected. Corrective action: Try the request again. If the error persists, advise the customer to contact the card issuer or use a different payment method. Explanation: The cardholder did not complete the extra security check (like a bank OTP code) or the bank rejected it. Error Example: Correct Example: Advise the user to retry or use a different card. {
"payment_method": "card_12345abcde",
"payment_method_options": {
"3d_required": true
}
} | |
ERROR_3DS_VERIFICATION_IS_NOT_SUPPORTED | Message: The request tried to create a payment that requires 3DS verification, but the specified payment method does not support 3DS verification. The request was rejected. Corrective action: Omit the Explanation: You forced a security check (3DS) on a payment type that doesn't have that feature. Correct Example: Correct Example: {
"payment_method_options": {
"3d_required": false
}
} | |
ERROR_ACCOUNT_FUNDING_TRANSACTION | Message: The request tried to create an account funding transaction, but your organization is not configured for such transactions. The request was rejected. Corrective action: Contact Rapyd Client Support. Explanation: You are trying to move money into a Rapyd wallet with an AFT transaction, but your account isn't approved for this feature yet. Error Example: Solution: Contact support to enable the account funding feature. | |
ERROR_ADJUSTABLE_AMOUNT_NOT_SUPPORTED | Message: The request attempted to adjust the amount of a payment, but the payment method does not support this feature. Corrective action: None. Explanation: You tried to increase the amount of a payment, but this specific payment type doesn't allow changes. Create a new payment with the amount you want. Error Example: Correct Example: post /v1/payments {
"amount": 150,
"currency": "USD"
} | |
ERROR_AUTH_ONLY_IS_NOT_SUPPORTED | Message: The request tried to create a card authorization, but authorization without capture is not supported for the selected payment method type. The request was rejected. Corrective action: Use a payment method type that supports authorization-only transactions. Explanation: You tried to hold funds without collecting them immediately, but the payment type requires an instant capture. Error Example: Correct Example: {
"payment_method": "card_b9548d9b53a565b2315fecdc6c87f158",
"capture": true
} | |
ERROR_AUTHENTICATION_PHONE_UNAVAILABLE | Message: The mandate process for a SEPA bank transfer requires access to the account holder's phone, but the phone was unavailable. The payment was reversed. Corrective action: Resubmit the request and create a new mandate. Explanation: A SEPA bank transfer failed because the user couldn't be reached on their phone to authorize the recurring payment setup. Advise the account holder to contact their bank to create a new mandate, then try the payment again. | |
ERROR_CANCEL_PAYMENT | Message: The request tried to cancel a payment, but the operation failed. Corrective action: Check all input fields, and verify that the payment exists and was not already closed. Explanation: You sent a cancel request for a payment ID that doesn't exist, is already closed, or has already been canceled. Error Example: Correct Action: Verify that the payment status is "ACT" before attempting to cancel it. | |
ERROR_CAPTURE_PAYMENT | Message: The request tried to capture a payment, but the payment could not be found or there was an error in the input parameters. The request was rejected. Corrective action: Determine whether the payment was closed, and check all input parameters. Explanation: You tried to collect the money for a "held" transaction, but the payment ID is wrong or the transaction has closed or expired. Error Example: Correct Example: Ensure that the status of the payment is ACT and that you are using a valid post /v1/payments/{payment_id}/capture | |
ERROR_CAPTURE_PAYMENT_3DS_INCOMPLETE | Message: The request tried to capture a payment, but the payment requires 3DS authentication, which is not completed. The request was rejected. Corrective action: Advise the customer to complete the 3DS authentication. Explanation: You are trying to clear the transaction before the user has completed the bank's security verification process. Error Example: Correct Example: If the user completes the 3DS verification before it expires, capture the payment. If not, create a new payment. post /v1/payments/{payment_id}/capture | |
ERROR_CAPTURE_PAYMENT_AMOUNT_EXCEEDS_AUTHORIZATION_AMOUNT | Message: The request tried to capture a payment for an amount that exceeds the amount in the original authorization transaction. The request was rejected. Corrective action: Set Explanation: For example, you authorized $10 but are now trying to capture $15, which isn't allowed by this payment method type. Error Example: Correct Example: {
"amount": 10.00
} | |
ERROR_CAPTURE_PAYMENT_FOR_CARD_METHODS_ONLY | Message: The request tried to create a payment, but the category of the payment method was not card and Explanation: You used the Error Example: Correct Example: {
"capture": null
} | |
ERROR_CAPTURE_TRUE_FOR_REAUTHORIZING_CARD_PAYMENT | Message: The request tried to reauthorize a card payment , but the Explanation: A reauthorization is intended to extend an existing hold on funds, meaning the transaction should not be finalized yet. Setting the Error Example: Correct Example:
{
"initiation_type": "reauthorization",
"original_payment": "payment_12345abcd",
"capture": false
}
| |
ERROR_CARD_PAYMENT_REQUIRES_CUSTOMER_INPUT_AND_CUSTOMER_NOT_PRESENT | Message: The request tried to make a card payment that requires the customer to fill in one or more of the card details, but the Explanation: You are trying to run a card that needs the user to type in their CVV, but you didn't tell the system the cardholder is actually there. Error Example: Correct Example: {
"initiation_type": "customer_present"
} | |
ERROR_CARD_PAYMENT_WITHOUT_CAPTURE_NOT_SUPPORTED | Message: The request tried to make a card payment with authorization only, but the selected payment method does not support it. The request was rejected. Corrective action: Set Explanation: The specific card type you are using doesn't allow "holds" and requires you to take the money immediately. Error Example: Correct Example: {
"capture": true
} | |
ERROR_CARD_VALIDATION_CAPTURE_TRUE | Message: The request attempted to validate a card, but the request also attempted to capture a payment. The request was rejected. Corrective action: Create a payment with a card payment method, set Explanation: You tried to check if a card is valid (zero-amount auth) but also tried to capture the amount. Error Example: Correct Example: {
"amount": 0,
"capture": false
} | |
ERROR_CARD_VALIDATION_IN_PAYMENT_WITH_ESCROW | Message: The request attempted to validate a card as part of an escrow transaction. The request was rejected. Corrective action: Create a payment with a card payment method, set [capture] to false, set Explanation: An authorization-only transaction does not involve funds at all, so it makes no sense to try to hold collected funds in escrow. Use a separate payment to collect funds into escrow. Error Example: Correct Example: {
"amount": 0,
"capture": false,
"escrow": null
} | |
ERROR_CARD_VALIDATION_IN_PAYMENT_WITH_FX | Message: The request attempted to validate a card, but the request also attempted to exchange currency. The request was rejected. Corrective action: Create a payment with a card payment method, set Explanation: An authorization-only transaction does not involve funds at all, so it makes no sense to convert zero of one currency into zero of another currency. However, you must still specify one of the currencies the payment method type supports. Use a separate payment for the currency exchange transaction. Error Example: Correct Example: {
"amount": 0,
"currency": "EUR",
"capture": false
} | |
ERROR_CARD_VALIDATION_IN_SPLIT_PAYMENT | Message: The request attempted to validate a card as part of a split payment. The request was rejected. Corrective action: Create a payment with a card payment method, set [capture] to false, set Explanation: An authorization-only transaction does not involve funds at all, so it makes no sense to divide the proceeds among multiple wallets. Use a separate payment to collect funds and distribute it among the wallets you want. Error Example: Correct Example: {
"amount": 0,
"capture": false,
"ewallets": [
{
"ewallet": "ewallet_12345abcd"
}
]
} | |
ERROR_COMPLETE_PAYMENT_CARD_NOT_CAPTURED | Message: The request tried to complete a card payment that was authorized and not yet captured, but this operation is not permitted. The request was rejected. Corrective action: Use Capture Payment. Explanation: You tried to finalize a transaction using the Complete Payment endpoint. This endpoint is only valid for the sandbox, and only for payment method types other than card. To complete a card payment in the sandbox, you must use the Capture Payment endpoint. Error Example: Correct Example: post /v1/payments/payment_12345abcd/capture | |
ERROR_CREATE_PAYMENT | Message: The request tried to create a payment, but the payment method was not found. The request was rejected. Corrective action: Use the ID of the payment method in the Explanation: You provided the ID of a payment method that does not exist or was created for a single transaction for a guest customer. Create the payment with a new payment method, or use a payment method that was saved to a customer. Error Example: Correct Example: {
"payment_method": "other_5678abcd"
} | |
ERROR_CREATE_PAYMENT_ADDRESS_VERIFICATION_FAILURE | Message: The request tried to create a payment, but there was a problem with the cardholder's address. The request was rejected. Corrective action: Use a different payment method. Advise the cardholder to contact the card issuer. Explanation: The card issuer rejected the transaction because the billing address you provided doesn't match what they have on file for the cardholder. Advise the customer to verify their address with the bank or use a different card. Error Example: Correct Example: {
"address": {
"line_1": "123 First Street",
"zip": "12345"
}
} | |
ERROR_CREATE_PAYMENT_AMOUNT_EXCEEDS_MAXIMUM | Message: The request tried to create a payment, but the amount was larger than what is allowed by the payment method. The request was rejected. Corrective action: Set amount so that the amount is less than the Explanation: You are trying to charge more than the maximum limit allowed by this specific payment method type. Error Example: Correct Example: Create multiple payments or use a different payment method. {
"amount": 500,
"currency": "USD"
} | |
ERROR_CREATE_PAYMENT_AMOUNT_LESS_THAN_MINIMUM | Message: The request tried to create a payment, but the amount was smaller than what is allowed by the payment method. The request was rejected. Corrective action: Set Explanation: The transaction amount is too small for this payment method to process (e.g., trying to pay $0.01 on a method with a $1.00 minimum). Error Example: Correct Example: {
"amount": 5.00
} | |
ERROR_CREATE_PAYMENT_CAPTURE_FOR_CARD_METHODS_ONLY | Message: The request tried to create a payment, but the category of the payment method was not card and Explanation: You included the Error Example: Correct Example: {
"capture": null
} | |
ERROR_CREATE_PAYMENT_CAPTURE_NOT_VALID | Message: The request tried to create a payment, but the method of capture could not be determined. The request was rejected. Corrective action: Set Explanation: You didn't clearly state whether you wanted to take the money immediately (true) or just authorize it (false). Error Example: Correct Example: {
"capture": true
} | |
ERROR_CREATE_PAYMENT_CARD_NOT_SUPPORTED | Message: The request tried to create a payment with a card, but the card acquirer does not support this card. The request was rejected. Corrective action: Use a different payment method. Explanation: The acquirer processing the payment doesn't accept this specific type of card (e.g., trying to use a local card with an international processor). Ask the user to choose a different payment method. | |
ERROR_CREATE_PAYMENT_CERTIFICATE_MISMATCH | Message: The request tried to create a payment with an Apple Pay payment method, but the merchant does not have a matching certificate. The request was rejected. Corrective action: Use the Client Portal to check the Apple Pay configuration, or contact Rapyd Client Support. Explanation: Your Apple Pay security certificates aren't set up correctly or don't match the merchant ID in your request. Review and re-upload Apple Pay certificates in the Client Portal. See also Activating Apple Pay. | |
ERROR_CREATE_PAYMENT_COMPLETE_PAYMENT_URL_NOT_VALID | Message: The request attempted an operation that requires a complete payment URL, but it was missing or not recognized. The request was rejected. Corrective action: Use a valid URL for Explanation: You didn't provide a valid redirect after a successful payment. Error Example: Correct Example: {
"complete_payment_url": "https://complete.rapyd.net"
} | |
ERROR_CREATE_PAYMENT_CURRENCY_MISMATCH | Message: Rapyd was unable to complete the payment because the sell currency of the payment was not supported by the payment method. Corrective action: Set Explanation: You tried to use a currency that the chosen payment method doesn't handle. Error Example: Correct Example: {
"currency": "COP",
"payment_method": "co_efecty_cash"
} | |
ERROR_CREATE_PAYMENT_CURRENCY_NOT_SUPPORTED | Message: The request tried to create a payment, but the currency was not recognized or not supported by the payment method provided. The request was rejected. Corrective action: Choose a currency that is supported by the payment method, or choose a payment method that supports the currency. Explanation: You provided a currency code that is either invalid or simply not allowed for the payment method you selected. Error Example: Correct Example: {
"currency": "GBP"
} | |
ERROR_CREATE_PAYMENT_CUSTOMER_CANCEL | Message: The payment failed because the customer canceled or disputed the transaction. Corrective action: Contact the customer. Explanation: The customer explicitly stopped the transaction through their bank. If the payment was canceled, try to contact the customer directly. If the customer disputed the payment, follow the normal procedures for handling disputes. | |
ERROR_CREATE_PAYMENT_CUSTOMER_NOT_PRESENT | Message: The request tried to create a payment for a recurring, installment or MOTO payment, but also asked for 3DS authentication. The request was rejected. Corrective action: Set Explanation: You requested a security check (3DS) that requires the cardholder to approve, but the transaction type requires approval only on the first of several payments. Error Example: Correct Example: {
"initiation_type": "recurring",
"3d_required": false
} | |
ERROR_CREATE_PAYMENT_ERROR_PAYMENT_URL_NOT_VALID | Message: The request attempted an operation that requires an 'error payment' URL, but it was missing or not recognized. The request was rejected. Corrective action: Use a valid URL for Explanation: You didn't provide a valid web address where the user should be redirected if the payment fails. Error Example: Correct Example: {
"error_payment_url": "https://error.rapyd.net"
} | |
ERROR_CREATE_PAYMENT_FOR_REAUTHORIZATION | Message: The request tried to create a payment with Explanation: You tried to capture the payment during a reauthorization, but reauthorizations are for extending the hold on funds only. Error Example: Correct Example: {
"initiation_type": "reauthorization",
"capture": false
} | |
ERROR_CREATE_PAYMENT_INSUFFICIENT_FUNDS | Message: The request tried to create a payment, but there were insufficient funds for the transaction. The request was rejected. Corrective action: None. Contact the customer. Explanation: The customer doesn't have enough money in their account or credit on their card to cover the cost. If the customer has another payment method that you can use, try to create another payment using that method. If not, contact the customer directly. | |
ERROR_CREATE_PAYMENT_ODFI_CANCEL | Message: The payment failed because the originating depository financial institution reversed the transaction. Corrective action: Advise the customer to contact the institution. Explanation: The customer's bank (originating depository financial institution) blocked and reversed the transaction after it was initiated. If the customer has another payment method that you can use, try to create another payment using that method. If not, contact the customer directly. | |
ERROR_CREATE_PAYMENT_PAD_PROBLEM | Message: The payment failed because of a problem with the pre-authorized debit agreement. Corrective action: Contact the customer. Explanation: There is an issue with the legal agreement that allows you to take money from the customer's bank account automatically. If the customer has another payment method, try to create another payment using that method. If not, advise the customer to contact the bank to resolve the issue. | |
ERROR_CREATE_PAYMENT_FOR_REAUTHORIZATION | Message: The request tried to reauthorize a card payment, but a processing issue occurred. The request was rejected. Corrective action: Rerun the request. If the error persists, contact Rapyd Client Support. Explanation: This is a general processing error indicating that the system encountered an internal or communication problem while attempting the reauthorization. It is typically not caused by a user input error but rather a temporary technical glitch. | |
ERROR_CREATE_PAYMENT_PERCENTAGE_MUST_BE_BETWEEN_0_AND_100 | Message: The request tried to split a payment among several wallets according to percentage, but the percentage was out of range. The request was rejected. Corrective action: Set percentage to a decimal number between 0 and 100, with up to 4 decimal places. Explanation: You entered a percentage value that is either negative or greater than 100. Error Example: Correct Example: {
"percentage": 50
} | |
ERROR_CREATE_PAYMENT_SPLIT_MISSING_AMOUNT_OR_PERCENTAGE | Message: The request tried to create a payment split among two or more wallets, but the allocation of funds was not recognized. The request was rejected. Corrective action: In the Explanation: You tried to split a payment but forgot to specify how much each wallet should get, or you didn't use a consistent method (amount or percentage) for all of them. Error Example: Correct Example: {
"ewallets": [
{
"ewallet": "ewallet_1",
"percentage": 50
},
{
"ewallet": "ewallet_2",
"percentage": 50
}
]
} | |
ERROR_CREATE_PAYMENT_SOURCE_UNAVAILABLE | Message: The request tried to create a payment, but the source of funds was not available. The request was rejected. Corrective action: Use a different payment method. Explanation: The specific bank or funding source the customer is trying to use is currently offline or unreachable. Try to create the payment later or use a different payment method. | |
ERROR_CRYPTOCURRENCY_PURCHASE_TRANSACTION | Message: The request tried to create a cryptocurrency purchase transaction, but your organization is not configured for such transactions. The request was rejected. Corrective action: Contact Rapyd Client Support. Explanation: Cryptocurrency is a highly regulated industry. You must have an appropriate license to conduct a cryptocurrency business. Contact Rapyd support for assistance after your license is approved. | |
ERROR_DIGITAL_WALLET_NOT_SUPPORTED_FOR_GET_SESSION | Message: The request tried to retrieve a session for digital wallet, but the digital wallet is not supported for getting payment session. The request was rejected. Corrective action: make sure that you are using the correct digital wallet wallet type and that it is supported. Explanation: You requested a payment session for a digital wallet brand that doesn't support the Retrieve Apple Pay Session workflow. Use a supported digital wallet type. Error Example: Correct Example: post /v1/digital_wallets/session/apple_pay | |
ERROR_FEATURE_NOT_ACTIVATED | Message: The request attempted an operation, but your organization is not configured to use this feature. Corrective action: Contact Rapyd Client Support. Explanation: The feature you are trying to use is available for only some clients. For more information, contact Rapyd Client Support. | |
ERROR_FEES_ONLY_ALLOWED_FOR_EWALLET_TRANSACTIONS | Message: The request tried to make a payment, but it also tried to set a fee and the payment was not to a wallet. The request was rejected. Corrective action: For a payment that is not to a wallet, leave Explanation: You included a Error Example: Correct Example: {
"payment_fees": null
} | |
ERROR_FIAT_FX_NOT_SUPPORTED | Message: The request attempted FX conversion on the currency received, but this action is not supported. Corrective action: For Explanation: You asked for a currency conversion (FX) on a payment method that only supports transactions in the local, original currency. Error Example: Correct Example: {
"currency": "USD",
"requested_currency": null
} | |
ERROR_FX_FEE_ONLY_ALLOWED_FOR_FX_TRANSACTIONS | Message: The request tried to create a payment, but it also tried to set a foreign exchange fee and the payment was not a foreign exchange transaction. The request was rejected. Corrective action: For a payment that does not require foreign exchange, leave Explanation: You included an FX fee in the request, but since no currency conversion is happening, the fee is invalid. Remove the Error Example: Correct Example: {
"currency": "USD",
"fx_fee": {}
} | |
ERROR_GET_AMOUNT_AND_PERCENTAGE | Message: The request tried to create a split payment, but the split was specified by both amount and percentage. The request was rejected. Corrective action: In the Explanation: You mixed calculation types in a split payment request, but this creates ambiguities that cannot be resolved. Choose either all amounts or all percentages for the wallets involved. Error Example: Correct Example: {
"ewallets": [
{
"ewallet": "ewallet_1",
"amount": 10
},
{
"ewallet": "ewallet_2",
"amount": 5
}
]
} | |
ERROR_GET_PAYMENT | Message: The request tried to retrieve a payment, but the payment was not found. The request was rejected. Corrective action: Use a valid payment ID. Explanation: You tried to look up a transaction using a payment ID that doesn't exist in the system. Check for typos in the payment ID and ensure that it was created in the correct environment (sandbox vs. production). Error Example: Correct Example: get /v1/payments/payment_12345abcd | |
ERROR_INCREASING_PAYMENT_AMOUNT | Message: The request attempted to reduce the amount of a payment authorization, but this operation is not supported. Corrective action: Cancel the payment or wait until you are ready to capture the payment, and then capture the reduced amount. Explanation: You tried to update the payment to change the authorized amount, but this operation is not supported. Capture the lower amount directly during the capture call Error Example: Correct Example: post /v1/payments/payment_12345abcd/capture
{
"amount": 50
} | |
ERROR_INVALID_EWALLET_AMOUNT | Message: The request tried to create a payment split by amount, but the amount was not valid. The request was rejected. Corrective action: Set Explanation: The number you entered for a wallet's portion of a split payment is either negative, zero, or formatted incorrectly. Error Example: Correct Example: {
"amount": 15.50
} | |
ERROR_INVALID_EWALLET_PERCENTAGE | Message: The request tried to create a payment split by percentage, but the percentage was not valid. The request was rejected. Corrective action: Set Explanation: You provided an invalid percentage value, such as a negative number or a value exceeding 100. Error Example: Correct Example: {
"percentage": 25.5
} | |
ERROR_INVALID_FX_FEE_CALC_TYPE | Message: The request tried to create a payment, but the method of calculating the FX fee was missing or incorrect. The request was rejected. Corrective action: In the Explanation: You didn't specify whether the FX fee should be calculated based on the total (gross) or the subtotal (net). Error Example: Correct Example: {
"fx_fee": {
"calc_type": "gross",
"value": 1.25
}
} | |
ERROR_INVALID_FX_FEE_VALUE | Message: The request tried to create a payment, but the FX fee was equal to or larger than the amount of the payment. The request was rejected. Corrective action: In the Explanation: The fee you set for the currency exchange is too high (it can't be more than the actual payment amount). Set the value to a smaller percentage, such as 2.5. Error Example: Correct Example: "fx_fee": {
"calc_type": "gross",
"fee_type": "percentage",
"value": 2.5
} | |
ERROR_INVALID_MERCHANT_EWALLET_STATUS | Message: The request tried to create a transaction with a sub-merchant's wallet, but the merchant_ewallet status was not ACT (enabled and active). Corrective action: If the status is DIS (disabled), run Change Wallet Status with Explanation: You're trying to move money to or from a business wallet that is currently disabled or inactive. Enable the wallet and try again. If this is not successful, contact Rapyd Support. | |
ERROR_INVALID_NET_FEES | Message: The request tried to create a payment, but the total net fee was equal to or larger than the amount of the payment. The request was rejected. Corrective action: Set the transaction fee and the FX fee so that the total net fee is less than the amount of the payment. Explanation: The combined cost of your transaction fees and FX fees is higher than the transaction itself. Lower the values of Error Example: Correct Example: {
"transaction_fee": {
"value": 1.00
}
} | |
ERROR_INVALID_PAYMENT_INITIATION_TYPE | Message: The request tried to create a payment, but the initiation type was not recognized. The request was rejected. Corrective action: Set Explanation: You provided an invalid or misspelled value for Error Example: Correct Example: {
"initiation_type": "moto"
} | |
ERROR_INVALID_TRANSACTION_FEE_CALC_TYPE | Message: The request tried to create a payment, but the method of calculating the transaction fee was missing or incorrect. The request was rejected. Corrective action: In the Explanation: You left out the calculation logic (gross or net) for the transaction fee you're trying to charge. This parameter is essential for calculation of the fee. Error Example: Correct Example: {
"transaction_fee": {
"calc_type": "net",
"value": 0.50
}
} | |
ERROR_INVALID_TRANSACTION_FEE_FEE_TYPE | Message: The request tried to create a payment, but the fee type of the transaction fee was missing or incorrect. The request was rejected. Corrective action: In the Explanation: You didn't clarify whether your fee is a flat monetary amount or a percentage of the total. This parameter is essential for calculation of the fee. Error Example: Correct Example: {
"transaction_fee": {
"fee_type": "absolute",
"value": 1.00
}
} | |
ERROR_INVALID_TRANSACTION_FEE_VALUE | Message: The request tried to create a payment, but the transaction fee was negative or was equal to or larger than the amount of the payment. The request was rejected. Corrective action: In the Explanation: The transaction fee value is invalid because it is either negative or exceeds the total payment amount. Error Example: Correct Example: {
"transaction_fee": {
"value": 1.00
}
} | |
ERROR_MISSING_PAYMENT_TOKEN | Message: The request attempted an operation that requires a payment ID, but the value was not found. The request was rejected. Corrective action: Use the ID of a valid payment. Explanation: You forgot to include the required payment ID or the ID was not found in the environment you are using. Ensure that the payment ID is passed correctly in the URL or request body. Error Example: Correct Example: post /v1/payments/payment_12345abcd45/capture | |
ERROR_ORIGINAL_PAYMENT_EXCEEDED | Message: The request tried to create a payment that references an original payment, but the payment amount exceeds the amount of the original payment. Corrective action: Set the amount to be less than or equal to the original payment amount. Explanation: You are trying to process a secondary transaction (like a reauthorization, delayed charge or no-show) for more money than the original transaction was worth. Error Example: Correct Example: {
"amount": 100
} | |
ERROR_ORIGINAL_PAYMENT_NOT_FOUND | Message: The request tried to create a payment that requires an Explanation: You're trying to reference an earlier payment ID that the system cannot find, possibly due to a typo. Ensure that the value is correct. Error Example: Correct Example: {
"original_payment": "payment_7a995b5e4fb62a6ee551e48d24a1613c"
} | |
ERROR_PAYER_UNKNOWN | Message: The request tried to create a payment, but the payer could not be identified on the basis of the information in the request. The request was rejected. Corrective action: Advise the customer to provide correct identifying information. Explanation: The customer ID you provided cannot be found in the database, or you forgot to include it in the request. Error Example: Correct Example: {
"customer": "cus_4e25112ac20e144ad073a614dc46934b"
} | |
ERROR_PAYMENT_AMOUNT_HAS_TO_BE_POSITIVE | Message: The request tried to create a payment, but the Explanation: One of the amounts you entered for a specific wallet in a split payment is zero or a negative number. Error Example: Correct Example: {
"ewallets": [
{
"ewallet": "ewallet_1",
"amount": 10
}
]
} | |
ERROR_PAYMENT_AMOUNT_LESS_THAN_MINIMUM | Message: The request attempted an operation that requires an amount, but the amount was less than the minimum required for the type of payment method. The request was rejected. Corrective action: Use an amount that is more than the minimum. Explanation: The provided amount is lower than the required threshold for this payment method type. You can determine the minimum amount by running List Payment Methods by Country. Error Example: Correct Example: {
"amount": 10.00
} | |
ERROR_PAYMENT_AMOUNT_NOT_ADJUSTABLE | Message: The request attempted to adjust the amount of a payment, but the payment is not adjustable. Corrective action: Create a new payment and set is_adjustable to true. Explanation: You tried to change the amount of a payment, but the payment method type does not allow this operation. Create a payment with the new amount and cancel the old one. Error Example: Correct Example: Ensure that {
"is_adjustable": true
} | |
ERROR_PAYMENT_CAN_NOT_BE_CANCELED | Message: The request tried to cancel a payment, but the payment was already closed. The request was rejected. Corrective action: None. Determine why an attempt was made to cancel a closed payment. Explanation: You attempted to cancel a payment that was already canceled. | |
ERROR_PAYMENT_EWALLET_NOT_AN_ARRAY_OR_STRING | Message: The request tried to create a payment, but the Explanation: The Error Example: Correct Example: {
"ewallet": "ewallet_c1943cfeda5f98247ab117e5d2648861"
} | |
ERROR_PAYMENT_FIELD_NAME_NOT_KNOWN | Message: The request attempted an operation that requires the names of fields in the Payment object, but one of the field names was unknown. The request was rejected. Corrective action: In the Explanation: You included a field name in the Error Example: Correct Example: "payment_method": {
"type": "au_visa_card",
"fields": {
"number": "4111111111111111",
"expiration_month": "12",
"expiration_year": "29",
"name": "John Doe",
"cvv": "345",
"date_of_birth": "12/25/1960"
}
} | |
ERROR_PAYMENT_FX_INVALID_EXPIRATION | Message: The request tried to make a payment together with currency exchange, but the payment method requires an expiration date, and no valid expiration was found in the request. The request was rejected. Corrective action: Provide a valid value for Explanation: You are performing currency exchange on a payment, which requires a future expiration date, but you provided an invalid or a past date value. Error Example: Correct Example: {
"expiration": 1735689600
} | |
ERROR_PAYMENT_INVALID_AMOUNT | Message: The request tried to create a payment, but the amount was not found or not recognized. The request was rejected. Corrective action: Set Explanation: The value you provided for the payment amount is either missing or is not a valid positive number. Error Example: Correct Example: {
"amount": 10.00
} | |
ERROR_PAYMENT_METHOD_TYPE_DOES_NOT_SUPPORT_FX | Message: The request tried to make a payment together with currency exchange, but the payment method does not support currency exchange. The request was rejected. Corrective action: Use a different payment method. Explanation: You attempted a currency conversion with a payment method that is restricted to its native currency. You can retry without the FX, or you can use a payment method that supports it. Error Example: Correct Example: {
"requested_currency": null
} | |
ERROR_PAYMENT_METHOD_TYPE_DOES_NOT_SUPPORT_PAYMENT_CANCELLATION | Message: The request tried to cancel a payment, but the payment type cannot be canceled. The request was rejected. Corrective action: None. If the payment method supports refunds, use Create Refund. Explanation: The payment method you used does not support a direct "cancel" request. Complete the payment and then create a refund. If necessary, create a payout. Error Example: Correct Example: Use the Create Refund endpoint. post /v1/refunds {
"payment": "payment_12345abcd"
} | |
ERROR_PAYMENT_METHODS_GET | Message: The request attempted an operation that requires a payment method ID, but the payment method was not associated with the customer specified in the request. The request was rejected. Corrective action: Use a payment method that is associated with the specified customer. Explanation: You specified a payment method ID that does not belong to the specific customer you identified in the request. Error Example: Correct Example: Use a payment method that already belongs to the customer or add a new one. {
"customer": "customer_2",
"payment_method": "card_7c7181a92f24274fde57c9cc7fea0874"
} | |
ERROR_PAYMENT_MORE_THAN_TWO_AMOUNT_OR_PERCENTAGE_ARE_MISSING | Message: The request tried to create a payment split among two or more wallets, but the allocation of funds was not recognized. The request was rejected. Corrective action: In the Explanation: In your split payment request, you failed to specify the cut for two or more wallets, leaving the system unsure how to distribute the money. Error Example: Correct Example: Specify either amount or percentage for every wallet in the {
"ewallets": [
{
"ewallet": "ewallet_1",
"percentage": 10
},
{
"ewallet": "ewallet_2",
"percentage": 90
}
]
} | |
ERROR_PAYMENT_NOT_FOUND | Message: The request attempted an operation that requires a payment ID, but the payment was not found. The request was rejected. Corrective action: Provide a valid payment ID. Explanation: The payment ID you provided does not exist in the system, possibly because it was created in a different environment or contains a typo. Error Example: Correct Example: Double-check the ID returned from the initial Create Payment response. get /v1/payments/payment_8de0decf49adcfa383dd3321ce5f56a8 | |
ERROR_PAYMENT_NUMBER_OF_EWALLETS_EXCEEDED | Message: The request tried to split a payment among several wallets, but there were too many wallets to process. The request was rejected. Corrective action: Split the payment among no more than 10 wallets. Explanation: You included more than the maximum allowed number of wallets (10) in the split payment request. Create several payments, and for each one, assign 1-10 wallets. Error Example: Correct Example: {
"ewallets": [
{
"ewallet": "ewallet_c1943cfeda5f98247ab117e5d2648861"
},
{
"ewallet": "ewallet_c247ab117e5d26481943cfeda5f34535"
}
]
} | |
ERROR_PAYMENT_PERCENT_MUST_BE_BETWEEN_0_TO_100 | Message: The request tried to split a payment among several eWallets according to percentage, but the percentage was out of range. The request was rejected. Corrective action: Set Explanation: One of the percentage values in your split payment request is invalid because it is either a negative number or the total exceeds 100%. Error Example: Correct Example: {
"percentage": 100
} | |
ERROR_PAYMENT_PERCENTAGE_HAS_TO_BE_POSITIVE | Message: The request tried to create a payment, but the Explanation: You entered a negative number or zero for a wallet's percentage in a split payment request. Error Example: Correct Example: {
"percentage": 15.5
} | |
ERROR_PAYMENT_SPLIT_AMOUNT_EXCEEDS_PAYMENT_AMOUNT | Message: The request tried to split a payment among several wallets, but the combined wallet amounts exceed the total amount of the payment. The request was rejected. Corrective action: Set the amount of the payment to be the same as the total amount of transfers to all wallets. Explanation: The sum of the individual amounts you assigned to the wallets is greater than the total transaction amount. Error Example: Correct Example: {
"amount": 100,
"ewallets": [
{
"amount": 50
},
{
"amount": 50
}
]
} | |
ERROR_PAYMENT_SPLIT_EXCEEDED_MAXIMUM_NUMBER_OF_EWALLETS | Message: The request tried to split a payment, but there were too many wallets in the request. The request was rejected. Corrective action: In the Explanation: You included more than 10 wallets in your split payment request, which is the maximum allowed. Create several payments and assign 1-10 wallets to each one. Error Example: Correct Example: Ensure the ewallets array contains 10 or fewer objects. {
"ewallets": [
{
"ewallet": "ewallet_c1943cfeda5f98247ab117e5d2648861"
}
]
} | |
ERROR_QUERY_DATE_RANGE_EXCEEDS_90_DAYS | Message: The request included temporal query parameters for defining a date range, but the date range defined via the IDs of the objects exceeds 90 days. Corrective action: Create a query where the date range does not exceed 90 days. Explanation: You tried to search for transactions over a period longer than three months. Error Example: Correct Example: Adjust your query parameters so the start and end dates are within 90 days of each other. get /v1/payments?created_after=payment_7a995b5e4fb62a6ee551e48d24a1613c&created_before=payment_8de0decf49adcfa383dd3321ce5f56a8 | |
ERROR_REAUTHORIZING_CANCELED_CARD_PAYMENT | Message: The request tried to reauthorize a card payment, but the original payment was canceled. The request was rejected. Corrective action: None. Explanation: You cannot extend or update the authorization of a transaction that has already been voided or canceled. Once a payment is canceled, the original hold on the funds is released and cannot be revived. | |
ERROR_REAUTHORIZING_CLOSED_PAYMENT | Message: The request tried to update a payment to extend the existing authorization, but the payment was already closed. Corrective action: Create a new payment. Explanation: This error occurs when you try to extend the authorization for a payment that has already reached a final state, such as being fully captured or expired. Since the transaction is closed, it is no longer eligible for authorization extensions. | |
ERROR_REVERSE_PAYMENT_DISPUTE_IN_PROCESS | Message: The request tried to reverse a payment, but the payment is already subject to a customer dispute. The request was rejected. Corrective action: None. Explanation: You cannot reverse a transaction that the customer has already disputed through their bank. Follow the procedures for contesting a dispute. | |
ERROR_SCA_EXEMPTION_DECLINED | Message: The request tried to create a payment with a strong customer authentication (SCA) exemption, but the exemption was declined. Corrective action: Resubmit the payment without the Explanation: You asked to skip the extra security check, but the bank declined to exempt the transaction from 3DS authentication. Omit Error Example: Correct Example: {
"payment_method_options": {
"sca_exemption": null
}
} | |
ERROR_SCA_EXEMPTION_LIMIT_NOT_VALID_OR_CURRENCY_NOT_SUPPORTED | Message: The request tried to create a payment with a strong customer authentication (SCA) exemption, but the exemption limit is not valid or the transaction currency does not support exemptions. Corrective action: Resubmit the payment without the Explanation: The payment amount is too high for a security bypass, or the currency being used doesn't allow for these exemptions. Resubmit the request without the Error Example: Correct Example: {
"payment_method_options": {
"sca_exemption": null
}
} | |
ERROR_SCA_EXEMPTION_NOT_ENABLED | Message: The request tried to create a payment with a strong customer authentication (SCA) exemption, but SCA exemptions are not enabled for the merchant. Corrective action: Resubmit the payment without the Explanation: You tried to create a payment that does not require 3DS authentication. Resubmit the Create Payment request without setting the Error Example: Correct Example: {
"payment_method_options": {}
} | |
ERROR_SIMULATE_COMPLETE_PAYMENT_CARD_NOT_AUTHENTICATED | Message: The request tried to complete a card payment in the sandbox, but the transaction requires 3DS authentication. The request was rejected. Corrective action: Browse to the URL in the Explanation: In the testing environment, you tried to capture a payment without completing the required mock security verification. Follow the redirect URL and use the test code 123456. | |
ERROR_SPLIT_PAYMENT_DUPLICATE_EWALLET | Message: The request tried to split a payment between two or more wallets, but one wallet appeared more than once in the request. The request was rejected. Corrective action: Combine all payments to one wallet into a single entry in the Explanation: You listed the same wallet ID multiple times in the split array instead of totaling the amount for that wallet into one entry. Error Example: Correct Example: {
"ewallets": [
{
"ewallet": "ewallet_c1943cfeda5f98247ab117e5d2648861",
"amount": 20
}
]
} | |
ERROR_TRANSACTION_FEE_INVALID_AMOUNT | Message: The request tried to create a payment, but the amount of the transaction fee was incorrect. The request was rejected. Corrective action: In the Explanation: The fee you specified is either missing, negative, or not formatted as a valid number. Error Example: Correct Example: {
"transaction_fee": {
"value": 2.50,
"fee_type": "absolute"
}
} | |
ERROR_UPDATE_PAYMENT | Message: The request tried to update a payment, but the status of the payment does not allow updates. The request was rejected. Corrective action: None. Determine why an attempt was made to change the payment when the status was not ACT. Explanation: You tried to modify a transaction that is closed, canceled, or completed. Only attempt updates when the payment status is currently ACT. | |
ERROR_UPDATE_PAYMENT_AMOUNT | Message: The request attempted to increase the amount of a payment, but this operation is only allowed for card payments. Corrective action: None. Explanation: You tried to raise the amount of a transaction for a non-card payment method, which is not permitted. Create another payment for the additional amount you want. Error Example: Correct Example: post /v1/payments {
"amount": 5
} | |
ERROR_USING_TOKEN | Message: The request tried to update a payment, but the payment method could not be found, or the payment failed. The request was rejected. Corrective action: Check all input fields, and verify that the payment method exists. Explanation: The payment method is invalid or the attempt to use it resulted in a processing failure. If the update is necessary, cancel the current payment and create a new one with the correct values. | |
INVALID_COMPLETE_PAYMENT_URL | Message: The request tried to create a payment, but the Explanation: The web address you provided for redirecting the user after a success is formatted incorrectly. Error Example: Correct Example: {
"complete_payment_url": "https://complete.rapyd.net"
} | |
INVALID_ERROR_PAYMENT_URL | Message: The request tried to create a payment, but the Explanation: The web address you provided for redirecting the user after a failure is formatted incorrectly. Error Example: Correct Example: {
"error_payment_url": "https://error.rapyd.net"
} | |
INVALID_EXPIRATION | Message: The request attempted an operation that requires a forward date or expiration date, but the date was not found or was not valid. The request was rejected. Corrective action: Provide a date that is a valid Unix time, not past, and not more than 1 year in the future. Explanation: The provided expiration timestamp is either missing, in the past, or set too far into the future. Error Example: Correct Example: {
"expiration": 1735689600
} | |
INVALID_PAYMENT | Message: The request attempted an operation that requires a payment ID, but the payment was not found. The request was rejected. Corrective action: Use the ID of a valid payment. Explanation: The specific payment ID you referenced cannot be located in the database. Error Example: Correct Example: get /v1/payments/payment_09c17e7313d8aa097a657018f9d187c5 | |
MISSING_PAYMENT | Message: The request attempted an operation that requires a payment ID, but the payment was not found. The request was rejected. Corrective action: Use the ID of a valid payment. Explanation: The specific payment ID you referenced cannot be located in the database. Error Example: Correct Example: Ensure that the payment parameter contains a valid ID like payment_09c17e7313d8aa097a657018f9d187c5. post /v1/payments/payment_09c17e7313d8aa097a657018f9d187c5 | |
PAYMENT_CAPTURED_BEFORE | Message: The request tried to capture a payment, but the payment was previously closed. The request was rejected. Corrective action: None. Determine why capture was attempted for a closed payment. Explanation: You tried to collect funds for a transaction that has already been finalized or canceled. | |
UNKNOWN_PAYMENT_METHOD_FIELDS | Message: The request tried to create or update a payment, but one of the fields in the Explanation: You included extra or misspelled data fields inside the payment method details. Check the response to Get Payment Method Required Fields. Error Example: Correct Example: {
"payment_method": {
"type": "au_visa_card",
"fields": {
"number": "4111111111111111",
"expiration_month": "12",
"expiration_year": "29",
"name": "John Doe",
"cvv": "345",
"date_of_birth": "12/25/1960"
}
}
} |
Formal consent of a bank account holder for making SEPA bank transfers to a creditor.
A group of rules for a card network on a specific subject, for example, Visa's rules for allowing customers to cancel subscriptions online.