Unique Transaction CLABE Backend Integration

This section explains how the unique transaction CLABE interbank code is generated in a workflow and how to consult it via API.

General Workflow

  1. Order Creation.
    1. Using a Payment Link (alternative)
  2. Configure Order for Bank Transfers.
  3. Obtain Public Order information.
    1. Key values: Locating the unique transaction CLABE
  4. Get Public Checkout information (optional)


⚠️

IMPORTANT

To follow the steps below, it is essential to have the corresponding Authorization Token. For more information, please refer to the following documentation page: Authorization Token

1. Create Order

An order is created via API including all the important details of an order creation and sent to an specific endpoint.

💻

Visit our API Reference to test this endpoint.

Endpoint

  • POST https://ecartpay.com/api/orders
  • POST https://sandbox.ecartpay.com/api/orders

Headers

  • Authorization: {token}
  • Content-Type: application/json

Examples

Request

curl --location 'https://sandbox.ecartpay.com/api/orders' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4YTRjMzE1MGIyOGE5NTg0MzA1YTJhYSIsImFjY291bnRfaWQiOiI2OGE0YzMxNTBiMjhhOTU4NDMwNWEyYTYiLCJhY2NvdW50Ijp7..........................' \
--header 'Content-Type: application/json' \
--header 'Cookie: __cf_bm=_IACiVjhvamXHPWATygca4KChslU59Dq5iQ7ConPgjc-1761678992-1.0.1.1-lUhuZbGif60VUwO6z9tt4fdH._D6RPNyhvcxso8zyFvwFyvagWMPnQ2JjRMPHSNWjWxB5K_qJDUVdhmB41xlgTM3Mojfn66K2sRbE3w8ZYM; lang=en' \
--data-raw '{
  "items": [
    {
      "name": "Brazalete religioso plateado BR3017",
      "price": 199,
      "quantity": 1
    }
  ],
  "shipping_address": {
    "country": {
      "code": "MX",
      "name": "Mexico"
    },
    "state": {
      "code": "TB"
    },
    "address1": "Beliario Dominguez",
    "address2": "Semillero",
    "city": "Monterrey",
    "first_name": "Moises",
    "last_name": "Garcia",
    "phone": "9341024062",
    "postal_code": "64000"
  },
  "currency": "MXN",
  "email": "[email protected]",
  "first_name": "Moises",
  "last_name": "Garcia",
  "notify_url": "https://example.com/customer/$id",
  "phone": "9341024062"
}'

Response

{
    "account_id": "68a4c3150b28a9584305a2a6",
    "type": "order",
    "number": "OR0000037095",
    "status": "created",
    "email": "[email protected]",
    "first_name": "Moises",
    "last_name": "Garcia",
    "phone": "9341024062",
    "currency": "MXN",
    "country": "MX",
    "shipping_address": {
        "first_name": "Moises",
        "last_name": "Garcia",
        "address1": "Beliario Dominguez",
        "address2": "Semillero",
        "country": {
            "code": "MX",
            "name": "Mexico"
        },
        "state": {
            "code": "TB"
        },
        "city": "Monterrey",
        "postal_code": "64000",
        "phone": "9341024062"
    },
    "items": [
        {
            "name": "Brazalete religioso plateado BR3017",
            "quantity": 1,
            "price": 199,
            "discount": 0,
            "total": 199,
            "tax": 0,
            "is_service": false,
            "taxes": []
        }
    ],
    "shipping_items": [],
    "discounts": [],
    "totals": {
        "subtotal": 199,
        "total": 199,
        "tax": 0,
        "financial_cost": 0,
        "discount": 0,
        "shipping": 0
    },
    "risk_score": 0,
    "risk_notes": [],
    "fee": 0,
    "fee_details": {
        "fixed": 0,
        "percent": 0,
        "tax": 0,
        "percent_amount": 0,
        "msi_percent": 0,
        "msi_amount": 0,
        "fixed_installments_amount": 0,
        "fixed_installments_percent": 0,
        "installments_fee": 0
    },
    "available_installments": [],
    "fixed_installments": false,
    "confirmed": false,
    "confirm": false,
    "notify_url": "https://example.com/customer/$id",
    "auto_billing": false,
    "available_payment_methods": [],
    "send_email": false,
    "id": "690118ea494fc5584d7397bb",
    "installments_information": [],
    "created_at": "2025-10-28T19:26:34.389Z",
    "updated_at": "2025-10-28T19:26:34.389Z",
    "pay_link": "https://checkoutdev.ecartpay.com?id=690118ea494fc5584d7397bb"
}

Response Key values

  • payment_link: Upon opening this URL the client will be redirected to a checkout screen.

1.1 Using a Payment Link (alternative)

A payment link is created for an order. Here, you will configure the specifics like the price, name of the item, quantity, shipping address, and other useful information. Once the link is used, the order is created.

💻

Visit our API Reference to test this endpoint.

Endpoint

  • POST https://ecartpay.com/api/templates
  • POST https://sandbox.ecartpay.com/api/templates (Sandbox only)

