Refund Creation Endpoint

Create refunds requests from a completed deposit

Refund Creation

POST https://api-stg.lime-pay.com/v3/refunds

Description

The refunds endpoint allows you to create a full refund over a Credit Card deposit in completed state or full/partial refunds over other payment methods' deposits in completed state.

In the case of credit cards, since the refund will be processed to the same card, all you need to send are the fields to identify the deposit.

In the case of other payment methods where we don't have the account of the payer, you need to send the beneficiary's ID, bank account details and bank code retrieved with the Endpoint for Bank Codes.

You can create as many refunds as needed over a completed deposit, as long as the total amount of those refunds doesn't exceed the original amount deposited.

Headers

Name
Type
Description

Content-Type

string

application/json

X-Date

string

ISO8601 Datetime with Timezone: yyyy-MM-dd'T'HH:mm:ssZ

X-Login

string

Merchant X-Login API Key

Authorization

string

Authorization control hash

X-Idempotency-Key

string

Unique idempotency key

Request Body

Name
Type
Description

deposit_id

integer

LimePay deposit_id. It is obtained when creating the deposit

invoice_id

string

The invoice_id you sent while creating the deposit or the merchant_invoice_id auto-generated by us

amount

number

Amount to refund. If none is sent, the full deposit amount is assumed

bank_account

object

Object containing the information of the beneficiary. Not needed for credit cards

comments

string

Commentaries about the refund, if any

notification_url

string

HTTPS URL used to send the notifications about refund's change of status

{
    "refund_id": 162284
}

Refunds Request

In order to start creating refunds, you need to:

  1. Send the request with POST method.

  2. Use the headers described here.

  3. Specify a valid deposit_id and invoice_id related to the deposit to be refunded.

  4. Send the Authorization header calculated in the same way than for deposits, as explained here.

  5. Send the body of the request as JSON.

Example Request

// CASH Method:

curl --location --request POST 'https://api-stg.lime-pay.com/v3/refunds' \
--header 'X-Login: {{X-Login}}' \
--header 'X-Date: {{X-Date}}' \
--header 'Authorization: {{Authorization}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "deposit_id": 32423423423432,
    "invoice_id": "23jn4j3k2n",
    "amount": "100",
    "bank_account": {
        "beneficiary": "Carlos Ramirez",
        "bank_code": 1,
        "branch": "9283",
        "account_number": "18293435",
        "account_type": "SAVING"
    },
    "comments": "Test refund over v3",
    "notification_url": "https://webhook.site/url"
}'


// CREDIT CARD method:

curl --location --request POST 'https://api-stg.lime-pay.com/v3/refunds' \
--header 'X-Login: {{X-Login}}' \
--header 'X-Date: {{X-Date}}' \
--header 'Authorization: {{Authorization}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "deposit_id": 32423423423432,
    "invoice_id": "jk324b32jk3",
    "comments": "Test CREDIT CARD refund over v3",
    "notification_url": "https://webhook.site/url"
}'

Request fields description

Field

Format

Description

Validations

deposit_id

Integer

Valid deposit_id of a completed deposit

invoice_id

String (max length: 128)

Valid invoice_id of a completed deposit

amount

Big decimal (positive, up to 2 decimals)

Amount to refund. Only used in case of partial refunds. If none is sent, a full refund will be assumed

Positive. Equal or smaller than the deposit amount

bank_account[]

Object[]

Object containing the details where the refund should be sent to

comments

String (max length: 200)

Commentaries about the refund, if any

String of up to 200 characters

notification_url

String (max length: 2048)

Valid HTTPS URL used to send the notifications about refund's change of status

HTTPS URL

bank_account Object

Field name

Format

Description

Validations

beneficiary

string (max length: 255)

Beneficiary's name and last name

String of up to 255 characters

document_type

string (max length: 10)

Beneficiary's document type

Valid document type for the country of the deposit.

document

string (max length: 30)

Beneficiary's document ID

Valid document for the country of the deposit.

bank_code

string (max length: 5)

branch

string (max length: 45)

Beneficiary's bank branch

String of up to 45 characters

account_number

string (max length: 45)

Beneficiary's bank account number

String of up to 45 characters

account_type

string (max length: 45)

Beneficiary's account type

Account types

account_type

Description

SAVING

Savings account

CHECKING

Checkings account

VISA

Salary account

MASTER

Master account

SAVING_SET

Joint savings account

CHECKING_SET

Joint checkings

DEFAULT

Default

Example Response

CASH Success Response Example

{
    "refund_id": 168222
}

CASH Success Response Fields

Field
Format
Description

refund_id

Integer

Error Responses Example

// Invalid amount to refund. The amount is bigger than the deposit or
// it has been already refunded
{
    "code": 802,
    "description": "Amount to refund not valid",
    "type": "INVALID_AMOUNT_TO_REFUND"
}

// The object_bank account needs to be sent
{
    "code": 804,
    "description": "Missing bank account information",
    "type": "MISSING_BANK_ACCOUNT"
}

// The deposit_id and/or the merchant_invoice_id didn't belong to a deposit
{
    "code": 208,
    "description": "Resource not found",
    "type": "RESOURCE_NOT_FOUND"
}

Error Responses Fields

Field

Format

Description

code

Integer

description

String

Description of the error

type

String

Last updated