Quick start

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 shown in full when generated; afterwards you can see it again with Reveal, which asks for your account password.

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, cuenta_beneficiaria, 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"
  }'

Example in Python — coming soon.

Example in JavaScript — coming soon.

Example in PHP — coming soon.

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 bank list 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 the bank cannot be resolved from a saved beneficiary with that number or from the account directory.

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": "validation",
    "attributes": {
      "validation_type": "direct",
      "status": "valid",
      "request_data": {
        "fecha": "2025-03-15",
        "monto": 15000.50
      }
    },
    "links": {
      "cep_xml": "/v1/validations/3fa85f64-5717-4562-b3fc-2c963f66afa6/cep?format=xml",
      "cep_pdf": "/v1/validations/3fa85f64-5717-4562-b3fc-2c963f66afa6/cep?format=pdf"
    }
  },
  "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.attributes.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.
    returned: The transfer was settled and later returned.
    error: There was a non-recoverable failure.
  • data.links.cep_pdf and data.links.cep_xml: Paths to download the CEP receipt. They are only present when the validation returned a 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