Akoya uses HTTP status and error codes to indicate the success or failure of a request. For status codes other than 200, the HTTP response body will contain an error entity.
HTTP Status Codes | Meaning |
100s | Informational codes indicate the request initiated by the browser is continuing. |
200s | Success codes return when the browser request is received, understood, and processed by the server. |
300s | Redirection codes return when a new resource is substituted for the requested resource. |
400s | Client error codes indicate there is a problem with the request. |
500s | Server error codes indicate the request is accepted, but an error on the server prevented the fulfillment of the request. We recommend implementing three retries to help your app deal with short-lived, transient failures. The waiting time between retries should increase exponentially with each retry attempt. |
Below are common errors you may encounter when obtaining an authorization code grant.
HTTP Status Code | Error Description | Possible Issue |
200 | No "connector" Will return an incorrect login screen | |
400 | Unregistered redirect_uri (e.g. https://wrong/v2/callback) | The redirect_uri is incorrect or not registered |
400 | Invalid ConnectorID | The providerId is incorrect |
400 | Invalid client_id | The clientId is incorrect |
500/501 | Subsystem is unavailable or temporarily unavailable |
Error | Error Description | Possible Issue |
invalid_request | Invalid+response+type | The request is missing a parameter, contains an invalid parameter, includes a parameter more than once, or is otherwise invalid. |
invalid_scope | Missing+required+scope | The requested scope is invalid. |
access_denied | The user or authorization server denied the request. | |
unauthorized_client | The client is not allowed to request an authorization code using this method, for example, if a confidential client attempts to use the implicit grant type. | |
unsupported_response_type | The server does not support obtaining an authorization code using this method, for example, if the authorization server never implemented the implicit grant type. | |
server_error | Instead of displaying a 500 Internal Server error page to the user, the server can redirect with this error code. | |
temporarily_unavailable | If the server is undergoing maintenance, or is otherwise unavailable, this error code can be returned instead of responding with a 503 Service Unavailable status code. |
In this section, we describe common errors you may encounter while using our APIs.
Our APIs support the ability to include debugging information with errors. The debugMessage is not always present but will be included when possible.
Element | Type | Description |
code | String | Required. The code is a long term persistent identifier which can be used to trace error conditions back to log information. |
message | String | Required. This message is consumer-displayable information which may aid in diagnosis and error reporting. |
debugMessage | String | Not required. Message used to debug the root cause of the error. Contents should not be used in business logic. These messages may change at any time and should only be used for troubleshooting an issue. |
{
"code":'701',
"message":"Account not found",
"debugMessage": "No accounts were found for this customer."
}
HTTP Status Code | FDX Error Code | Error Message | API | Issue |
400 | 401 | Invalid input | Data APIs | Input sent by client does not satisfy API specification. |
400 | Invalid or expired code parameter | Token API (Obtain token) | The code parameter retrieved during authentication is wrong, missing, or expired. | |
400 | redirect_uri did not match URI from initial request | Token API (Obtain token) | The redirect URI is not registered with Akoya | |
400 | invalid_grant | Token API (Obtain token) | Missing or incorrect grant_type field. Must be authorization_code | |
400 | No refresh token in request | Token API (Refresh token) | The refresh token is missing, invalid, or claimed by another client. | |
400 | Refresh token is invalid or has already been claimed by another client. | Token API (Refresh token) | The refresh token is wrong or expired. | |
400 | invalid_request | Token API (Revoke token) | One or more key value is missing, invalid, or claimed by another client: refresh_token, client_id, client_secret | |
400 | unsupported_token_type | Token API (Revoke token) | The token_type_hint must be set to refresh_token | |
400 | 702 | Invalid start or end date | Data APIs | Start or end date value is not in the ISO 8601 format. |
400 | 703 | Invalid date range | Data APIs | The start date is not earlier than the end date, or the date range is beyond what the system supports. |
400 | 801 | Payee cannot be modified or deleted | Data APIs | Payee cannot be modified or deleted |
400 | 803 | Due date too soon | Data APIs | Due date too soon |
400 | 804 | Payment rejected | Data APIs | Payment rejected |
400 | 805 | Payment cannot be modified or deleted | Data APIs | Statement is processing and is not yet available |
400 | 807 | Recurring payment rejected | Data APIs | Recurring payment rejected |
400 | 808 | Recurring payment cannot be modified or cancelled | Data APIs | Recurring payment cannot be modified or cancelled |
400 | 910 | Insufficient funds | Data APIs | Insufficient funds |
400 | 911 | Transaction limit exceeded | Data APIs | Transaction limit exceeded |
400 | 1201 | Tax form type not supported | Data APIs | Tax form type not supported |
400 | 1202 | Tax year not supported | Data APIs | Tax year not supported |
400 | 1204 | Account ID is required | Data APIs | Account ID is required |
400 | 1300 | Statement is processing and is not yet available | Data APIs | Statement is processing and is not yet available |
401 | Invalid client credentials. | Token API | The client id or secret is incorrect. | |
401 | 602 | Customer not authorized | Data APIs | Customer does not have authorization to perform this action. Please attempt to refresh the token. |
401 | 603 | No active subscriptions for the client app | Data APIs | No active subscriptions for the client app |
401 | 903 | Source account not authorized for transfer | Data APIs | Source account not authorized for transfer |
401 | 906 | Destination account not authorized for transfer | Data APIs | Destination account not authorized for transfer |
401 | 1205 | Unauthorized | Data APIs | Unauthorized |
403 | 403 | Forbidden | Data APIs | Forbidden |
403 | 403 | Subscription not found | Data APIs | This error may be caused any of the following: 1. The providerId in your request is incorrect. 2. Your app isn’t subscribed to the requested provider. 3. Your app isn’t subscribed to the requested Akoya product. Please check the Data Recipient Hub to determine your subscription details. |
403 | 602 | Customer forbidden | Account access is restricted | |
404 | 408 | API not supported | Data APIs | API not supported |
404 | 601 | Customer not found | Data APIs | Customer with ID not found. |
404 | 701 | Account not found | Data APIs | Account with ID not found |
404 | 800 | Payee not found | Data APIs | Payee not found |
404 | 802 | Payment not found | Data APIs | Payment not found |
404 | 806 | Recurring payment not found | Data APIs | Recurring payment not found |
404 | 901 | Source account not found | Data APIs | Source account not found |
404 | 902 | Source account closed | Data APIs | Source account closed |
404 | 904 | Destination account not found | Data APIs | Destination account not found |
404 | 905 | Destination account closed | Data APIs | Destination account closed |
404 | 907 | Invalid amount | Data APIs | Invalid amount |
404 | 950 | Transfer not found | Data APIs | Transfer not found |
404 | 1100 | Update ID not found | Data APIs | Update ID not found |
404 | 1101 | Reward program ID not found | Data APIs | Reward program ID not found |
404 | 1102 | Categories not found for the reward program | Data APIs | Categories not found for the reward program |
404 | 1103 | Image ID not found for Transaction | Data APIs | Image ID not found for Transaction |
404 | 1104 | Statement Id not found for account | Data APIs | Statement Id not found for account |
404 | 1107 | Data not found for request parameters | Data APIs | Data not found for request parameters |
404 | 1108 | No statements in account | Data APIs | Account is present with no statement in it |
404 | 1200 | Tax form not found | Data APIs | Tax form not found |
405 | 1206 | Method not allowed | Data APIs | Method not allowed |
406 | 1203 | Content type not supported | Data APIs | Content type not supported |
408 | Request timeout | Data APIs | Request timed out (round trip call took >10 seconds). | |
409 | 705 | Account is closed | Data APIs | Account is closed |
409 | 908 | Duplicate transfer request | Data APIs | Duplicate transfer request |
422 | 704 | Account type not supported | Data APIs | Request made for investment, loans, taxes, statements and other functions that we currently do not support. Error also covers certain account types that are not supported, such as if an account doesn’t support payment-networks. |
429 | 1207 | Too many requests | Data APIs | Too many requests were sent within a short period of time. |
500 | 500 | Internal server error | Data APIs | Catch-all exception for requests that were not processed. |
500 | 501 | Subsystem unavailable | Data APIs | Catch-all exception for requests that were not processed. |
500 | 1000 | Unable to retrieve key from JWKS endpoint | Data APIs | Unable to retrieve key from JWKS endpoint |
501 | 1106 | Fdx version not supported or not implemented | Data APIs | Fdx version not supported or not implemented |
503 | 503 | Scheduled Maintenance | Data APIs | The system is down for maintenance. |
503 | 909 | Transfer not available due to end of day processing | Data APIs | Transfer not available due to end of day processing |