GEThttps://api.veriko.mx/v1/validations

List validations

Audience
public
Auth
API key
Permission
validations:read
How-to guide →

Returns the validation history of the authenticated account, paginated. The fourteen filters are additive: they stack rather than exclude one another. status accepts a single value or a comma-separated list; search looks through tracking key, numeric reference, sender, and receiver; bank takes the SPEI code; amount_min and amount_max bound the amount; and with_deleted, playground, batch_id, type, retry_state, and the date range narrow the rest. The shape of the pagination is covered in pagination. This list is the index, not the detail. A validation's full retry_state and ETag are at GET /v1/validations/{id}, and the CEP of a row with a valid verdict at GET /v1/validations/{id}/cep.

Parameters
ParameterInTypeRequiredDescription
amount_maxquerynumber (float)optional

Inclusive maximum amount. Compared against the validation's monto (normalized_data, falling back to request_data). Independent of amount_min.

e.g. 50000
amount_minquerynumber (float)optional

Inclusive minimum amount. Compared against the validation's monto (normalized_data, falling back to request_data). Independent of amount_max.

e.g. 1000.5
bankquerystringoptional

Filter by the bank's 3-digit SPEI code (receiver or sender). Digits only, max 5 characters; any other value is ignored.

e.g. 012
batch_idqueryintegeroptional

Filter to validations generated by a bulk import job (POST /v1/validations/imports/{id}/commit). Used by the post-commit detail view.

e.g. 42
fromquerystring (date)optional

Inclusive start date (YYYY-MM-DD). Truncated to 10 characters.

e.g. 2025-01-01
pagequeryintegeroptional

Page number. Minimum 1.

Default: 1

e.g. 1
per_pagequeryintegeroptional

Items per page (1–50). The controller clamps out-of-range values.

Default: 10

e.g. 10
playgroundquerystringoptional

Keeps only validations made from the playground. The only accepted value is 1: anything else — true included — answers 422 rather than being ignored, so it is clear the filter was not applied.

e.g. 1
retry_statequerystringoptional

Filter by automatic retry cycle status: pending = in progress; resolved = resolved via retry; exhausted = attempts exhausted; cancelled = manually cancelled. Values outside the allowlist return 422 invalid_filter.

e.g. pending
searchquerystringoptional

Case-insensitive free-text search over the validation's JSON content (request_data + normalized_data): tracking key, numeric reference, amount, account, and the resolved bank/beneficiary names (e.g. scotiabank finds "SCOTIABANK") when present in the normalized data. Truncated to 100 characters; % and _ are treated as literals (not wildcards).

e.g. scotiabank
statusquerystringoptional

Filter by granular status. Accepts a single value or a comma-separated list (CSV), e.g. not_found,cep_unavailable,invalid,failed,error for the "Not confirmed" segment. Each token must belong to the allowlist: queued, processing, valid, not_found, cep_unavailable, invalid, failed, error; tokens outside the allowlist are ignored. The filter is honored literally in both cases (status = ? for a single value, status IN (...) for CSV), so the "In progress" (processing) and "Queued" (queued) segments stay distinct. For the combined pre-terminal set, send status=queued,processing.

e.g. valid
toquerystring (date)optional

Inclusive end date (YYYY-MM-DD). Truncated to 10 characters.

e.g. 2025-03-31
typequerystringoptional

Filter by validation type (direct or ocr).

e.g. direct
with_deletedquerystringoptional

Whether to include deleted validations. 0 keeps only the live ones — the default — and 1 includes the deleted ones too. Deleted validations keep their result: they are what makes an already-exported history reconcile.

e.g. 0
Request
curl -X GET 'https://api.veriko.mx/v1/validations' \
  -H 'Authorization: Bearer veriko_••••'

Python example — coming soon.

JavaScript example — coming soon.

PHP example — coming soon.

Response 200ValidationListItem — Paginated list of validations with pagination metadata.
FieldTypeDescription
idstring (uuid)

Unique identifier of the validation (UUID v4).

e.g. 3fa85f64-5717-4562-b3fc-2c963f66afa6
typestring

JSON:API resource type. Always validation.

e.g. validation
validation_typestring

Validation type: direct for text parameters, ocr for receipt image.

e.g. direct
statusstring

Result status. See Validation.attributes.status for the full description of each value. queued — waiting; processing — under way; valid — the receipt exists and matches; not_found — Banxico cannot find it; cep_unavailable — the service could not deliver it; invalid — the data does not match; failed — the attempt could not be completed; error — the system failed while processing it.

e.g. valid
fechastring (date)

Transfer date (YYYY-MM-DD).

e.g. 2025-03-15
montonumber (double)

Transfer amount in Mexican pesos (MXN).

e.g. 15000.5
clave_rastreostring

Key the bank identifies the transfer with before the payment system.

e.g. MXBA20250315001234
emisorstring

Sending bank of the transfer.

e.g. BANCO NACIONAL DE MEXICO
receptorstring

Receiving bank of the transfer.

e.g. BBVA MEXICO
playgroundboolean

Whether the validation was executed in sandbox mode.

e.g. false
created_atstring (date-time)

ISO 8601 timestamp in UTC with explicit Z suffix. Example: "2026-05-01T05:14:38Z". Every datetime field uses this shape. The descriptor at meta.datetime makes the contract runtime-assertable.

e.g. 2026-05-01T05:14:38Z
completed_atTimestampUTC | null

Timestamp when the validation completed. null while status is queued or processing.

deleted_atTimestampUTC | null

Soft-delete timestamp. null if the validation has not been deleted.

is_deletedboolean

true if and only if deleted_at is set; convenience field for UI filtering.

e.g. false
retry_stateobject

Compact retry cycle state. Policy fields (max_retries, interval_seconds, outcomes) are always null in this view; use GET /v1/validations/{id} for the full state.

enabledboolean

Whether the retry cycle is active for this validation.

e.g. true
max_retriesinteger | nullnullable

Always null in the compact shape. See RetryStateFull for the value.

e.g. null
interval_secondsinteger | nullnullable

Always null in the compact shape. See RetryStateFull for the value.

e.g. null
outcomesarray | nullnullable

Always null in the compact shape. See RetryStateFull for the value.

e.g. null
attempts_completedinteger

Number of retries completed so far.

e.g. 2
next_attempt_atTimestampUTC | null

Timestamp of the next scheduled retry. null if the cycle is in a terminal state or if no retries are active.

resolved_atTimestampUTC | null

Timestamp when a retry resolved the validation to valid. null if the cycle has not ended by resolution.

exhausted_atTimestampUTC | null

Timestamp when retries were exhausted without resolution. null if the cycle has not ended by exhaustion.

cancelled_atTimestampUTC | null

Timestamp when the cycle was explicitly cancelled. null if not cancelled.

terminal_statestring | nullnullable

Terminal state of the cycle: pending — active, no final result yet; resolved — a retry obtained valid; exhausted — all attempts used; cancelled — cancelled by the user. null if the validation has no retry cycle.

e.g. pending
Response status codesGET /v1/validations
StatusClassDescriptionBody
2002xxPaginated list of validations with pagination metadata.No body
4014xxAuthentication is required or the provided credentials are invalid.ErrorResponse
4224xxInvalid value for retry_state (code invalid_filter).ErrorResponse
Errors from GET /v1/validations
StatusCodeExample
401unauthorized

Invalid or missing authentication credentials.

Envelope
meta.request_id
c4d5e6f7a8b9