What is the CEP?
The Electronic Payment Receipt (CEP) is a document issued by the Bank of Mexico (Banxico) that vouches for any transaction going through the Mexican Interbank Electronic Payment System (SPEI).
This receipt contains digital signatures and transaction identifiers within the banking system, so this file can be trusted to determine the veracity of any SPEI transfer.
What is Banxico?
"Banxico" is the official acronym for the Bank of Mexico, which is the country's central bank.
It is the institution that regulates Mexico's payment and transfer infrastructure, in charge of designing, operating, and supervising the country's financial systems. Among other things, it is responsible for:
- Managing transfers: Of the SPEI type and other types within the national banking system.
- Issuing money: It controls the production and circulation of banknotes and coins.
Parts of the CEP
In the document we can find a lot of useful information:
Transaction information:
- Operation and settlement dates: They describe the date and time when the transaction went through the SPEI system, as well as the date and time when the receiving bank was notified.
- Payment concept: Free text that the originator of the transaction enters when creating it.
- Amount+VAT: Transaction amount with cents, as well as its calculated tax (if any).
- Reference/Tracking key: Unique identifiers of a SPEI transfer.
Originator and Beneficiary information:
- Originator
- Payment-issuing institution: Issuing/requesting bank of the transaction before the SPEI system.
- Account holder: Name of the representative of the ordering bank account of the transaction.
- RFC/CURP: RFC or CURP of the representative of the ordering bank account of the transaction.
- CLABE, Debit card, Mobile number: Account number (in any variant) of the ordering bank account of the transaction.
- Beneficiary
- Payment-receiving institution: Receiving/beneficiary bank of the transaction before the SPEI system.
- Account holder: Name of the representative of the beneficiary bank account of the transaction.
- RFC/CURP: RFC or CURP of the representative of the beneficiary bank account of the transaction.
- CLABE, Debit card, Mobile number: Account number (in any variant) of the beneficiary bank account of the transaction
- Originator
Authorization and authenticity signatures:
- Serial Number of the Security Certificate of the payment-receiving institution:
- Original String (payment information):
- Digital Seal (signature provided by the payment-receiving institution):
Validation verdict
Querying the CEP of a transfer produces one of these outcomes, exposed in the validation's status field:
| verdict | meaning |
|---|---|
valid | Banxico returned a CEP matching the submitted data |
not_found | Banxico holds no CEP with that data. This may be final or temporary: a CEP takes time to publish |
cep_unavailable | Banxico could not answer on this attempt. It says nothing about the transfer |
invalid | The submitted data does not form a valid query — a malformed CLABE, for instance |
error | Failure during processing; the reason travels in error_code |
The distinction between not_found and cep_unavailable is the one that matters when integrating: the first is an answer from Banxico about the transfer, the second is the absence of an answer. Conflating them leads to treating as non-existent a transfer that merely could not be queried.
The three outcomes without a firm verdict — not_found, cep_unavailable and error — are the ones the retry policy accepts.
When a CEP does not exist yet
A transfer executed moments ago may have no published CEP for the first few minutes. A not_found immediately after the operation does not amount to a non-existent transfer: it amounts to a receipt that is not available yet.