Comprobante Electrónico de Pago (CEP)

¿Qué es el CEP?

El Comprobante electrónico de Pago (CEP) es un documento expedido por el Banco de México (Banxico) que avala cualquier transacción que pasa por el Sistema de Pagos Electrónicos Interbancarios (SPEI) mexicano.
Este comprobante contiene firmas digitales e identificadores de transacción en el sistema bancario, de modo que se puede confiar en este archivo para determinar la veracidad de cualquier transferencia SPEI.

La explicación sin detalles de integración está en la guía qué es el CEP de Banxico.

¿Qué es Banxico?

"Banxico" es el acrónimo oficial del Banco de México, que es el banco central del país.
Es la institución reguladora de la infraestructura de pagos y transferencias de México, encargada de diseñar, operar y supervisar los sistemas financieros del país. Se encarga entre otras cosas de:

  • Gestionar transferencias: Del tipo SPEI y otros tipos en el sistema bancario nacional.
  • Emitir el dinero: Controla la fabricación y circulación de los billetes y monedas.

Partes del CEP

En el documento podemos encontrar mucha información útil:


  • Información de la transacción:

    • Fechas de operación y de abono: Describen la fecha y hora en la que la transacción pasó por el sistema SPEI, así como la fecha y hora en la que el banco receptor fue notificado.
    • Concepto del pago: Texto libre que el ordenante de la transacción ingresa al crear la misma.
    • Monto+IVA: Monto con centavos de la transacción, así como su impuesto calculado (si tiene).
    • Referencia/Clave de rastreo: Identificadores únicos de una transferencia SPEI.

  • Información del Ordenante y Beneficiario:

    • Ordenante
      • Institución emisora del pago: Banco emisor/solicitador de la transacción ante el sistema SPEI.
      • Titular de la cuenta: Nombre del representante de la cuenta bancaria ordenante de la transacción.
      • RFC/CURP: RFC o CURP del representante de la cuenta bancaria ordenante de la transacción.
      • CLABE,Tarjeta de débito,Número de celular: Número de cuenta (en cualquier variante) de la cuenta bancaria ordenante de la transacción.
    • Beneficiario
      • Institución receptora del pago: Banco receptor/beneficiario de la transacción ante el sistema SPEI.
      • Titular de la cuenta: Nombre del representante de la cuenta bancaria beneficiaria de la transacción.
      • RFC/CURP: RFC o CURP del representante de la cuenta bancaria beneficiaria de la transacción.
      • CLABE,Tarjeta de débito,Número de celular: Número de cuenta (en cualquier variante) de la cuenta bancaria beneficiaria de la transacción

  • Firmas de autorización y autenticidad:

    • Número de Serie del Certificado de Seguridad de la institución receptora del pago:
    • Cadena Original (información del pago):
    • Sello Digital (firma provista por la institución receptora del pago):

Veredicto de una validación

Consultar el CEP de una transferencia produce uno de estos desenlaces, expuesto en el campo status de la validación:

veredictosignificado
validBanxico devolvió un CEP que coincide con los datos enviados. Es el veredicto del momento de la consulta: puede pasar a returned en una revisión posterior
not_foundBanxico no tiene un CEP con esos datos. Puede ser definitivo o temporal: un CEP tarda en publicarse
cep_unavailableBanxico identificó la operación pero no entregó el comprobante. La transferencia existe y el CEP puede publicarse más tarde
returnedEl pago se liquidó y la institución beneficiaria lo devolvió después, antes de la consulta o en una revisión posterior. El CEP, si existe, se sigue entregando
invalidBanxico respondió de una forma que el servicio no reconoce. Es un problema de lectura de esa respuesta, no de los datos enviados
failedLa validación se detuvo por un rechazo de los datos enviados, por ejemplo una cuenta que no puede resolverse. El motivo viaja en error_code
errorFallo del servicio o de Banxico durante el procesamiento, como una consulta que Banxico no respondió; el motivo viaja en error_code

Un valid no acredita que el dinero siga en la cuenta del beneficiario: el CEP prueba que la operación se liquidó, y la institución receptora puede devolverla horas o días después. Por eso el estado oficial del pago queda en banxico_result._payment_status, y una revisión posterior pasa el valid a returned cuando Banxico lo reporta devuelto o en_proceso_devolucion: conserva el CEP y emite el webhook validation.returned. La revisión se pide con POST /v1/validations/{id}/recheck —sin cuota, una consulta cada 10 minutos por validación— o la hace el servicio solo durante las primeras 72 horas. Un _payment_status ausente significa que no se pudo saber, nunca que el pago esté liquidado.

La distinción entre not_found y cep_unavailable es la que importa al integrar: con el primero Banxico no tiene la operación con esos datos; con el segundo la identificó pero no entregó el comprobante, de modo que la transferencia existe. Que Banxico no responda a la consulta no es cep_unavailable: termina en error. Confundirlos lleva a dar por inexistente una transferencia que sí se realizó.

Los tres desenlaces sin veredicto firme —not_found, cep_unavailable y error— son los que admite la política de reintentos.

Cuándo un CEP no existe todavía

Una transferencia recién ejecutada puede no tener CEP publicado durante los primeros minutos. Un not_found inmediato tras la operación no equivale a una transferencia inexistente: equivale a un comprobante que aún no está disponible.