Error and status codes

This page explains the error and status codes returned by the API.

Status codes and their meaning


Status

Full name

Description

APIs

ACCC

Accepted Settlement Completed

This status is only applicable for instant payments. Settlement on the creditor's account has been completed.

  • Business_Payment_Initiation

  • Business Instant Payout

ACSC

Accepted Settlement Completed

Settlement on the debtor's account has been completed. Also applicable when:

  • A recurring payment has passed the end date.
  • A recurring payment has been withdrawn.
  • Business Payment Initiation
  • Business Instant Payout

ACSP

Accepted Settlement In Process

All preceding checks such as technical validation and customer profile were successful. The payment initiation was successfully signed. The payment initiation has been accepted for execution, but before settlement on the debtor’s account.
Note: Execution is not guaranteed after this status. There are a number of reasons that may lead to its rejection.

  • Business Payment Initiation

  • Business Instant Payout

ACTC

Accepted Technical Validation

Authentication and syntactical and semantical validation (Technical validation) are successful. Payment is not signed yet.

  • Business Payment Initiation

RCVD

Received

Payment initiation has been received by the receiving agent. Technical validation has started.

  • Business Payment Initiation

  • Business Instant Payout

PDNG

Pending

Payment initiation or individual transaction included in the payment initiation is pending and in progress for signing. Further checks (and status update) will be performed.

  • Business Payment Initiation

RJCT

Rejected

Payment initiation or individual transaction included in the payment initiation has been rejected.

  • Business Payment Initiation

  • Business Instant Payout

CANC

Cancelled

Payment initiation has been cancelled before execution. This status is only applicable for future dated payments that have been successfully cancelled.

  • Business Payment Initiation

Error codes, their meaning and how to resolve them

OAuth2.0 / Authorisation Services

400 Bad request

  • invalid_grant - Invalid, expired, or already used authorisation code sent.

    Resolution

    To solve this issue:

    • Pass the correct authorisation code within the expiration time of 5 minutes.
    • Use an authorisation code one time only, do not call the token endpoint multiple times with the same authorisation code.
    👍

    We recommend you to add a slight delay of 1000 milliseconds before calling this endpoint. This delay ensures the authorisation codes are synchronised across our servers.

  • invalid_request - No grant_type or wrong grant_type provided.

    Resolution

    To solve this issue:

    • Pass the correct value in the ‘grant_type’ parameter.
      • To request an authorization code the ‘grant_type’ should be ‘authorization_code’
      • To request a refresh token the ‘grant_type’ should be ‘refresh_token’.

401 Unauthorized

  • invalid_grant - Invalid refresh token used.

    Resolution

    To solve this issue:

    • Pass a valid refresh token.
      👍

      A refresh token can only be used once and has an expiry, check the validity before making a request.

OAuth Error

  • invalid_request – invalid redirect_uri - Redirect URL provided in the request does not match the redirect URL provided in the application.

    Resolution

    To solve this issue:

    • Make sure that the redirect URL present in the request matches the redirect URL in your application.

General

400 Bad request

  • Format error, The value for 'Date' is not a valid 'LocalDateTime' - Invalid date formatting.

    Resolution

    To solve this issue:

    • Make sure the date is in the correct RFC format: Tue, 18 Sep 2018 09:51:01 GMT

401 Unauthorized

  • This server could not verify that you are authorized to access the URL - Expired or invalid access token used.

    Resolution

    To solve this issue:

    • Check the expiry time associated with the access token. Keep in mind that an access token is only valid for a limited time, If the access token has expired you should use the refresh token to get a new access token.

    If you are unable to get a new access token using the refresh token, the it may be that the consent of the user has expired or revoked by the user. This can be validated through the Consent Details Service API.

    If this is the case, you must renew the consent flow.

  • Not registered to plan - Trying to access an unsubscribed API.

    Resolution

    To solve this issue:

    • Make sure you are subscribed to the correct API.
  • Client ID or secret missing or invalid - Client ID in the token and client ID in the request that do not match.

    Resolution

    To solve this issue:

    • Make sure that both the client ID in the token and the client ID in your request match the client ID of your application.
  • The CA was not found in the trust - Certificate not found in trust store.

    Resolution

    To solve this issue:

    • Contact Rabobank Developer Support.
  • Invalid client certificate is provided - Certificate mismatch between app and request.

    Resolution

    To solve this issue:

    • Use the same mTLS certificate as configured in the application.
  • Application is not registered with mutual TLS - No mTLS certificate is connected to the app or the client ID does not exist.

    Resolution

    To solve this issue:

    • Go to the Dashboard and link a certificate to your app OR make sure you are using the correct client ID.
  • Client id in wrong location - header X-IBM-Client-Id has no content.

    Resolution

    To solve this issue:

    • Add the client ID to the X-IBM-Client-Id header.

403 Forbidden

  • Forbidden - No valid consent available or Required permission not found.

    Resolution

    To solve this issue:

    • Check the status of the consent. You can do this using the Consent Detail Service API.
      • If the status of the consent is valid, check if the scope of the API you are calling is present in the consent as well as the account number.
      • If the status of the consent is expired then the consent is indeed inactive and a new consent needs to be signed by the user.

404 Not Found

  • Not Found - The URL that you are looking for does not exist or You are requesting the status of a transaction too fast after posting it or A timeout occured between one or multiple applications.

    Resolution

    To solve this issue:

    • Check the URL for any errors or typos.
    • Build in at least a few miliseconds delay between a POST request and the subsequent GET request.
    • Try the request again later.

    If the issue still persists, contact Rabobank Developer Support.

404 Method not allowed

  • Method not allowed - Trying to make a POST request to endpoint that only accepts GET requests and vice versa.

    Resolution

    To solve this issue:

    • Double check that you are making the correct type of request. Most endpoints support only one specific type of request.

429 Access_Exceeded

  • Rate limit exceeded - Maximum number of calls exceeded.

    Resolution

    To solve this issue:

    • Make sure to stay within API rate limits.

500 Internal Server Error

  • Internal Server Error - Something went wrong on a network level. Either on our side, your side, or somewhere in between.

    Resolution

    To solve this issue:

    • Try the request again at a later time, if the issue persists contact Rabobank Developer Support.

503 Service Unavailable

Service Unavailable - One or more Rabobank services unavailable.

Resolution

To solve this issue:

  • Try the request again at a later time, if the issue persists contact Rabobank Developer Support.