SESSION_DATA_NOT_OK | SUCCESS | BAD_REQUEST | Session data doesn't meet the partner's requirements |
SUCCESS | SUCCESS | SUCCEEDED | Successful operation |
ERROR | ERROR | FAILED | Failed operation |
validation_failed | ERROR | BAD_REQUEST | The parameters submitted with your request were invalid. Details of which fields were invalid and why are included in the response. The request_pointer parameter indicates the exact field of the request that triggered the validation error. |
invalid_api_usage | ERROR | FAILED | This is an error with the request you made. It could be an invalid URL, the authentication header could be missing, invalid, or grant insufficient permissions, you may have reached your rate limit, or the syntax of your request could be incorrect. The errors will give more detail of the specific issue. |
gocardless | ERROR | FAILED | This is an error that has occured within GoCardless while processing your requests. In some cases, depending on the specific issue highlighted in errors, the request should be retried. If the problem persists, it should be reported to our support team with the request_id, so we can resolve the issue. |
invalid_state | ERROR | FAILED | The action you are trying to perform is invalid due to the state of the resource you are requesting it on. For example, a payment you are trying to cancel might already have been submitted. The errors will give more details. |
internal_server_error | ERROR | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | An internal error occurred while processing your request. This should be reported to our support team with the request_id, so we can resolve the issue. |
request_timed_out | ERROR | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | The request did not complete within a reasonable time. In this case, the request should be retried (possibly with different parameters). If the problem persists, it should be reported to our support team with the request_id, so we can resolve the issue. |
query_timed_out | ERROR | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | The query for this request did not complete within a reasonable time, potentially due to being too complex. In this case, the request should be retried (possibly with different parameters). If the problem persists, it should be reported to our support team with the request_id, so we can resolve the issue. |
invalid_type | ERROR | BAD_REQUEST | The errors key may also hold an array of type errors if the JSON you sent was incorrectly typed. These are in the same format as validation errors (with a message and field per error). A type error will also be returned if you include any additional, unknown parameters. |
path_not_found | ERROR | BAD_REQUEST | The path was not recognised. Check that you spelled the resource name correctly, and that the URL is formatted correctly. |
resource_not_found | ERROR | FAILED | The ID in the request was not found in our database. |
link_not_found | ERROR | BAD_REQUEST | One of the link[resource] IDs in the request was not found. Your integration should ensure that end users can only use existing resources. |
unauthorized | ERROR | TECHNICAL_ISSUE_DURING_AUTHENTICATION_CHECK | Your username/password was not recognised. |
forbidden | ERROR | TECHNICAL_ISSUE_DURING_AUTHENTICATION_CHECK | You were authenticated, but you do not have permission to access that resource. |
feature_disabled | ERROR | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | You are trying to use a feature which hasn’t been enabled on your account. Please contact support if you would like to enable it. |
not_acceptable | ERROR | BAD_REQUEST | The content type specified in your Accept header was not acceptable to this endpoint. |
request_entity_too_large | ERROR | BAD_REQUEST | The body of your request is too large. |
unsupported_media_type | ERROR | BAD_REQUEST | The API communicates using JSON only. Make sure that your Accept header permits JSON, and your Content-Type header is supported, if you are sending JSON data (e.g. with a POST or PUT request). |
rate_limit_exceeded | ERROR | FAILED | You have exceeded the rate limit. See the included headers for when your rate limit will be reset. |
access_token_not_found | ERROR | TECHNICAL_ISSUE_DURING_AUTHENTICATION_CHECK | No access token with the ID specified was found. |
access_token_not_active | ERROR | TECHNICAL_ISSUE_DURING_AUTHENTICATION_CHECK | The access token you are using has been disabled. |
access_token_revoked | ERROR | TECHNICAL_ISSUE_DURING_AUTHENTICATION_CHECK | The access token you are using has been revoked by the user. |
missing_authorization_header | ERROR | TECHNICAL_ISSUE_DURING_AUTHENTICATION_CHECK | No Authorization header was included in your request. See making requests for details on how to structure your authorisation header. |
invalid_authorization_header | ERROR | TECHNICAL_ISSUE_DURING_AUTHENTICATION_CHECK | The Authorization header sent was not valid. Make sure it was constructed as described in making requests. |
insufficient_permissions | ERROR | TECHNICAL_ISSUE_DURING_AUTHENTICATION_CHECK | The access token you are using does not have the right scope to perform the requested action. |
method_not_allowed | ERROR | BAD_REQUEST | The HTTP verb used is not permitted. Note that we do not allow PATCH requests, and PUT must be used to update resources. |
bad_request | ERROR | BAD_REQUEST | The request syntax was incorrect. |
idempotency_key_too_long | ERROR | BAD_REQUEST | An idempotency key was supplied for this request but exceeded the max length of this key. See idempotency keys for details on how to work with idempotency. |
invalid_document_structure | ERROR | BAD_REQUEST | The JSON sent to the server was not in the correct structure. Note that JSON parameters may not be sent at the top level, but must be sent under the name of the resource. See the examples for details on how this is done for each endpoint. |
invalid_content_type | ERROR | BAD_REQUEST | When including a JSON body with a request you must also include a Content-Type header, set to application/json or application/vnd.api+json. |
tls_required | ERROR | BAD_REQUEST | The GoCardless API can only be accessed over TLS/SSL. Make sure you are sending requests to urls starting with https://, not http://. |
missing_version_header | ERROR | BAD_REQUEST | No GoCardless-Version header was included in your request. See making requests for details on how to set your version header. |
version_not_found | ERROR | BAD_REQUEST | The GoCardless-Version specified was not found. The version must be one of those listed in the changelog. |
invalid_filters | ERROR | BAD_REQUEST | The combination of filters specified in the query string of your request are not allowed. Only certain combinations of filters may be applied to each list endpoint, as documented on each endpoint. |
request_body_not_allowed | ERROR | BAD_REQUEST | Sending a request body is not supported for the HTTP method you have used. Use query string parameters in the URL instead. |
customer_data_removed | ERROR | FAILED | The customer has been removed and they can no longer be returned by our API. You should remove any GoCardless references to these objects in your systems. |
payout_items_data_archived | ERROR | FAILED | Payout items for payouts created more than 6 months ago have been archived. Please contact support if you require access to this data. |
cancellation_failed | ERROR | FAILED | The mandate, payment or subscription was not in a cancellable state. It might have already been cancelled, failed, or it might be too late in the submission process to cancel. For example, payments cannot be cancelled once they are submitted to the banks. |
retry_failed | ERROR | FAILED | The payment could not be retried. |
disable_failed | ERROR | FAILED | The customer or creditor bank account could not be disabled, as it is already disabled. |
mandate_is_inactive | ERROR | FAILED | The payment could not be created, because the mandate linked is cancelled, failed, or expired. |
mandate_replaced | ERROR | FAILED | The resource could not be created, because the mandate it links to has been replaced (for example, because the creditor has moved to a new Service User Number). The new mandate can be found through the reference to links[new_mandate] in the error response, or by retrieving the original mandate and checking links[new_mandate]. |
bank_account_disabled | ERROR | REJECTED_BANK | The mandate could not be created because the customer bank account linked is disabled. |
mandate_not_inactive | ERROR | FAILED | The mandate could not be reinstated, because it is already being submitted, or is active. |
refund_is_unreachable | ERROR | REJECTED_BANK | The refund could not be created, because it would not reach the target bank account. |
refund_payment_invalid_state | ERROR | FAILED | The refund could not be created, because the payment specified is not confirmed or paid_out. |
total_amount_confirmation_invalid | ERROR | BAD_REQUEST | The refund could not be created because the total amount refunded does not match. |
number_of_refunds_exceeded | ERROR | BAD_REQUEST | The refund could not be created because five refunds have already been created for the given payment. |
idempotent_creation_conflict | ERROR | BAD_REQUEST | The resource has not been created as a resource has already been created with the supplied idempotency key. See idempotency keys for details. |
customer_bank_account_token_used | ERROR | BAD_REQUEST | The customer bank account could not be created because the token given has already been used. |
billing_request_must_be_ready_to_fulfil | ERROR | BAD_REQUEST | The billing request must have no outstanding required actions. To check the actions please view the actions array in the billing request get response. |
bank_account_exists | ERROR | BAD_REQUEST | The customer or creditor bank account you are trying to create already exists. These resources must be unique.
You should use the corresponding update endpoints to update the details on the existing bank account instead, which will be referenced as links[customer_bank_account] or links[creditor_bank_account] (as appropriate) in the error response. |
available_refund_amount_insufficient | ERROR | BAD_REQUEST | The refund requested by the creditor could not be created for the given currency, because the creditor does not have a sufficient balance available to cover the cost of the refund.
The amount available for refunds will fluctuate over time, as it is calculated in real time using several indicators. Examples of such indicators are in-flight payments, pending refunds, and any applicable ‘buffer allowance’ provided by GoCardless for the creditor in the given currency. The amount available for refunds will be returned in the metadata of the error response, under the available_refund_amount key, in the lowest denomination for the currency (e.g. pence in GBP, cents in EUR). |
billing_request_pending | SUCCESS | SUCCEEDED | the billing request is pending and can be used |
billing_request_ready_to_fulfil | SUCCESS | SUCCEEDED | the billing request is ready to fulfil |
billing_request_fulfilling | SUCCESS | SUCCEEDED | the billing request is currently undergoing fulfilment |
billing_request_fulfilled | SUCCESS | SUCCEEDED | the billing request has been fulfilled |
billing_request_cancelled | ERROR | ABORTED_BY_CUSTOMER | the billing request has been cancelled and cannot be used |
payment_pending_customer_approval | WAITING | WAITING_PARTNER_RESPONSE | we’re waiting for the customer to approve this payment |
payment_pending_submission | WAITING | WAITING_PARTNER_RESPONSE | the payment has been created, but not yet submitted to the banks |
payment_submitted | WAITING | WAITING_PARTNER_RESPONSE | the payment has been submitted to the banks |
payment_confirmed | SUCCESS | SUCCEEDED | the payment has been confirmed as collected |
payment_paid_out | SUCCESS | SUCCEEDED | the payment has been included in a payout |
payment_cancelled | ERROR | FAILED | the payment has been cancelled |
payment_customer_approval_denied | ERROR | BLOCKED_BY_CUSTOMER | the customer has denied approval for the payment. You should contact the customer directly |
payment_failed | ERROR | FAILED | the payment failed to be processed. Note that payments can fail after being confirmed if the failure message is sent late by the banks |
payment_charged_back | SUCCESS | SUCCEEDED | the payment has been charged back |
refund_created | WAITING | WAITING_PARTNER_RESPONSE | the refund has been created |
refund_pending_submission | WAITING | WAITING_PARTNER_RESPONSE | the refund has been created, but not yet submitted to the banks |
refund_submitted | WAITING | WAITING_PARTNER_RESPONSE | the refund has been submitted to the banks |
refund_paid | SUCCESS | SUCCEEDED | the refund has been included in a payout |
refund_cancelled | ERROR | FAILED | the refund has been cancelled |
refund_bounced | ERROR | FAILED | the refund has failed to be paid |
refund_funds_returned | SUCCESS | SUCCEEDED | the refund has had its funds returned |
UNKNOWN_PARTNER_ERROR | ERROR | FAILED | Received unexpected response from partner |
PARTNER_RESPONSE_VALIDATION_FAILED | ERROR | FAILED | Partner response validation failed. |
ABORTED | ERROR | ABORTED_BY_CUSTOMER | Form url expired. |
TIMEOUT | UNCERTAIN | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | Timeout while contacting partner |
PARTNER_SERVER_ERROR | UNCERTAIN | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | Received internal server error from partner |
PARTNER_BAD_GATEWAY | UNCERTAIN | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | Received bad gateway error from partner |
PARTNER_UNAVAILABLE | UNCERTAIN | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | Received service unavailable error from partner |
GET_STATUS_PARTNER_ERROR | WAITING | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | Received 5XX server error from partner when calling status |
VERIFY_PARTNER_ERROR | UNCERTAIN | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | Received 5XX server error from partner when calling verify |
GET_STATUS_TIMEOUT | WAITING | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | Timeout while contacting partner |
VERIFY_TIMEOUT | ERROR | TECHNICAL_ISSUE_TO_CONTACT_PARTNER | Timeout while contacting partner |