Headers

  • Authorization: {token}

Examples

Request

curl --request POST \
     --url https://sandbox.ecartpay.com/api/templates \
     --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4YTRjMzE1MGIyOGE5NTg0MzA1YTJhYSIsImFjY291bnRfaWQiOiI2OGE0YzMxNTBiMjhhOTU4NDMwNWEyYTYiLCJhY2NvdW50Ijp7ImVtYWlsIjoiaHV........................' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "items": [
    {
      "name": "Golden Necklace BZ3909",
      "price": 199,
      "quantity": 1
    }
  ],
  "shipping_address": {
    "country": {
      "code": "US",
      "name": "United States"
    },
    "state": {
      "code": "FL"
    },
    "address1": "Belisario Dominguez",
    "address2": "Semillero",
    "city": "Miami",
    "first_name": "Stefany",
    "last_name": "Porras",
    "phone": "7986543211",
    "postal_code": "33101",
    "reference": "In front of K mart"
  },
  "shipping_items": [
    {
      "amount": 1,
      "carrier": "OWN",
      "name": "Express Shipping"
    }
  ],
  "currency": "USD",
  "first_name": "Jimmy",
  "name": "Gold Neck Payment",
  "quantity_uses": -1,
  "start_date": "2025-06-18 12:00:00"
}
'

Response

{
  "id": "6900f808916c3ed811c5df07",
  "account_id": "68a4c3150b28a9584305a2a6",
  "first_name": "Jimmy",
  "currency": "USD",
  "shipping_address": {
    "first_name": "Stefany",
    "last_name": "Porras",
    "address1": "Belisario Dominguez",
    "address2": "Semillero",
    "country": {
      "code": "US",
      "name": "United States"
    },
    "state": {
      "code": "FL"
    },
    "city": "Miami",
    "postal_code": "33101",
    "phone": "7986543211",
    "reference": "In front of K mart"
  },
  "items": [
    {
      "name": "Golden Necklace BZ3909",
      "quantity": 1,
      "price": 199,
      "discount": 0,
      "total": 199,
      "tax": 0
    }
  ],
  "shipping_items": [
    {
      "name": "Express Shipping",
      "amount": 1,
      "carrier": "OWN"
    }
  ],
  "discounts": [],
  "totals": {
    "subtotal": 199,
    "total": 200,
    "tax": 0,
    "discount": 0,
    "shipping": 1
  },
  "available_installments": [],
  "start_date": "2025-06-18T12:00:00.000Z",
  "end_date": null,
  "quantity_uses": -1,
  "name": "Gold Neck Payment",
  "number": "TE36761484",
  "payment_link": "https://sandbox.ecartpay.com/payment_link/6900f808916c3ed811c5df07",
  "installments_information": [],
  "created_at": "2025-10-28T17:06:16.657Z",
  "updated_at": "2025-10-28T17:06:16.657Z"
}

Response Key values

  • payment_link: Upon opening this URL, the order will be instantly created via API and the client will be redirected to a checkout screen.

2. Configure Order for Bank Transfers

Use this endpoint to activate Bank Transfers for an order for customers to pay. This request will generate a unique transaction CLABE for this specific order.

💻

Visit our API Reference to test this endpoint.

Endpoint

  • {{baseURL}}/api/orders/{id}/process

Path Parameters

  • id: The id of the order to configue for Bank Transfers.

Request Body Key values

  • method_id: This is the ID of the Payment Gateway that will be configured in this order.
    • The ID 66c397dafd263a538b8312a1 corresponds to the Bank Transfer option with Ecart Pay. For further details on other available payment gatways, consult the documentation.

Examples

Request

curl --request POST \
     --url https://sandbox.ecartpay.com/api/orders/690118ea494fc5584d7397bb/process \
     --header 'content-type: application/json' \
     --data '
{
  "method_id": "66c397dafd263a538b8312a1"
}
'

Response

{
  "status": "pending",
  "redirect_url": "/payment/success?order_id=690118ea494fc5584d7397bb"
}

3. Get Public Order

Use this endpoint to get all the relevant information about this order, including the unique transaction CLABE if it has been already generated and assigned to the order.

💻

Visit our API Reference to test this endpoint.

Endpoint

  • https://checkoutdev.ecartpay.com/api/orders/public/{{id}}
  • https://sandbox.ecartpay.com/api/orders/public/{{id}}

Path Parameters

  • id: The id of the order that will be paid for.

Examples

Request

curl --request GET \
     --url https://sandbox.ecartpay.com/api/orders/public/690118ea494fc5584d7397bb

Response

