Errors
When you encounter an error, we’ll try to give you as much detail as possible about what went wrong and how you can fix it.
HTTP codes
The table below shows a list of possible 4xx errors.
info
If you encounter a 5xx error, check our status page. It’s safe to assume we’re already on it, but you can always contact us at support@griffin.com.
Code | Description |
---|---|
400 | Bad request. Either the request body, the path, or both contain an error. See more detail on bad requests below. |
401 | Request not authenticated. A valid API key was not provided or the HTTP message signature could be verified. |
403 | Forbidden. The request is authenticated but is not allowed to access the resource. The response body will specify the role you need to perform this action. |
404 | Not found. The resource does not exist or was deleted, or you are not a member of the organisation that owns the resource. |
405 | Method not allowed. The HTTP request method used is not supported for the requested endpoint. The Allow header in the response shows which methods are allowed. |
406 | Not acceptable. The Accept header specifies a resource format that the server cannot produce. Check the supported media types for the requested resource. |
409 | Conflict. The operation conflicts with the current state of the resource so it cannot continue. |
422 | Unprocessable entity. The request was understood, but failed for other reasons. See more detail on common 422 errors below. |
415 | Unsupported media type. The Content-Type for the request body is not recognised. Use Content-Type: application/json to encode the request body. |
429 | Too many requests. Your organisation has reached the limited of 50 in-flight API requests, OR more than three concurrent requests to submit a payment from a single bank account. Allow your outstanding requests to complete before retrying. |
Bad requests
400 responses will try to explain the cause and location of the error. The source
refers to the JSON pointer location in the body that caused the error. In general, we follow the JSON format for error processing, but we don’t adhere to it strictly.
Cause | Detail |
---|---|
Bad request | The request body could not be parsed correctly. |
Missing field | A required field was not in the request. |
Incorrect type | This field does not have the correct type. The detail will explain the expected type. |
Invalid enum value | The field is an enumeration that only allows a specific set of values. |
Invalid date | This field must be formatted as an ISO 8601 date. |
Invalid datetime | This field must be formatted as an ISO 8601 datetime. |
Incomplete value | This field cannot be empty. |
Bad path parameter | The request path does not conform to the expected form. |
422 errors
Account closing errors
Calling close-account-url
may return a 422 error for the following reasons.
Cause | Detail |
---|---|
account-not-found | Could not find the account. Double-check the account details. |
account-already-closing | This account is already closing . If the account is stuck in the closing state, make sure the balance is zero. Once the balance is zero, the account should automatically move to the closed state. |
account-already-closed | This account has already been closed . |
account-not-open | This account is still in the opening state. It cannot be closed until |
primary-account-not-closeable | The account is a primary account, which cannot be closed. |
Payment errors
Calling create-payment-url
or submit-payment-url
may return a 422 error for the following reasons.
Cause | Detail |
---|---|
account-restricted | The account is restricted from making payments right now. |
bank-account-closed | The bank account associated with this payment is closed. |
insufficient-funds | The account does not have enough funds to cover the payment. Deposit more funds and then resubmit. |
payment-amount-exceeds-scheme-limit | The payment amount is greater the maximum limit for this payment scheme. Change the amount or resubmit the request using another scheme. |
payee-deactivated | The payee for this payment has been deactivated. |