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 →

Allows a preview row to be corrected before the persistence of an import job is confirmed. Accepts a JSON:API envelope or a flat object. Every attribute is optional; only those present are overwritten.

Editable fields:

  • parsed_account
  • parsed_label
  • parsed_account_type
  • parsed_bank_code
  • parsed_bank_name

After persisting the correction the server re-processes the row (it re-derives the bank from the new CLABE prefix / BIN) so the import counters and the preview's Bank column stay in sync without waiting for the commit.

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. It is re-normalized on re-processing.

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

Corrected row label. If it starts with =, +, - or @, it is stored with a leading apostrophe so a spreadsheet does not read it as a formula.

e.g. Mamá
parsed_account_typestring (enum)optional

Corrected account type. clabe: CLABE (18 digits); card: card (16 digits); phone: phone/DiMo (10 digits).

e.g. clabe
parsed_bank_codestring (pattern)optional

Corrected SPEI code (5 digits). Useful for phone rows that need bank reassignment. For CLABE/card it is overridden on re-derivation.

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

Corrected bank name. May be overridden 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

Position of the row within the original file, starting at 0. It allows locating 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 when no account could be extracted.

e.g. 012180004412345678
parsed_account_typestring | nullnullable

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

e.g. clabe
parsed_bank_codestring | nullnullable

5-digit SPEI code of the resolved bank, derived from parsed_account. null when it could not be resolved.

e.g. 40012
parsed_bank_namestring | nullnullable

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

e.g. BBVA MEXICO
parsed_labelstring | nullnullable

Label/alias extracted from the file or auto-assigned. null when 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. Runs of 13 to 19 digits that are not a CLABE (18 digits) are masked (•••• plus the last four), as is a 10-digit phone number when a label such as "account" or "phone" precedes it, 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. a1b2c3d4e5f66f5e4d3c2b1a
datetimeobject

Companion descriptor present in the meta block of every response (and in the meta of outgoing webhook bodies). 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 (the number does not match the expected format), 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
a5b6c7d8e9f00f9e8d7c6b5a
400invalid_json

The body is not valid JSON.

Envelope
meta.request_id
b6c7d8e9f0a11a0f9e8d7c6b
401unauthorized

Invalid or missing authentication credentials.

Envelope
meta.request_id
c4d5e6f7a8b99b8a7f6e5d4c
403permission_denied

You do not have permission to access this resource.

Envelope
meta.request_id
d5e6f7a8b9c00c9b8a7f6e5d
413body_too_large

The request body is too large.

Envelope
meta.request_id
1a2b3c4d5e6ff6e5d4c3b2a1
422invalid_account_type

parsed_account_type must be clabe, card, or phone.

Envelope
meta.request_id
e3f4a5b6c7d88d7c6b5a4f3e
422job_not_editable

Job is not in preview_ready state.

Envelope
meta.request_id
d2e3f4a5b6c77c6b5a4f3e2d