{
  "id": "690118ea494fc5584d7397bb",
  "first_name": "Moises",
  "last_name": "Garcia",
  "number": "OR0000037083",
  "totals": {
    "subtotal": 249.99,
    "total": 409.99,
    "tax": 0,
    "financial_cost": 0,
    "discount": 0,
    "shipping": 160
  },
  "currency": "MXN",
  "status": "pending",
  "items": [
    {
      "name": "Brazalete religioso plateado BR3017",
      "quantity": 1,
      "price": 249.99,
      "discount": 0,
      "total": 249.99,
      "tax": 0,
      "is_service": false,
      "taxes": []
    }
  ],
  "shipping_items": [
    {
      "name": "Express Shipping",
      "amount": 160,
      "carrier": "OWN"
    }
  ],
  "shipping_address": {
    "first_name": "Billy",
    "last_name": "Cosby",
    "address1": "Beliario Dominguez",
    "address2": "Semillero",
    "country": {
      "code": "MX",
      "name": "Mexico"
    },
    "state": {
      "code": "TB"
    },
    "city": "Monterrey",
    "postal_code": "64000",
    "phone": "9341024062"
  },
  "payments": [
    {
      "id": "646010142603008203", // unique transaction CLABE
      "status": "pending",
      "type": "transfer",
      "currency": "MXN",
      "amount": 40999,
      "gateway": "ecartpay",
      "method": {
        "expires_at": "2025-11-02T18:33:00.331Z",
        "reference": "646010142603008203"
      }
    }
  ],
  "created_at": "2025-10-28T18:31:51.172Z"
}

Response Key values: Locating the unique transaction CLABE

Inside the payments array:

  • id: This is the unique transaction CLABE

Visual reference of the unique transaction CLABE.


4. Get Public Checkout (optional)

You may want to use this endpoint to verify all the details about this order before it is paid for. However, it is not essential to get the unique transaction CLABE.

💻

Visit our API Reference to test this endpoint.

Endpoint

  • https://sandbox.ecartpay.com/api/checkout/{{id}}

Path Parameters

id: The id of the order related to this checkout.

Examples

Response

curl --request GET \
     --url https://sandbox.ecartpay.com/api/checkout/690118ea494fc5584d7397bb

Request

{
  "account": {
    "comercial_name": "Hugo Morín",
    "first_name": "Hugo",
    "last_name": "Morín",
    "verified": true,
    "country": "MX"
  },
  "order": {
    "id": "690118ea494fc5584d7397bb",
    "account_id": "68a4c3150b28a9584305a2a6",
    "number": "OR0000037095",
    "status": "pending",
    "email": "[email protected]",
    "first_name": "Moises",
    "last_name": "Garcia",
    "phone": "9341024062",
    "currency": "MXN",
    "items": [
      {
        "name": "Brazalete religioso plateado BR3017",
        "quantity": 1,
        "price": 199,
        "discount": 0,
        "total": 199,
        "tax": 0,
        "is_service": false,
        "taxes": []
      }
    ],
    "shipping_items": [],
    "discounts": [],
    "shipping_address": {
      "first_name": "Moises",
      "last_name": "Garcia",
      "address1": "Beliario Dominguez",
      "address2": "Semillero",
      "country": {
        "code": "MX",
        "name": "Mexico"
      },
      "state": {
        "code": "TB"
      },
      "city": "Monterrey",
      "postal_code": "64000",
      "phone": "9341024062"
    },
    "totals": {
      "subtotal": 199,
      "total": 199,
      "tax": 0,
      "financial_cost": 0,
      "discount": 0,
      "shipping": 0
    },
    "available_payment_methods": [],
    "available_installments": [],
    "installments_information": []
  },
  "gateways": [
    {
      "id": "62d5d5caac51e72396d2b471",
      "gateway": "ecartpay",
      "type": "card",
      "title": "Debit/Credit Card",
      "active": true,
      "sort": -2
    },
    {
      "id": "63c5dbfd9a645c3e3265ba3f",
      "gateway": "ecartpay",
      "type": "cash",
      "title": "Efectivo - ClubPago",
      "active": true,
      "method": "clubpago",
      "sort": -1
    },
    {
      "id": "63c5dcfb9a645c3e3265ba42",
      "gateway": "ecartpay",
      "type": "cash",
      "title": "Efectivo - OXXO",
      "active": true,
      "method": "oxxo",
      "sort": -1
    },
    {
      "id": "66c397dafd263a538b8312a1",
      "gateway": "ecartpay",
      "type": "transfer",
      "title": "Bank Transfer",
      "active": true,
      "sort": 0
    }
  ],
  "installments": {
    "information": [],
    "amex_fixed_installments": false,
    "amex_rates": [
      {
        "quantity": 3,
        "rate": 3.25
      },
      {
        "quantity": 6,
        "rate": 6.25
      },
      {
        "quantity": 9,
        "rate": 8.25
      },
      {
        "quantity": 12,
        "rate": 10.25
      },
      {
        "quantity": 15,
        "rate": 13.25
      },
      {
        "quantity": 18,
        "rate": 15.25
      },
      {
        "quantity": 21,
        "rate": 17.25
      },
      {
        "quantity": 24,
        "rate": 19.25
      }
    ]
  },
  "token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4YTRjMzE1MGIyOGE5NTg0MzA1YTJhYSIsImFjY291bnRfaWQiOiI2OGE0YzMxNTBiMjhhOTU4NDMwNWEyYTYiLCJzY29wZXMiO........................"
}