Last updated May 19th, 2022

Error Types

When you make an API call to our endpoints, Mono uses conventional HTTP response codes to indicate the success or failure of the API request. In general, codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that occurred due to the information provided, for example, a required parameter was omitted. Codes in the 5xx range indicate an error with our servers, but these are usually rare.

Below, we have detailed API errors you might using Mono and how to fix them. For widget errors, please get in touch with our support team here.

API Error Codes

CodeTypeWhat it means
200OKEverything worked as expected.
400Bad requestThe request was not accepted, often due to missing a required parameter.
401UnauthorisedNo valid API key provided.
402Request FailedThe request was unacceptable, often due to missing a required parameter.
403ForbiddenThe API key doesn’t have permissions to perform the request.
404Not FoundThe requested resources doesn’t exist.
409ConflictThe request conflicts with another request (perhaps due to using the same idempotent key).
429Too Many RequestsToo many requests hit the API too quickly. We recommend an exponential backoff of your request.
500 502 503 504Server ErrorsSomething went wrong on Mono’s end. (These are rare).

Direct Debit Error Codes

CodeTypeWhat it means
01Direct DebitStatus unknown, please wait for settlement report.
03Direct DebitInvalid Sender.
05Direct DebitDo not honor
06Direct DebitDormant Account
07Direct DebitInvalid Account
08Direct DebitAccount Name Mismatch
09Direct DebitRequest processing in progress
12Direct DebitInvalid transaction
13Direct DebitInvalid Amount
14Direct DebitInvalid Batch Number
15Direct DebitInvalid Session or Record ID
16Direct DebitUnknown Bank Code
17Direct DebitInvalid Channel
18Direct DebitWrong Method Call
21Direct DebitNo action taken
25Direct DebitUnable to locate record
26Direct DebitDuplicate record
30Direct DebitFormat error
34Direct DebitSuspected fraud
35Direct DebitContact sending bank
51Direct DebitInsufficient funds
57Direct DebitTransaction not permitted to sender
58Direct DebitTransaction not permitted on channel
61Direct DebitTransfer limit Exceeded
63Direct DebitSecurity violation
65Direct DebitExceeds withdrawal frequency
68Direct DebitResponse received too late
69Direct DebitUnsuccessful Account/Amount block
70Direct DebitUnsuccessful Account/Amount unblock
91Direct DebitBeneficiary Bank not available
92Direct DebitRouting error
94Direct DebitDuplicate transaction
97Direct DebitTimeout waiting for response from destination

Error Handling

While building your Mono integration, we strongly recommend that you keep a log of all API requests you make and the responses you receive. You should keep a log file as part of your application and record the API signature, any API URL parameters, and request body (you may strip the API keys) in JSON. Then, write down the API response code and log the JSON body of the error message if one occurs. When your integration is stable, you can lower the logging level and log only the API name (signature), the response code, and any error messages that may have occurred.

On your Mono dashboard, you can also see the logs of each API call you make. This applies to both successful and failed responses (provided the access key and secret key are correct).

To access your API Logs on the dashboard:

  • Log in to the Mono dashboard and navigate to Audit Logs > API Logs.
  • Use the dropdown at the top right to select your Mono App, or filter by Scope (Identity, Statements, etc), Status (failed or successful), and Environment (live or test).
  • Then, your API call data will be displayed based on the filters you chose.

In addition, the response body will be empty if a standard HTTP error code such as 401 (Not Authorized) or 404 (Not Found) is sufficiently descriptive. The response will also contain an error entity that provides additional information about the incident, including an application error code and a human-readable error description. In other situations, we will utilize the standard response code for client errors (400).

Did this page help you?