
# PayMaya Payment Gateway - Error Codes
Error response are returned in the format
```
{
"code": "PY0009",
"message": "Payment does not exist.",
}
```
Additionally for error 2553 a parameters array is returned with the details of the invalid fields.
```
{
"code": "2553",
"message": "Missing/invalid parameters.",
"parameters": [
{
"description": "value must be a number",
"field": "totalAmount.value"
},
{
"description": "A valid currency is required.",
"field": "totalAmount.currency"
}
]
}
```
| Http Status | Code | Message | Description |
| -------- | -------- | ------- | ---------- |
| 400 | 2553 | Missing/invalid parameters.
| 400 | PY9999 | Payment Vault is unreachable / timed out.
| 400 | PY0001 | A problem is encountered. Please contact your system administrator.' | Generic error please contact support if you encounter this.
| 400 | PY0002 | Card is expired.
| 400 | PY0007 | Invalid token status.
| 400 | PY0008 | Token is invalid.
| 404 | PY0009 | Payment does not exist.
| 400 | PY0015 | Payment processor server unreachable / timed out.
| 400 | PY0016 | Payment processor service error.
| 401 | PY0019 | Forbidden. | Your account does not have access to the API. Please contact Fulfillment Team or your Account Manager
| 400 | PY0021 | Failed to add customer.
| 404 | PY0023 | Customer does not exist.
| 400 | PY0024 | Failed to delete customer.
| 400 | PY0025 | Failed to update customer details.
| 400 | PY0026 | Failed to update card details.
| 404 | PY0027 | Card does not exist.
| 400 | PY0028 | Failed to delete card.
| 400 | PY0029 | No card found for customer.
| 400 | PY0030 | Invalid card token status.
| 400 | PY0036 | Card is not supported.
| 400 | PY0037 | Currency is not supported.
| 404 | PY0038 | Webhook does not exist.
| 400 | PY0039 | Webhook already exists.
| 400 | PY0042 | Charging of subscription is not applicable.
| 400 | PY0043 | Card already exists.
| 400 | PY0045 | Payment is not available for void.
| 404 | PY0046 | Refund does not exist.
| 401 | PY0047 | Payment is ineligible for refund.
| 400 | PY0048 | Requested refund amount is greater than the original amount.
| 404 | PY0049 | Subscription does not exist.
| 400 | PY0051 | Failed to update subscription details.
| 400 | PY0052 | Failed to cancel subscription.
| 400 | PY0053 | Merchant already exists.
| 400 | PY0054 | Subscription already charged.
| 422 | PY0057 | The payment has expired and cannot be processed.
| 403 | PY0058 | The merchant indicated does not have P2M services enabled. | QR functionality is not enabled on the account
| 408 | PY0061 | Notification server unreachable / timed out.
| 400 | PY0062 | Notification service error.
| 404 | PY0063 | Void does not exist.
| 400 | PY0064 | Invalid JSON Format.
| 400 | PY0065 | This merchant has no customizations present.
| 400 | PY0068 | Payment not executed due to authorization failure.
| 400 | PY0069 | Authentication server unreachable / timed out.
| 400 | PY0070 | Scheme is unsupported by merchant
| 400 | PY0071 | Payment mismatch with Merchant.
| 400 | PY0072 | Transaction cannot be processed. Cannot refund a transaction before cut off time.
| 400 | PY0073 | Transaction cannot be processed. Cannot void a transaction after cut off time.
| 400 | PY0082 | Refund already exists.
| 400 | PY0085 | Payment must be reversed from terminal.
| 400 | PY0088 | Card data already provided
| 400 | PY0089 | No card data provided
| 400 | PY0090 | Buyer data already provided
| 400 | PY0091 | Payment state is invalid for sending webhooks
| 400 | PY0092 | Merchant's registered webhook is unreachable
| 409 | PY0093 | Payment has already been updated.
| 400 | PY0094 | Payment is not available for capture.
| 400 | PY0095 | Amount must be less than or equal to amount authorized.
| 400 | PY0096 | Amount must be equal to amount authorized.
| 200 | PY0100 | Authentication failed.
| 200 | PY0101 | Acquirer decline due to high risk.
| 400 | PY0102 | Card is required, as there is no Fund Source attached to your account.
| 400 | PY0103 | Payment is already expired.
| 400 | PY0104 | Reference number is linked to multiple payments.
| 400 | PY0105 | Account has insufficient balance to perform this transaction.
| 400 | PY0106 | Failed to send notification.
| 400 | PY0111 | Invalid batch status.
| 400 | PY0112 | QR data is not supported.
| 400 | PY0113 | Partial refund is not allowed for this transaction.
| 400 | PY0114 | WeChat Service unreachable / timed out.
| 400 | PY0115 | WeChat Service error.
| 400 | PY0116 | Transaction could not be completed.
| 400 | PY0117 | Card is invalid.
| 400 | PY0118 | Transaction could not be completed with this terminal.
| 400 | PY0119 | Issuer declined card or account.
| 400 | PY0120 | Issuer decline.
| 400 | PY0121 | Card is expired.
| 400 | PY0122 | Issuer system is unavailable.
| 400 | PY0123 | Account limit exceeded.
| 400 | PY0124 | Transaction could not be verified.
| 400 | PY0125 | PIN is invalid or incorrect.
| 400 | PY0126 | PIN is invalid or incorrect.
| 400 | PY0127 | Please update incomplete customer records.