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.
IMPORTANTTo 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-methodsPOST https://sandbox.ecartpay.com/api/customers/{customerId}/payment-methods
Headers
Authorization: token
Path Parameters
customerId: The id associated to the customer.
Request Payload
| Field | Type | Required | Description |
|---|---|---|---|
number | string | Yes | The 18-digit CLABE standard interbank number |
name | string | Yes | The beneficiary/account holder name |
method | string | Yes | Must be 'clabe' |
validation.rfc | string | Yes | The tax ID (RFC) of the account holder |
alias | string | No | A 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
| Rule | Description |
|---|---|
| CLABE Format | Must be exactly 18 numeric digits |
| Bank Code | First 3 digits must identify a participating bank |
| Duplicate Check | Same CLABE + account combinations are rejected |
| Limit | Maximum 5 payment methods per account |
| OTP Required | When 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-methodsGET https://sandbox.ecartpay.com/api/customers/{customerId}/payment-methods
Headers
Authorization: token
Path Parameters
customerId: The id associated to the customer.
Response Key Features
| Field | Description |
|---|---|
verified | true when CEP CLABE validation has passed (RFC match confirmed) |
direct_debit_enabled | true when KYC verification has passed (Level 2 only) |
validation.status | Current validation state: pending, approved, or rejected |
validation.rfc | Stored RFC used for CEP comparison |
validation.rejection_reason | Reason if validation rejected (e.g., rfc_mismatch) |
bank | The 3-digit bank code extracted from first 3 digits of CLABE |
bank_name | Human-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/validatePATCH https://sandbox.ecartpay.com/api/payment-methods/validate
Headers
Authorization: token
Request Payload
| Field | Type | Required | Description |
|---|---|---|---|
payment_method_id | string | Yes | The payment method ID to validate |
rfc | string | Yes | RFC 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"
}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 customerpaymentMethodId: 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:
| Code | Banking Institution | Short Name |
|---|---|---|
| 002 | Banco Nacional de México, S.A. | Banamex |
| 012 | BBVA México, S.A. | BBVA México |
| 014 | Banco Santander México, S.A. | Santander |
| 019 | Banco Nacional del Ejército, Fuerza Aérea y Armada | Banjercito |
| 021 | HSBC (México), S.A. | HSBC |
| 030 | Banco del Bajío, S.A. | BanBajío |
| 036 | Banco Inbursa, S.A. | Inbursa |
| 042 | Banca Mifel, S.A. | Mifel |
| 044 | Scotiabank Inverlat, S.A | Scotiabank |
| 058 | Banco Regional de Monterrey, S.A | Banregio |
| 059 | Banco Invex, S.A. | Invex |
| 062 | Banca Afirme, S.A. | Afirme |
| 072 | Banco Mercantil del Norte, S.A. | Banorte |
| 106 | Bank of America (México), S.A. | Bank of America |
| 113 | Banco Ve por Más, S.A. | Ve por Más |
| 127 | Banco Azteca S.A. | Azteca |
| 130 | Compartamos Banco, S.A. | Compartamos |
| 132 | Banco Multiva, S.A. | Multiva |
| 133 | Banco Actinver, S.A. | Actinver |
| 136 | Interbanco, S.A. | Interbanco |
| 137 | Bancoppel, S.A. | Bancoppel |
| 145 | Banco BASE, S.A. | BASE |
| 147 | Bankaool, S.A. | Bankaool |
| 151 | Fundación Dondé, S.A. | Dondé |
| 152 | Banco BANCREA, S.A. | BANCREA |
| 156 | Banco 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"
Updated 12 days ago