Update Fideval Contract
POST /recurrent-advances/fideval/update-contract/:contract_id
Sección titulada «POST /recurrent-advances/fideval/update-contract/:contract_id»Actualiza un RecurrentAdvance con los datos devueltos por Fideval tras la creación o firma del contrato: URL de firma digital, estado y metadata adicional.
Endpoint
Sección titulada «Endpoint»POST /api/v1/recurrent-advances/fideval/update-contract/{contract_id}/contract_id(path): número de contrato generado por Fideval. Debe coincidir conRecurrentAdvance.contract_created_number.
Authentication
Sección titulada «Authentication»api-key: YOUR_API_KEYContent-Type: application/jsonEl header api-key debe corresponder a un ExternalProvider.api_key válido. Si falta o es inválido → 401 Unauthorized.
Request Body
Sección titulada «Request Body»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
signing_url | string | ✓ | URL de firma digital devuelta por Fideval (UrlFirmaContrato). Máx 2000 caracteres. |
status | string | ✓ | Estado del contrato. Valores permitidos: COMPLETED, REJECTED, PENDING_TO_SIGN. |
metadata | object | ✗ | Datos adicionales. Se mergea con la metadata existente del RecurrentAdvance. |
Mapeo de status
Sección titulada «Mapeo de status»El valor recibido se mapea al RecurrentAdvanceStatus interno:
| Input | Mapea a |
|---|---|
COMPLETED | COMPLETED |
REJECTED | REJECTED |
PENDING_TO_SIGN | PENDING |
Ejemplo de solicitud
Sección titulada «Ejemplo de solicitud»# Productioncurl -X POST \ -H "api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "signing_url": "https://fideval.example.com/firma/abc123", "status": "PENDING_TO_SIGN", "metadata": { "source": "fideval-webhook" } }' \ "https://api.erolapp.com/api/v1/recurrent-advances/fideval/update-contract/FID-2026-00123/"
# Stagingcurl -X POST \ -H "api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "signing_url": "https://fideval.example.com/firma/abc123", "status": "PENDING_TO_SIGN", "metadata": { "source": "fideval-webhook" } }' \ "https://be-staging.erolapp.com/api/v1/recurrent-advances/fideval/update-contract/FID-2026-00123/"Response
Sección titulada «Response»Código de estado: 200 OK
{ "success": true, "recurrent_advance_uuid": "f8d1c2a4-1234-5678-9abc-def012345678", "contract_created_number": "FID-2026-00123", "status": "PENDING", "contract_signing_url": "https://fideval.example.com/firma/abc123"}Efectos secundarios
Sección titulada «Efectos secundarios»Sobre el RecurrentAdvance localizado por contract_created_number:
-
contract_signing_urlse sobrescribe consigning_url. -
statusse setea según el mapeo. -
metadatase mergea (los keys recibidos pisan a los existentes) y se agrega una traza bajo el keyfideval_contract_update:{"fideval_contract_update": {"received_status": "PENDING_TO_SIGN","mapped_status": "PENDING","updated_at": "2026-05-15T13:24:00.123456+00:00"}} -
updated_atse actualiza automáticamente.
Casos de uso
Sección titulada «Casos de uso»- Webhook de Fideval tras creación del contrato con la
UrlFirmaContratolista para que el usuario firme. - Notificación de cambio de estado del contrato (firmado, rechazado).
- Actualización de metadata adicional sin afectar los campos existentes.
Notas importantes
Sección titulada «Notas importantes»- El lookup es por
contract_created_numberexacto (string). Asegurarse de enviar el mismo formato que se generó al crear el contrato. - El endpoint es idempotente respecto a
signing_urlystatus: reintentar con el mismo body produce el mismo resultado final (la trazaupdated_atsí se renueva). - La metadata se mergea, no se reemplaza — los keys históricos se preservan salvo colisión.
Error Responses
Sección titulada «Error Responses»400 Bad Request — Body inválido.
{ "error": "signing_url is required" }{ "error": "Invalid status", "allowed": ["COMPLETED", "REJECTED", "PENDING_TO_SIGN"] }{ "error": "metadata must be an object" }401 Unauthorized — Header api-key ausente o inválido.
{ "error": "Invalid or missing API key" }404 Not Found — No existe un RecurrentAdvance con ese contract_created_number.
{ "error": "No recurrent advance found for contract FID-2026-00123" }409 Conflict — Más de un RecurrentAdvance comparte ese contract_created_number.
{ "error": "Multiple recurrent advances share contract FID-2026-00123" }