5 dígitos cada uno). Para evitar que tengas que mantener esa tabla, los endpoints terminados en _auto infieren ambos valores automáticamente.
Reglas
Receptor desde la cuenta
Si la
cuenta es CLABE de 18 dígitos, los 3 primeros dígitos identifican el banco con precisión 100% (catálogo clabe.BANKS).Emisor desde la clave de rastreo
Algunos prefijos de
clave_rastreo están mapeados a CLABE → código Banxico (EMISOR_PREFIX_TO_CLABE). Si hay match, lo usamos directamente.Fallback: lista de candidatos
Si no podemos deducir el emisor por prefijo, probamos contra una lista corta de bancos comunes (
CANDIDATE_EMISOR_CLABES) y devolvemos el primero que responda con un CEP válido.Cuándo usar cada modo
| Caso | Endpoint recomendado |
|---|---|
| Tienes la CLABE del receptor (lo más común) | /v1/cep/xml_auto o /v1/cep/pdf_auto |
| Tienes tarjeta (no CLABE) | _auto igual; intentamos por candidatos |
| Conoces emisor + receptor (por integración previa) | Versión sin _auto (más rápida, no hace reintentos) |
| Quieres PDF + XML en un solo request | /v1/cep/zip_auto |
Headers de trazabilidad
Las respuestas exitosas de_auto incluyen:
| Header | Significado |
|---|---|
X-Inferred-Emisor | Código Banxico que dedujimos como emisor |
X-Inferred-Receptor | Código Banxico que dedujimos como receptor |
X-Attempts | Cuántos candidatos probamos antes del hit (útil para debugging) |
X-Date-Used | Fecha exacta usada en la consulta a Banxico |
Tabla de prefijos comunes
El catálogo completo se mantiene en el backend Python; cualquier banco con prefijo CLABE estándar es soportado.