Customer CLABE Management

Overview of CLABE registration, validation endpoints and the Bank codes catalog. This subpage details the lifecycle of a customer bank account record, from initial creation and bank association to the final verification step required for active Direct Debits. Direct debits are tightly coupled with payment methods of type CLABE. The payment method stores the 18-digit CLABE, validation status, and KYC verification state.

⚠️

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


Create Customer CLABE Payment Method

Register a new 18-digit interbank CLABE for a specific customer as a payment method.

Endpoint

  • POST https://ecartpay.com/api/customers/{customerId}/payment-methods
  • POST https://sandbox.ecartpay.com/api/customers/{customerId}/payment-methods

Headers

  • Authorization: token

Path Parameters

  • customerId: The id associated to the customer.

Request Payload

FieldTypeRequiredDescription
numberstringYesThe 18-digit CLABE standard interbank number
namestringYesThe beneficiary/account holder name
methodstringYesMust be 'clabe'
validation.rfcstringYesThe tax ID (RFC) of the account holder
aliasstringNoA descriptive name for the account (e.g., "Personal Savings")

RFC Format Requirements

  • Persona física (individual): 4 letters + 6 digits + 3 alphanumeric = 13 characters
  • Persona moral (company): 3 letters + 6 digits + 3 alphanumeric = 12 characters
  • Pattern: /^[A-ZÑ&]{3,4}\d{6}[A-Z0-9]{3}$/

Validation Rules

RuleDescription
CLABE FormatMust be exactly 18 numeric digits
Bank CodeFirst 3 digits must identify a participating bank
Duplicate CheckSame CLABE + account combinations are rejected
LimitMaximum 5 payment methods per account
OTP RequiredWhen account already has payment methods

Examples

Request

curl --location 'https://sandbox.ecartpay.com/api/customers/6944a4946afaf625504595e3/payment-methods' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9...' \
--header 'Content-Type: application/json' \
--data '{
    "number": "012555555555555555",
    "name": "Juan Perez",
    "method": "clabe",
    "validation": {
        "rfc": "PERJ950714DL2"
    },
    "alias": "Personal Savings"
}'

Response

{
    "_id": "6944a5366afaf625504595ea",
    "account_id": "68a4c3150b28a9584305a2a6",
    "customer_id": "6944a4946afaf625504595e3",
    "number": "012555555555555555",
    "name": "Juan Perez",
    "method": "clabe",
    "bank": "012",
    "bank_name": "BBVA México",
    "alias": "Personal Savings",
    "verified": false,
    "direct_debit_enabled": false,
    "validation": {
        "rfc": "PERJ950714DL2",
        "status": "pending"
    },
    "created_at": "2026-03-20T10:00:00.000Z",
    "updated_at": "2026-03-20T10:00:00.000Z"
}



Retrieve Customer CLABE Payment Methods

Fetch all CLABE payment methods registered for a customer.

Endpoint

  • GET https://ecartpay.com/api/customers/{customerId}/payment-methods
  • GET https://sandbox.ecartpay.com/api/customers/{customerId}/payment-methods

Headers

  • Authorization: token

Path Parameters

  • customerId: The id associated to the customer.

Response Key Features

FieldDescription
verifiedtrue when CEP CLABE validation has passed (RFC match confirmed)
direct_debit_enabledtrue when KYC verification has passed (Level 2 only)
validation.statusCurrent validation state: pending, approved, or rejected
validation.rfcStored RFC used for CEP comparison
validation.rejection_reasonReason if validation rejected (e.g., rfc_mismatch)
bankThe 3-digit bank code extracted from first 3 digits of CLABE
bank_nameHuman-readable bank name

Examples

Request

curl --location 'https://sandbox.ecartpay.com/api/customers/6944a4946afaf625504595e3/payment-methods' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9...'

Response

