This guide takes you from zero to obtaining the Electronic Payment Receipt (CEP) of a SPEI transfer at Banxico. It assumes you are already signed in to the console.

1. Get your API key

From the Veriko console, go to the API section and open the API Key panel. Click Generate or Regenerate and copy your key. It is only shown once; if you lose it you will need to regenerate it.

Your key has this format:

veriko_<64 characters>

2. Make your first validation

POST /v1/validate validates a SPEI transfer and attempts to obtain the CEP from Banxico. The basic parameters are: fecha, monto, emisor, and at least one of clave_rastreo and referencia_numerica.

curl -X POST 'https://api.veriko.mx/v1/validate' \
  -H 'Authorization: Bearer veriko_••••' \
  -H 'Content-Type: application/json' \
  -d '{
    "fecha": "2025-03-15",
    "monto": 15000.50,
    "clave_rastreo": "MXBA20250315001234",
    "cuenta_beneficiaria": "012180004412345678",
    "emisor": "40012"
  }'

Ejemplo en Python — próximamente.

Ejemplo en JavaScript — próximamente.

Ejemplo en PHP — próximamente.

The emisor and receptor fields refer to the banks of the corresponding parties.
They are 'string' format and can be sent as a bank code or as a bank name (check the list of codes and banks or the v1/public/banks endpoint). Example: "emisor": "40012" or "emisor": "BBVA MEXICO".

NOTE: The receptor field is optional when cuenta_beneficiaria is a CLABE or Card. For phone numbers (10 digits) it is required if you do not already have a saved beneficiary with that phone number.

Full reference at: POST /v1/validate

3. Interpret the response

A successful response returns HTTP 200 with this format:

{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "type": "direct",
    "status": "valid",
    "fecha": "2025-03-15",
    "monto": 15000.50,
    "has_cep": true
  },
  "meta": {
    "version": "1.x.x",
    "api_version": "v1",
    "request_id": "...",
    "datetime": { "timezone": "UTC", "format": "ISO 8601" }
  }
}

The most important parameters:

  • data.id: The validation's ID. It is used to download the CEP, check retries, or use Idempotency.
  • data.status: The validation's verdict. It can be one of the following values:
    valid: The CEP exists and the data matches.
    not_found: The CEP was not found.
    cep_unavailable: The payment was identified but the CEP is not available right now.
    error: There was a non-recoverable failure.
  • has_cep: Indicates whether the validation returned a CEP receipt.

Full reference at: POST /v1/validate

4. Optional: Register beneficiaries

A beneficiary refers to a bank account (CLABE, Card, or Phone) into which you receive SPEI transfers. In Veriko, you can save each of those accounts:

  1. They help image validations (OCR) identify the cuenta_beneficiaria when it is masked or incomplete (common on some receipts).
  2. Useful if you manage sellers or different bank accounts.
  3. Reports and financial statistics for each one.

Check the Create beneficiary entry to register your first one and make Image validations (OCR) easier.

5. How to continue