Layer 1

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
​INVALID_ACCOUNT_DETAILS

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
​INVALID_ACCOUNT_DETAILS: The provided details were rejected by the partner channel due to incorrect information.

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:

    • Possible fraud
    • No authority held
    • Account suspended

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

www.ezypay.com