[
    {
        "_id": "6944a5366afaf625504595ea",
        "account_id": "68a4c3150b28a9584305a2a6",
        "customer_id": "6944a4946afaf625504595e3",
        "number": "012555555555555555",
        "name": "Juan Perez",
        "method": "clabe",
        "bank": "012",
        "bank_name": "BBVA México",
        "alias": "Personal Savings",
        "verified": true,
        "direct_debit_enabled": true,
        "validation": {
            "rfc": "PERJ950714DL2",
            "status": "approved",
            "_id": "6944a5376afaf625504595eb"
        },
        "created_at": "2026-03-20T10:00:00.000Z",
        "updated_at": "2026-03-20T10:30:00.000Z"
    }
]



Trigger CLABE Validation

Manually trigger CLABE validation via STP/CEP. This initiates a micro-transfer to validate the CLABE and verify the RFC matches bank records.

Endpoint

  • PATCH https://ecartpay.com/api/payment-methods/validate
  • PATCH https://sandbox.ecartpay.com/api/payment-methods/validate

Headers

  • Authorization: token

Request Payload

FieldTypeRequiredDescription
payment_method_idstringYesThe payment method ID to validate
rfcstringYesRFC to validate against CEP response

Examples

Request

curl --location --request PATCH 'https://sandbox.ecartpay.com/api/payment-methods/validate' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9...' \
--header 'Content-Type: application/json' \
--data '{
    "payment_method_id": "6944a5366afaf625504595ea",
    "rfc": "PERJ950714DL2"
}'

Response

{
    "message": "Validation initiated",
    "validation_id": "6944a5376afaf625504595eb",
    "status": "pending"
}

12345

Step 1: Micro-transfer Initiation

STP initiates a micro-transfer to the provided CLABE to trigger the validation.




Delete Customer CLABE Payment Method

Remove a CLABE payment method from a customer.

Endpoint

  • DELETE https://ecartpay.com/api/customers/{customerId}/payment-methods/{paymentMethodId}
  • DELETE https://sandbox.ecartpay.com/api/customers/{customerId}/payment-methods/{paymentMethodId}

Headers

  • Authorization: token

Path Parameters

  • customerId: The id associated to the customer
  • paymentMethodId: The id of the payment method to delete

Note: Before deletion, any withdrawal references are migrated to prevent orphaned records.




Bank Codes Catalog (Mexico)

When registering a CLABE or activating a Direct Debit, the CLABE must belong to a participating banking institution. The bank code is automatically extracted from the first 3 digits of the 18-digit CLABE. Below is a list of the supported banks for Direct Debit processing:

CodeBanking InstitutionShort Name
002Banco Nacional de México, S.A.Banamex
012BBVA México, S.A.BBVA México
014Banco Santander México, S.A.Santander
019Banco Nacional del Ejército, Fuerza Aérea y ArmadaBanjercito
021HSBC (México), S.A.HSBC
030Banco del Bajío, S.A.BanBajío
036Banco Inbursa, S.A.Inbursa
042Banca Mifel, S.A.Mifel
044Scotiabank Inverlat, S.AScotiabank
058Banco Regional de Monterrey, S.ABanregio
059Banco Invex, S.A.Invex
062Banca Afirme, S.A.Afirme
072Banco Mercantil del Norte, S.A.Banorte
106Bank of America (México), S.A.Bank of America
113Banco Ve por Más, S.A.Ve por Más
127Banco Azteca S.A.Azteca
130Compartamos Banco, S.A.Compartamos
132Banco Multiva, S.A.Multiva
133Banco Actinver, S.A.Actinver
136Interbanco, S.A.Interbanco
137Bancoppel, S.A.Bancoppel
145Banco BASE, S.A.BASE
147Bankaool, S.A.Bankaool
151Fundación Dondé, S.A.Dondé
152Banco BANCREA, S.A.BANCREA
156Banco Sabadell S.A.Sabadell

Bank not found? If you need to process a CLABE from an institution that does not appear in this list, please contact our technical support team to verify the code's compatibility. CLABE from non-participating banks will be rejected with error: "The CLABE belongs to a bank (code XXX) not available for direct debit"