https://api.veriko.mx/v1/webhooks/{id}Actualizar un endpoint webhook
Guía de uso →Actualiza la URL, los eventos suscritos o el estado de un endpoint webhook ya registrado.
Solo cambia lo que viene en el cuerpo: Un campo ausente se queda como estaba, y un cuerpo sin ningún campo editable responde con un estado HTTP 422 (con no_valid_fields en el cuerpo).
Poner el estado en disabled detiene las entregas sin perder el historial; es lo que conviene mientras se arregla un receptor caído, en vez de borrar el endpoint y volver a crearlo.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id* | path | string (uuid) | obligatorio | Identificador único del endpoint webhook (UUID v4). p. ej.f47ac10b-58cc-4372-a567-0e02b2c3d479 |
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
url | string (uri) (?–2048) | opcional | Nueva URL receptora del webhook. Se rechaza si no resuelve a una dirección pública o si supera 2048 caracteres y, en producción, también si no usa HTTPS. p. ej.https://example.com/webhooks/entregas |
events | array<string> (elementos: 1–10) | opcional | Nuevos eventos a los que se suscribe el endpoint webhook. Sustituyen a la lista anterior. Entre 1 y 10. |
description | string | nullanulable (?–255) | opcional | Nueva etiqueta libre para distinguir el endpoint webhook de los demás. Alta de pagos en el ERP |
status | string (enumeración) | opcional | Nuevo estado del webhook. active |
curl -X PUT 'https://api.veriko.mx/v1/webhooks/{id}' \
-H 'Authorization: Bearer veriko_••••' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://webhook.example.com/platform",
"events": [
"validation.completed"
],
"status": "active"
}'Ejemplo en Python — próximamente.
Ejemplo en JavaScript — próximamente.
Ejemplo en PHP — próximamente.
| Campo | Tipo | Descripción |
|---|---|---|
type* | string | Tipo de recurso JSON:API. Siempre webhook_endpoint |
id* | string (uuid) | Identificador único del endpoint webhook (UUID v4). p. ej.a1b2c3d4-e5f6-7890-abcd-ef0123456789 |
attributes* | object | Datos del endpoint webhook (URL receptora, eventos suscritos, estado y secreto). |
url* | string (uri) | URL receptora del webhook. En producción se rechaza si no usa HTTPS, si resuelve a una dirección privada o si pasa de 2048 caracteres. p. ej.https://example.com/webhooks/entregas |
events* | array (elementos: 1–10, elementos únicos) | Eventos a los que se suscribe el endpoint webhook. Entre 1 y 10. |
description* | string | nullanulable | Etiqueta libre para distinguir el endpoint webhook de los demás. p. ej.Alta de pagos en el ERP |
status* | string | Estado actual del webhook — active |
consecutive_failures* | integer | Cantidad de fallos consecutivos. Se reinicia al primer éxito. p. ej.0 |
last_delivery_at* | TimestampUTC | null | Fecha y hora de la última entrega exitosa, en ISO 8601 UTC. |
secret | string | Clave compartida para verificar firmas. Solo presente en la respuesta de creación y de rotación del endpoint; se omite en cualquier otra respuesta. Se usa para validar las cabeceras a0b1c2d3e4f5061728394a5b6c7d8e9f00112233445566778899aabbccddeeff |
secret_hint | string | Últimos 4 caracteres del secret, con el prefijo ...4f2a |
created_at* | string (date-time) | Timestamp ISO 8601 en UTC con sufijo 2026-05-01T05:14:38Z |
updated_at* | string (date-time) | Timestamp ISO 8601 en UTC con sufijo 2026-05-01T05:14:38Z |
| Código | Clase | Descripción | Cuerpo |
|---|---|---|---|
| 200 | 2xx | Endpoint webhook actualizado. | WebhookEndpoint |
| 400 | 4xx | El cuerpo de la petición está vacío o no es JSON válido, o la URL nueva no resuelve a una dirección pública. | ErrorResponse |
| 401 | 4xx | Se requiere autenticación o las credenciales son inválidas | ErrorResponse |
| 403 | 4xx | Permisos insuficientes | ErrorResponse |
| 404 | 4xx | not_found: El endpoint no existe o no pertenece al usuario. | ErrorResponse |
| 413 | 4xx | El cuerpo de la petición supera el tamaño máximo admitido (body_too_large). | ErrorResponse |
| 422 | 4xx | Datos inválidos. Códigos posibles: webhook_url_invalid_type, webhook_url_empty, webhook_url_too_long, webhook_url_invalid_format, webhook_url_not_https, webhook_events_required, webhook_events_too_many, webhook_event_invalid, webhook_description_invalid_type, webhook_description_too_long, webhook_status_invalid, no_valid_fields. Una description de más de 255 caracteres responde webhook_description_too_long. Todo error de campo trae source.pointer. | ErrorResponse |
| 429 | 4xx | Límite de tasa excedido | 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
|
| 400 | url_dns_failed | No se pudo resolver el nombre de la dirección. Envelope
|
| 400 | url_ssrf_blocked | La URL indicada resuelve a una dirección no pública. 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
|
| 429 | rate_limit_exceeded | Límite de peticiones excedido. Inténtalo de nuevo en 45 segundos. Envelope
Cabeceras de respuesta
|