https://api.veriko.mx/v1/beneficiaries/{id}Actualizar un beneficiario
Guía de uso →Actualiza un beneficiario ya registrado. El cuerpo admite la envoltura JSON:API o un objeto plano, y lo que se envíe determina el alcance del cambio:
- Solo
label: Se guarda, sin tocar la cuenta. - Un
account_numbernuevo: vuelven a derivarseaccount_type,bank_codeybank_name. Si el nuevo número es un celular (phone), el cuerpo debe llevarbank_code. - Solo
bank_code: se aplica únicamente sobre un beneficiario de tipo celular. En una CLABE o una tarjeta el banco se deriva del número, así que el valor enviado se descarta sin error; si era el único campo, responde conno_valid_fields.
Un cuerpo sin ningún campo editable responde con un estado HTTP 422 (con no_valid_fields en el cuerpo).
Si el account_number nuevo ya está registrado para la misma cuenta de usuario, activo o archivado, responde con un estado HTTP 422 (con beneficiary_already_registered en el cuerpo) y el beneficiario no cambia.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id* | path | integer | obligatorio | ID numérico del beneficiario. p. ej.42 |
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
label | string (?–100) | opcional | Etiqueta opcional con la que la cuenta se identifica en la lista de beneficiarios. p. ej.Proveedor XYZ |
account_number | string (patrón) | opcional | Nuevo número de cuenta. Reemplaza el existente y re-deriva 012180004412345678 |
bank_code | string (patrón) | opcional | Código SPEI (4 o 5 dígitos) del banco del beneficiario. Para CLABE/card el campo se ignora. Para celular/DiMo puede enviarse aislado para reasignar el banco del receptor. p. ej.40021 |
curl -X PUT 'https://api.veriko.mx/v1/beneficiaries/{id}' \
-H 'Authorization: Bearer veriko_••••' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"attributes": {
"label": "Proveedor XYZ actualizado"
}
}
}'Ejemplo en Python — próximamente.
Ejemplo en JavaScript — próximamente.
Ejemplo en PHP — próximamente.
| Campo | Tipo | Descripción |
|---|---|---|
data | object | Payload principal de la respuesta. La forma varía según el endpoint (objeto, array, o envelope JSON:API con |
type* | string | Tipo de recurso JSON:API. Siempre beneficiary |
id* | string | Identificador numérico del beneficiario en el sistema. p. ej.42 |
attributes* | object | Datos canónicos del beneficiario: los de la cuenta y los del registro. |
account_number* | string | Número de cuenta almacenado: CLABE (18 dígitos), tarjeta (16 dígitos) o celular/DiMo (10 dígitos). Use 012180004412345678 |
account_type* | string | Tipo de cuenta: clabe |
bank_code* | string | Código SPEI (5 dígitos) del banco resuelto. Es la cadena vacía ( 40012 |
bank_name* | string | Nombre oficial del banco, resuelto a partir de su BBVA MEXICO |
label | string | nullanulable | Etiqueta descriptiva libre del usuario. Proveedor ABC |
status* | string | Estado del beneficiario. active |
created_at* | string (date-time) | Fecha y hora, en ISO 8601 UTC, de creación. p. ej.2026-01-15T10:00:00Z |
meta | object | Metadatos de la respuesta, incluyendo versión de la API, prefijo de ruta, identificador único de la petición y marca temporal del servidor en UTC. |
version | string | Versión de la API que procesó la petición. p. ej.1.47.0 |
api_version | string | Versión del prefijo de ruta de la API (ej. v1 |
request_id | string | Identificador único de la petición (hex). p. ej.a1b2c3d4e5f66f5e4d3c2b1a |
datetime | object | Descriptor compañero presente en el bloque {"timezone":"UTC","format":"ISO 8601"} |
timezone* | string | Siempre UTC |
format* | string | Siempre ISO 8601 |
links | object | Enlaces de paginación o relacionados, presentes solo cuando el endpoint devuelve una colección paginada. |
| Código | Clase | Descripción | Cuerpo |
|---|---|---|---|
| 200 | 2xx | Beneficiario actualizado. | UpdateBeneficiaryResponse |
| 400 | 4xx | El cuerpo de la petición está vacío o no es JSON válido. | ErrorResponse |
| 401 | 4xx | Se requiere autenticación o las credenciales son inválidas | ErrorResponse |
| 403 | 4xx | Permisos insuficientes | ErrorResponse |
| 404 | 4xx | El recurso no existe o no es visible para el cliente | Error |
| 413 | 4xx | El cuerpo de la petición supera el tamaño máximo admitido (body_too_large). | ErrorResponse |
| 422 | 4xx | El cuerpo no pasó la validación. Los códigos posibles son no_valid_fields, invalid_account_format, invalid_account_length, invalid_clabe_checksum, invalid_card_luhn, clabe_prefix_not_recognized, bank_code_required_for_phone, invalid_bank_code, max_length_exceeded, beneficiary_already_registered, account_number_invalid_type y label_invalid_type. Las dos últimas aparecen cuando account_number o label llegan con un tipo distinto de cadena de texto (por ejemplo, un número o un arreglo). Todo error de campo trae source.pointer. | ErrorResponse |
| Código | Clave | Ejemplo |
|---|---|---|
| 400 | body_empty | El cuerpo de la petición está vacío. Envelope
|
| 400 | invalid_json | El cuerpo no es JSON válido. Envelope
|
| 401 | unauthorized | Credenciales de autenticación ausentes o inválidas. Envelope
|
| 403 | permission_denied | No tienes permiso para acceder a este recurso. Envelope
|
| 413 | body_too_large | El cuerpo de la petición es demasiado grande. Envelope
|
| 422 | label_invalid_type | El campo label debe ser una cadena de texto. Envelope
|
| 422 | no_valid_fields | El cuerpo no trae ningún campo editable. Envelope
|