PATCHhttps://api.veriko.mx/v1/beneficiaries/imports/{id}/rows/{row_id}

Edit a preview row

Audience
public
Auth
API key
Permission
beneficiaries:create
How-to guide →

Persists a user override on a preview row before confirming the import. Accepts JSON:API envelope or a flat object. All attributes are optional; only those present are overwritten. Five editable fields: parsed_account, parsed_label, parsed_account_type, parsed_bank_code, parsed_bank_name. After persisting the override the server re-processes the row (re-derives bank from the new CLABE prefix / BIN) so job counters and the preview's Bank column stay in sync without waiting for commit. Only valid when the job is in preview_ready state — other states return 422 job_not_editable.

Parameters
ParameterInTypeRequiredDescription
id*pathintegerrequired

Numeric ID of the import job.

e.g. 42
row_id*pathintegerrequired

Numeric row ID within the job.

e.g. 102
Parameters
ParameterTypeRequiredDescription
parsed_accountstring (pattern, ?–32)optional

User-corrected account number. Accepts up to 32 characters of digits, spaces, hyphens and non-breaking spaces (NBSP). The RowProcessor re-normalizes during re-processing.

e.g. 012180004412345678
parsed_labelstring (?–100)optional

Corrected label. Sanitized before storage (an anti-formula-injection escape is applied to the leading character when it is one of =+-@\t\r).

e.g. Mamá
parsed_account_typestring (enum)optional

Corrected account type. If the client sends a value outside the enum, the server responds 422 invalid_account_type. clabe — 18-digit CLABE; card — 16-digit card; phone — 10-digit phone.

e.g. clabe
parsed_bank_codestring (pattern)optional

Corrected Banxico SPEI code (4–5 digits). Useful for phone rows that need bank reassignment. For CLABE/card the RowProcessor overrides it on re-derivation.

e.g. 40012
parsed_bank_namestring (?–50)optional

Corrected bank name. May be overridden by the RowProcessor during re-derivation.

e.g. BBVA MEXICO
Request
curl -X PATCH 'https://api.veriko.mx/v1/beneficiaries/imports/{id}/rows/{row_id}' \
  -H 'Authorization: Bearer veriko_••••' \
  -H 'Content-Type: application/json' \
  -d '{
    "parsed_account": "0121-8000-4412-3456-78"
  }'

Python example — coming soon.

JavaScript example — coming soon.

PHP example — coming soon.

Response 200PatchBeneficiaryImportRowResponse — Row updated with the override applied and re-processed.
FieldTypeDescription
dataobject

Main response payload. Shape varies by endpoint (object, array, or JSON:API envelope with type, id, attributes).

typestring

JSON:API resource type (always beneficiary_import_row).

e.g. beneficiary_import_row
idstring

Numeric row ID expressed as a string (JSON:API format).

e.g. 123
attributesobject

Parsed row fields.

row_indexinteger

0-based position of the row in the original file. Allows the user to locate the row in the source document.

e.g. 5
statusstring

Classification bucket: valid — ready for commit; correctable — auto-corrected, confirmable; fatal — uncorrectable error, skipped; duplicate_account — account already registered (reactivated if archived); duplicate_alias — duplicate alias, persisted with suffix.

e.g. valid
parsed_accountstring | nullnullable

Normalized account number extracted from the file. The job owner can view and edit this value in the preview; null if no account could be extracted.

e.g. 012180004412345678
parsed_account_typestring | nullnullable

Detected account type. null if parsed_account is null. The types are clabe, card, and phone.

e.g. clabe
parsed_bank_codestring | nullnullable

5-digit Banxico code of the receiving bank derived from the parsed account. null if it could not be resolved.

e.g. 40012
parsed_bank_namestring | nullnullable

Resolved name of the receiving bank. null if it could not be resolved.

e.g. BBVA MEXICO
parsed_labelstring | nullnullable

Label/alias extracted from the file or auto-assigned. null if no label could be extracted and none was auto-assigned.

e.g. Proveedor ABC
error_codesarray

Stable error codes for the row (e.g. clabe_checksum_failed, alias_missing). Empty for valid rows.

e.g. []
corrections_appliedobject

Auto-corrections applied by the system to this row (e.g. { "alias_auto_assigned": "Proveedor 001" }). Empty if no corrections were made.

e.g. {}
user_overridesobject

Manual user overrides submitted via PATCH /v1/beneficiaries/imports/{id}/rows/{rowId}. Take precedence over parsed values during commit.

e.g. {}
raw_previewobject

Snippet of the original file for diagnostic purposes. Sequences of 6 or more consecutive digits are masked (••••) to prevent PAN exposure in debug payloads.

e.g. {}
created_beneficiary_idinteger | nullnullable

ID of the beneficiary record created after commit. null until the job completed and this row was persisted.

e.g. null
metaobject

Response metadata including API version, route prefix, unique request identifier, and the server timestamp in UTC.

versionstring

API version that processed the request.

e.g. 1.47.0
api_versionstring

API route prefix version (e.g. v1).

e.g. v1
request_idstring

Unique request identifier (hex).

e.g. a1b2c3d4e5f6
datetimeobject

Companion descriptor present in every response's meta block (and in outgoing webhook payloads). Lets clients assert the timezone contract without re-reading the spec.

e.g. {"timezone":"UTC","format":"ISO 8601"}
timezone*string

Always UTC — the canonical timezone for every datetime field in the body.

e.g. UTC
format*string

Always ISO 8601 — explicit Z suffix on every datetime.

e.g. ISO 8601
linksobject

Pagination or related links, present only when the endpoint returns a paginated collection.

Response status codesPATCH /v1/beneficiaries/imports/{id}/rows/{row_id}
StatusClassDescriptionBody
2002xxRow updated with the override applied and re-processed.PatchBeneficiaryImportRowResponse
4004xxThe request body is empty or is not valid JSON.ErrorResponse
4014xxAuthentication is required or the provided credentials are invalid.ErrorResponse
4034xxInsufficient permissions.ErrorResponse
4044xxThe resource does not exist or is not visible to the clientError
4134xxThe request body exceeds the maximum accepted size (body_too_large).ErrorResponse
4224xxValidation failed or job is not editable. Codes: invalid_account (pattern violation), invalid_account_type, invalid_bank_code, no_valid_fields, job_not_editable.ErrorResponse
Errors from PATCH /v1/beneficiaries/imports/{id}/rows/{row_id}
StatusCodeExample
400body_empty

The request body is empty.

Envelope
meta.request_id
a5b6c7d8e9f0
400invalid_json

The body is not valid JSON.

Envelope
meta.request_id
b6c7d8e9f0a1
401unauthorized

Invalid or missing authentication credentials.

Envelope
meta.request_id
c4d5e6f7a8b9
403forbidden

You do not have permission to access this resource.

Envelope
meta.request_id
d5e6f7a8b9c0
413body_too_large

The request body is too large.

Envelope
meta.request_id
1a2b3c4d5e6f
422invalid_account_type

parsed_account_type must be clabe, card, or phone.

Envelope
meta.request_id
e3f4a5b6c7d8
422job_not_editable

Job is not in preview_ready state.

Envelope
meta.request_id
d2e3f4a5b6c7