Customer CLABE Management
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"
}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 3 months ago