---
title: Error Codes
slug: developer-tools/error-codes
excerpt: Learn about the HTTP error responses returned from Pine Labs Online APIs.
hidden: false
sidebar_order: 1
metadata:
  title: Error Codes — HTTP Response Codes & Troubleshooting | Pine Labs API
  description: >-
    Complete list of Pine Labs payment API error codes with descriptions. Success indicated by 2XX status codes, failures by 4XX (client errors) or 5XX (server errors) with diagnostic messages.
  image: []
  keywords: error codes, API errors, HTTP status codes, troubleshooting, payment errors, API response codes, error handling
  robots: index
---
Pine Labs Online aims to process all the API requests successfully to provide the optimal user experience. Each API request can either return a successful response or a failed response. Successful API responses are indicated by an HTTP status code in the 2XX range. Any status code outside of the 2XX range signifies a failed request. Common reasons for API call failures include human input errors, network issues, and intermittent connectivity problems.

The error response helps to:

- Identify and examine the causes of failure.
- Identifying measures to resolve the unsuccessful response.

The table below lists the various HTTP response codes we return to indicate successful or failed API calls.

| HTTP Status Code | Description | Next Step |
| --- | --- | --- |
| 2XX | Successful API request. |  |
| 4XX | Failed API Request.      This is because of the error in the information provided by you.      Example: `Bad request``Invalid path``Invalid method` | When these error messages are returned check and correct the information passed in the API request. |
| 5XX | Failed API request.      This is returned when:Pine Labs Online server return errors.Pine Labs Online service provider's system error. | Try after some time. |



## Error Structure

The error response contains the `code` and `message` parameters in the error response. These parameters helps to identify reasons for the error.

The table below gives a brief description of the various parameters returned in the error message with all non-2XX HTTP status codes.

<ParameterTable title="Parameter" params={[
    { name: "code", type: "string", description: "Short code for the error returned. Possible values: `INVALID_REQUEST` `PAYMENT_RATE_LIMIT` `CARD_EXPIRED` `AMOUNT_LIMIT_EXCEEDED` `INTERNAL_ERROR`" },
    { name: "message", type: "string", description: "Corresponding error message for the code. Example: `The transaction was declined because the specified amount exceeds allowed limits`" },
    { name: "additional_error_details [Optional]", type: "object", description: "An object that contains the `additional_error_details` object."}
]} />


### Additional Error Details [Child Object]

The table below lists the various parameters in the `additional_error_details` child object. This object is part of the `http_error` response object.

<ParameterTable title="Parameter" params={[
    { name: "source", type: "string", description: "Indicates where the error originated. Example: `ACQUIRER`" },
    { name: "step", type: "string", description: "Specifies the stage in which the error occurred. Example: `payment_eligibility_check`" },
    { name: "reason", type: "string", description: "Describes the cause of the error, explaining why and where it has occurred. For example, The field value is `transaction_limit_exceeded` is passed." }
]} />


Shown below is a sample error response for an HTTP 422 status code.

```json 422 HTTP Status Code
{
  "code": "AMOUNT_LIMIT_EXCEEDED",
  "message": "The transaction was declined because the specified amount exceeds allowed limits",
  "additional_error_details": {
    "source": "ACQUIRER",
    "step": "payment_eligibility_check",
    "reason": "transaction_limit_exceeded"
  }
}
```
