Desarrolladores

Valida tus pagos con una sola petición.

Síncrono o asíncrono. Haz una sola llamada y recibe el veredicto al instante o con Webhooks

POST /v1/validate
curl -X POST https://api.veriko.mx/v1/validate \
  -H "Authorization: Bearer veriko_TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fecha": "2025-03-15",
    "monto": 15000.50,
    "clave_rastreo": "MXBA20250315001234",
    "cuenta_beneficiaria": "012180004412345678"
  }'
200 OK "status": "valid" Confirmado

Pruébalo

De la imagen al veredicto.

Un pago real. Extraemos los datos de la imagen y lo confirmamos en Banxico. Observa la respuesta que devuelve la API, campo por campo.

POST /v1/validate-ocr
curl -X POST https://api.veriko.mx/v1/validate-ocr \
  -H "Authorization: Bearer veriko_TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "image_url": "https://tu-sistema.com/comprobante.jpg" }'
Respuesta
200 OK "status": "valid" Confirmado
{
    "data": {
        "type": "validation",
        "id": "c3d4e5f6-a7b8-4012-8def-123456789012",
        "attributes": {
            "validation_type": "ocr",
            "is_playground": false,
            "status": "valid",
            "banxico_status": "valid",
            "processing_time_ms": 11700,
            "created_at": "2026-09-08T19:28:06Z",
            "completed_at": "2026-09-08T19:28:18Z",
            "request_data": {
                "image_url": "https://tu-sistema.com/comprobante.jpg"
            },
            "image_path": "ocr/2026/09/c3d4e5f6-a7b8-4012-8def-123456789012.jpg",
            "ocr_result": {
                "tipo_comprobante": "spei",
                "clave_rastreo": "MBAN01002609080051771699",
                "referencia_numerica": "0509260",
                "fecha": "2026-09-08",
                "hora": "13:10:00",
                "monto": 250.0,
                "banco_emisor": "BBVA",
                "banco_receptor": "Banorte",
                "nombre_ordenante": null,
                "nombre_beneficiario": "Jesus M.",
                "cuenta_beneficiaria": "•6546",
                "cuenta_beneficiaria_es_parcial": true,
                "cuenta_beneficiaria_is_masked": true,
                "cuenta_beneficiaria_visible_last": "6546",
                "concepto": "Pago de producto",
                "confianza": 0.9,
                "confianza_por_campo": {
                    "banco_emisor": 0.8,
                    "banco_receptor": 1,
                    "cuenta_beneficiaria": 0.8,
                    "monto": 1,
                    "clave_rastreo": 1,
                    "fecha": 1
                }
            },
            "ocr_confidence": 0.9,
            "normalized_data": {
                "tipo_comprobante": "spei",
                "clave_rastreo": "MBAN01002609080051771699",
                "referencia_numerica": "0509260",
                "fecha": "2026-09-08",
                "hora": "13:10:00",
                "monto": 250.0,
                "emisor_code": "40012",
                "emisor_name": "BBVA MEXICO",
                "receptor_code": "40072",
                "receptor_name": "BANORTE",
                "cuenta_beneficiaria": "072580012706676546",
                "cuenta_beneficiaria_type": "clabe",
                "nombre_beneficiario": "Jesus M.",
                "concepto": "Pago de producto",
                "confianza": 0.9
            },
            "banxico_result": {
                "operationDate": "2026-09-08",
                "processingTime": "13:10:57",
                "speiKey": "40072",
                "trackingKey": "MBAN01002609080051771699",
                "certificateNumber": "00001000000710905384",
                "senderBank": "BBVA MEXICO",
                "senderName": "JORGE A.",
                "senderAccountType": "40",
                "senderAccount": "012180••••••••4195",
                "senderRfc": "XAXX010101000",
                "receiverBank": "BANORTE",
                "beneficiaryName": "JESUS M.",
                "beneficiaryAccountType": "40",
                "beneficiaryAccount": "072580012706676546",
                "beneficiaryRfc": "XAXX010101000",
                "amount": 250.0,
                "iva": 0.0,
                "paymentConcept": "Pago de producto"
            },
            "retry_state": {
                "enabled": false,
                "max_retries": null,
                "interval_seconds": null,
                "outcomes": null,
                "attempts_completed": 0,
                "next_attempt_at": null,
                "resolved_at": null,
                "exhausted_at": null,
                "cancelled_at": null,
                "terminal_state": null
            }
        },
        "links": {
            "self": "/v1/validations/c3d4e5f6-a7b8-4012-8def-123456789012",
            "cep_xml": "/v1/validations/c3d4e5f6-a7b8-4012-8def-123456789012/cep?format=xml",
            "cep_pdf": "/v1/validations/c3d4e5f6-a7b8-4012-8def-123456789012/cep?format=pdf"
        }
    },
    "meta": {
        "version": "1.75.0",
        "api_version": "v1",
        "request_id": "e6f7a8b9c0d1",
        "datetime": {
            "timezone": "UTC",
            "format": "ISO 8601"
        }
    }
}

Documentación completa y precisa.

Todo lo que necesitas para integrar Veriko, con ejemplos y explicaciones.

Ver la documentación

Hecho para producción

Todo lo que esperas de una API.

Asíncrono y carga masiva

No esperes el proceso. Te notificamos cuando haya resultados. Además puedes validar pagos en masa.

Idempotencia

Usa idempotencia y reintenta sin miedo a duplicar datos.

Reintentos automáticos

Reintenta la validación si el pago no fue encontrado. Útil cuando hay retrasos en el sistema bancario.

Webhooks firmados

Cada veredicto llega a ti como un evento firmado con HMAC-SHA256.

Integración

SDK oficiales en Python y JavaScript.

Instala y valida en unas líneas.

Python

pip install veriko
from veriko import Veriko

client = Veriko()  # lee VERIKO_API_KEY del entorno

validation = client.validate_transfer(
    fecha="2025-03-15",
    monto=15000.50,
    clave_rastreo="MXBA20250315001234",
    cuenta_beneficiaria="012180004412345678",
)

print(validation.status)  # 'valid'

https://github.com/veriko-mx-labs/veriko-python

JavaScript

npm install @veriko-mx/sdk
import { Veriko } from '@veriko-mx/sdk';

const client = new Veriko(); // lee VERIKO_API_KEY del entorno

const validation = await client.validateTransfer({
  fecha: '2025-03-15',
  monto: 15000.5,
  claveRastreo: 'MXBA20250315001234',
  cuentaBeneficiaria: '012180004412345678',
});

console.log(validation.attributes.status); // 'valid'

https://github.com/veriko-mx-labs/veriko-js

Herramientas

Recursos para integradores.

Quickstart

Tu primera validación, en tres pasos.

Crea tu API key

Desde el panel, en la sección de API. Esta se envía en cada solicitud.

Llamada a la API

Manda el comprobante en imagen o PDF, o los datos de la transferencia.

Recibe el resultado

En la misma respuesta, o vía Webhook seguro.

Sigue por aquí

Comienza a validar tus pagos GRATIS.

Plan gratuito con validaciones. Paga cuando necesites más.

Precios

También: Seguridad

Compara antes de integrar.

Antes de decidir, revisa la Comparativa de APIs CEP de Banxico.

Construye con certeza.

Crea tu cuenta y haz tu primera validación hoy.