Real-Time Loon Error Handling

You will make all Real-Time Loon requests to a single endpoint: /inquiry. If your request fails, you’ll receive an error in the format of the following example:

{
  "code": 403,
  "requestId": "8b764b09-5e2d-4562-8a74-6d04fbf574cd",
  "errorDetails": {
    "reason": "unauthorized",
    "message": "Merchant is not authorized to use the resource."
  }
}

API Error Details

HTTP Response CodeerrorDetails reasonerrorDetails messageRecommended Action
400InvalidRequestThe account updater service could not validate the request.Re-submit your request with a valid request object.
400UnavailableMerchantAccountThe merchant account is not available.Contact your Pagos account manager
400InvalidPanExpiryThe PAN expiry is invalid.Re-submit your request with a valid PAN expiry year and month.
400validation_errorSome of the request values failed to validate.See the content contained i the details array. [Learn more](#.
401AuthenticationFailedThe account updater service could not authenticate the request.Re-submit your request with correct credentials. Contact your Pagos account manager if the problem persists.
429concurrentLimitExceededYou exceeded the maximum allowed concurrent API calls.Keep concurrent API calls within the allowed concurrent API request limits.
500SystemErrorA system error occurred.Contact your Pagos account manager
503NetworkErrorThe network cannot process the request.Re-submit your request later. Contact Pagos if the problem persists.

Validation Errors

If your request to Real-Time Loon fails due to a validation_error (HTTP code 400), the response will include a details array in addition to the errorDetails reason and message. The details will include location and message fields explaining the source of the validation error.

The response will be in the format of the following example:

{
  "code": 400,
  "requestId": "8b764b09-5e2d-4562-8a74-6d04fbf574cd",
  "errorDetails": {
    "reason": "validation_error",
    "message": "Some of the request values failed to validate.",
    "details": [
      {
        "location": "accountNumber",
        "message": "The account number has invalid length."
      },
      {
        "location": "expirationDate.Year",
        "message": "The expiration date's year field must have 4 digits."
      }        
    ]
  }
}