
Failed Payment Response Guide
Philippines
GCash
Successful Payments
Payment Response Code | SUCCEEDED | ||
Payment Response | Approved | ||
Subscription Invoice Status** | Active | ||
Invoice Status | Paid | ||
Transaction Status | Success | ||
Payment Provider Response (Description) | Approved | ||
Payment Reason (Description) | The transaction was successful. | ||
Payment Method Status | Valid | ||
What It Means | The transaction was successful. Payments will continue as scheduled. | ||
Suggested Actions (For Integrators) | N/A | ||
Suggested Actions (For Merchants) | N/A | ||
Suggested Actions (For Customers) | N/A |
** Only available to integrators on subscription model.
Failed Payments - Fund Issues
Payment Response Code | MAX_AMOUNT_LIMIT_ERROR | INSUFFICIENT_BALANCE |
Payment Response | limit_exceeded | Insufficient_funds |
Subscription Invoice Status** | Inactive | Inactive |
Invoice Status | Past_Due | Past_Due |
Transaction Status | Failed | Failed |
Payment Provider Response (Description) | The transaction amount exceeds the partner channel's set limits | Source of funds has insufficient balance to complete the transaction |
Failed Payment Reason (Description) | Transaction exceeded the customer's payment method daily withdrawal or activity limit. | Payment method has insufficient funds at the time of the transaction. |
Payment Method Status | Valid | Valid |
What It Means | The customer or customer’s bank has imposed spend limits. Payments will stop if maximum failed attempts have been reached. | At the time of the transaction, the customer did not have enough funds to cover the transaction. Sometimes, the bank will send us this reason code when they’ve identified fraudulent activity or transactions which are outside of the customer’s regular spend pattern. The risk rules of the customer bank are outside of our control. The vast majority of transactions that generate this response code are due to genuine insufficient funds. Payments will stop if maximum failed attempts have been reached. |
Suggested Actions (For Integrators) | You can retry the transaction on a later date without having to recreate the payment method, but we would suggest not retrying on the same day. | You can retry the transaction on a later date without having to recreate the payment method, but we would suggest not retrying on the same day. |
Suggested Actions (For Merchants) | You can retry the transaction on a later date, but we would suggest not retrying on the same day. | You can retry the transaction on a later date, but we would suggest not retrying on the same day as it’s unlikely that the customer would have enough funds available within the same day. |
Suggested Actions (For Customers) | Please increase the daily transaction limit on your account, or let the business know when another attempt can be made. | Please ensure there are enough funds in your account before the due date of the next transaction. |
** Only available to integrators on subscription model.
Failed Payments - Customer Issues
Payment Response Code | INVALID_PAYMENT_METHOD | ACCOUNT_ACCESS_BLOCKED ACCOUNT_NOT_ACTIVATED DECLINED_BY_ISSUER DUPLICATE_ERROR MAX_ACCOUNT_LINKING PAYMENT_AMOUNT_LIMITS_EXCEEDED PAYMENT_METHOD_ALREADY_EXISTS | |
Payment Response | Invalid_payment_method | customer_to_contact_bank | |
Subscription Invoice Status** | Inactive | Inactive | |
Invoice Status | Past_Due | Past_Due | |
Transaction Status | Failed | Failed | |
Payment Provider Response (Description) | INVALID_PAYMENT_METHOD: The provided payment method id has already expired or is inactive | ACCOUNT_ACCESS_BLOCKED: End customer bank account has been blocked, end user should contact the bank for resolution. ACCOUNT_NOT_ACTIVATED: End-customer's account is not activated for payments. DECLINED_BY_ISSUER: Payment failed because the issuer declined approval. DUPLICATE_ERROR: There's an existing record of linking the same underlying account for the provided customer_id OR Virtual Account Number/Payment Code already exists MAX_ACCOUNT_LINKING: Partner channel blocked the linking because the underlying account has been linked to the maximum number allowed by the channel. PAYMENT_AMOUNT_LIMITS_EXCEEDED: Payment failed because the end user’s transaction limits were exceeded. PAYMENT_METHOD_ALREADY_EXISTS: An active Payment Method with the same customer_id, channel_code for that merchant already exists. | |
Failed Payment Reason (Description) | Payment method details are invalid. Please use a different payment method. | Transaction rejected by customer’s bank. Please use a different payment method or contact your issuing bank. | |
Payment Method Status | Invalidated | Valid | |
What It Means | The account number is incorrect, and the bank is unable to match the details to any particular account.
It is possible the card does not authorize this type of transaction, location of transaction or the card is block by the bank (e.g. new card that has not activated).
Payment stops immediately until issue is resolved. | Due to some rules that the customer’s bank applies, the transaction is rejected.
The bank could have set up rules around duplicate detection, fraud or velocity that might have triggered the rejected transaction.
Some of these rules apply when the customer has reached their spend limit for the day.
Payment stops immediately until issue is resolved. | |
Suggested Actions (For Integrators) | Please confirm with the business or customer what the payment method should be.
Do not attempt to retry the transaction until the payment method token has been recreated.
Once the payment method token has been recreated, you can schedule a retry. | Please confirm with the business or customer what the payment method should be.
Do not attempt to retry the transaction until the payment method token has been recreated.
Once the payment method token has been recreated, you can schedule a retry. | |
Suggested Actions (For Merchants) | Do not attempt to retry the payment.
You should ask the customer for an alternative payment method.
Retrying a payment with the same payment details will yield the same failed payment response. | Ask the customer to contact their bank to ask why the transaction failed.
Until the matter is resolved between the customer and their bank, the transaction response will likely be the same, therefore we recommend that you request a different payment method. | |
Suggested Actions (For Customers) | Please check that all details of the account provided to the business are correct (E.g. Account Name, Account Number). Or you can provide the business with an alternate payment method. | The bank has rejected the transaction. Please contact your bank for the reason as to why the transaction had failed.
This will need to be resolved first before transactions can continue to be debited from this account. Or you can provide the business with an alternate payment method. |
Payment Response Code | MAX_OTP_ATTEMPTS_ERROR PAYMENT_STATUS_FAILED | PAYMENT_EXPIRED | |
Payment Response | declined | authority_withdrawn | |
Subscription Invoice Status** | Inactive | Inactive | |
Invoice Status | Past_Due | Past_Due | |
Transaction Status | Failed | Failed | |
Payment Provider Response (Description) | MAX_OTP_ATTEMPTS_ERROR: The maximum incorrect attempts allowed by the channel has been reached. PAYMENT_STATUS_FAILED: Payment has failed with no further information from channel. You may need to check before retrying. Recommended to wait ~30 minutes before retrying unless given further instruction | PAYMENT_EXPIRED: If you are using Xendit-hosted OTP page, end-user needs to input their OTP within 15 minutes or else the payment will be expired. You may need to create a new payment. | |
Failed Payment Reason (Description) | This transaction was declined by the bank. | The authority for the payment method has been withdrawn. | |
Payment Method Status | Valid | Invalidated | |
What It Means | General decline by the bank, that could be for different reasons:
Payments will stop if maximum failed attempts have been reached.
| A stop payment has been applied by the bank on instruction from the customer.
This occurs generally when a customer does not recognize a payment on their statement and puts a block on it.
Sometimes the customer puts a stop on a recurring payment when they are in dispute with the service provider
Payment stops immediately until issue is resolved. | |
Suggested Actions (For Integrators) | Please confirm with the business or customer what the payment method should be.
Do not attempt to retry the transaction until the payment method token has been recreated.
Once the payment method token has been recreated, you can schedule a retry. | Please confirm with the business or customer what the payment method should be.
Do not attempt to retry the transaction until the payment method token has been recreated.
Once the payment method token has been recreated, you can schedule a retry. | |
Suggested Actions (For Merchants) | Ask the customer to contact their bank to ask why the transaction declined.
Until the matter is resolved between the customer and their bank, the transaction response will likely be the same, therefore we recommend that you request a different payment method. | Ask the customer to provide an alternate payment method.
To reinstate the recurring authority, they will need to agree to a new Direct Debit Request with a later date than when they put a stop on the payment. | |
Suggested Actions (For Customers) | The bank has declined the transaction. Please contact your bank for the reason as to why the transaction had failed.
This will need to be resolved first before transactions can continue to be debited from this account. Or you can provide the business with an alternate payment method. | If you wish to use the same account details, please contact your bank and authorise payments to be debited by Ezypay. Or you can provide the business with an alternate payment method. |
** Only available to integrators on subscription model.
Error Responses
Payment Response Code | API_VALIDATION_ERROR BLOCKED_TOKEN CAPTURE_AMOUNT_EXCEEDED CHANNEL_NOT_ACTIVATED CUSTOMER_NOT_FOUND_ERROR CUSTOMER_PAYMENT_METHOD_MISMATCHED FEATURE_NOT_ACTIVATED FEATURE_NOT_SUPPORTED IDEMPOTENCY_ERROR INACTIVE_PAYMENT_REQUEST INELIGIBLE_MERCHANT_SETTINGS INELIGIBLE_TRANSACTION_STATUS INVALID_API_KEY INVALID_MERCHANT_CREDENTIALS INVALID_MERCHANT_SETTINGS INVALID_PAYMENT_DETAILS INVALID_TOKEN INVALID_VALUE_ERROR PARTIAL_REFUND_COUNTS_EXCEEDED PARTIAL_REFUND_NOT_SUPPORTED PAYMENT_ATTEMPT_COUNTS_EXCEEDED PAYMENT_REQUEST_EXPIRED PAYMENT_REQUEST_RATE_LIMITED PROCESSOR_CONFIGURATION_ERROR REFUND_AMOUNT_EXCEEDED REFUND_IN_PROGRESS REFUND_NOT_SUPPORTED REQUEST_FORBIDDEN_ERROR UNSUPPORTED_CONTENT_TYPE USER_DECLINED_PAYMENT USER_DID_NOT_AUTHORIZE VOID_NOT_SUPPORTED | AUTHENTICATION_FAILED CHANNEL_UNAVAILABLE CUSTOMER_UNREACHABLE DATA_NOT_FOUND DECLINED_BY_PROCESSOR FAILURE_DETAILS_UNAVAILABLE ISSUER_UNAVAILABLE OTP_DELIVERY_ERROR PROCESSOR_ERROR PROCESSOR_TEMPORARILY_UNAVAILABLE PROCESSOR_TIMEOUT_ERROR TEMPORARILY_UNAVAILABLE TIMEOUT_ERROR USER_DEVICE_UNREACHABLE PARTNER_CHANNEL_ERROR SERVER_ERROR |
Payment Response | ezypay_error | bank_system_error |
Subscription Invoice Status** | Inactive | Active |
Invoice Status | Past_Due | Past_Due |
Transaction Status | Error | Error |
Payment Provider Response (Description) | API_VALIDATION_ERROR: There is invalid input in one of the request fields or a required field was not filled out. BLOCKED_TOKEN:Payment token ID in the request was rejected or blocked by the payment channel. CAPTURE_AMOUNT_EXCEEDED:Capture amount in the capture request is greater than the remaining uncaptured authorization amount. CHANNEL_NOT_ACTIVATED:Request failed because this specific payment channel has not been activated through Xendit. Please activate via Xendit dashboard or our customer service. CUSTOMER_NOT_FOUND_ERROR:The provided customer_id does not exist. CUSTOMER_PAYMENT_METHOD_MISMATCHED:The provided payment_method_iddoes not match. FEATURE_NOT_ACTIVATED:A certain feature being accessed has not yet activated. Please reach out to our customer service for further assistance. FEATURE_NOT_SUPPORTED:A certain feature being accessed is not supported. IDEMPOTENCY_ERROR:The same Idempotency-key was provided with a different payload. INACTIVE_PAYMENT_REQUEST:Payment request is already in its terminal state. Changes are no longer allowed. INELIGIBLE_MERCHANT_SETTINGS:Merchant configuration is not eligible for the requested operation. INELIGIBLE_TRANSACTION_STATUS:Operation is not allowed for the current status of the referenced transaction or resource. INVALID_API_KEY:API key format is invalid. INVALID_MERCHANT_CREDENTIALS:Merchant credentials met with an error with the partner channel INVALID_MERCHANT_SETTINGS:Payment failed because the payment channel has incorrect settings configured for this merchant account. INVALID_PAYMENT_DETAILS:Payment information entered by the end user is invalid. INVALID_TOKEN:Payment token ID specified in the payment request has expired or has been cancelled. INVALID_VALUE_ERROR:API request format and parameters are correct, but one or more parameter values are outside what the payment channel or merchant settings allow. PARTIAL_REFUND_COUNTS_EXCEEDED:Number of partial refunds has exceeded what is allowed by the payment channel. PARTIAL_REFUND_NOT_SUPPORTED:Partial refund feature is not available for this payment channel. PAYMENT_ATTEMPT_COUNTS_EXCEEDED:Payment failed because too many payment attempts occurred in a short period. PAYMENT_REQUEST_EXPIRED:Payment failed because the payment request has already expired. PAYMENT_REQUEST_RATE_LIMITED:Maximum number of requests to this payment channel has been exceeded in a defined time window. PROCESSOR_CONFIGURATION_ERROR:Payment declined due to a problem with the merchant configuration on the Card Processor. Contact Xendit to troubleshoot the issue. REFUND_AMOUNT_EXCEEDED:Refund amount is greater than the captured amount remaining to be refunded. REFUND_IN_PROGRESS:There is a pending refund; a new refund request cannot be created until the pending one completes. REFUND_NOT_SUPPORTED:Refund feature is not available for this payment channel. REQUEST_FORBIDDEN_ERROR:The API key is forbidden to perform this request. UNSUPPORTED_CONTENT_TYPE:Request Content-Type is not supported by Xendit. USER_DECLINED_PAYMENT:End user explicitly declined the payment. USER_DID_NOT_AUTHORIZE:End user did not authorize the payment within required time limits. VOID_NOT_SUPPORTED:Void/cancel feature is not available for this payment channel. | AUTHENTICATION_FAILED: Payment failed because authentication (e.g. 3DS or channel auth) failed. CHANNEL_UNAVAILABLE: The partner channel cannot be reached or currently having a downtime CUSTOMER_UNREACHABLE: The end-user's device cannot be reached at this moment by the partner channel DATA_NOT_FOUND: Requested data resource does not exist in Xendit’s system (may be race condition; retry or delay recommended). DECLINED_BY_PROCESSOR: Payment failed because the card/payment was declined by the processor. FAILURE_DETAILS_UNAVAILABLE: Payment failed and the payment channel did not provide specific failure details. ISSUER_UNAVAILABLE: End user’s payment method provider is currently experiencing issues or unreachable. PARTNER_CHANNEL_ERROR: Error received from partner channel but no reasons provided SERVER_ERROR: An unexpected error occured. Our team has been notified and will troubleshoot the issue. OTP_DELIVERY_ERROR: The partner channel has failed to send the OTP to the Customer. PROCESSOR_ERROR: General system failure returned by the Card processor. Retry the request again after couple of minutes. PROCESSOR_TEMPORARILY_UNAVAILABLE: The Card Processor appears to be temporarily unavailable. Wait for a couple minutes, then resend the request. If it fails again, Cardholder can try using a different card or other form of payment. PROCESSOR_TIMEOUT_ERROR: Request was received by the processor, but there was a server timeout. Wait for a couple minutes and then retry the request. TEMPORARILY_UNAVAILABLE: Requested feature is unavailable at this time. Request can be retried later. TIMEOUT_ERROR: Connection to the payment channel timed out and no definitive response was received. USER_DEVICE_UNREACHABLE: Payment failed because Xendit / channel could not reach the end user’s device. |
Failed Payment Reason (Description) | An error occurred while processing the transaction. Please contact Ezypay support. | An error occurred while processing the transaction. Please contact Ezypay support. |
Payment Method Status | Valid | Valid |
What It Means | A configuration error on our end has likely occurred. Resolution intervention required to avoid future similar issue.
Payments will stop if maximum failed attempts have been reached. | An error has occurred while communicating with the payment provider. This could be due to a timeout issue that has caused the payment to be rejected.
Ezypay will send the payment for processing again. |
Suggested Actions (For Integrators) | N/A | N/A |
Suggested Actions (For Merchants) | N/A | N/A |
Suggested Actions (For Customers) | N/A | N/A |
** Only available to integrators on subscription model.
Contact
U-10-1 One Global Place, 5th Avenue Corner 25th Street, Barangay Bonifacio Global City, Taguig, Metro Manila 1630
asia.help@ezypay.com | 1800 1 322 0542
