Firmar un albarán
Registra una firma manuscrita en un albarán (normalmente capturada del destinatario en la entrega). La imagen de la firma debe ser un **PNG** codificado en base64 (≤2 MB) — JPEG/SVG se rechazan con 422 `invalid_param_format` (decisión D17, solo PNG en v1). Si tiene éxito, se actualizan `signed_at`/`signed_by`; la firma registra los datos de la firma pero no cambia el `status` del albarán (sigue en `delivered`). El registro de auditoría de la firma conserva el PII del destinatario hasheado durante 5 años para cumplir las obligaciones de retención de la LSSI-CE española; usa `POST /v1/delivery_notes/signature-audits/{auditId}/forget` para atender una solicitud de supresión del Art. 17 del RGPD. Admite `Idempotency-Key` para reintentos seguros.
En: header
Parámetros de ruta
Parámetros de cabecera
Clave única generada por el cliente para garantizar la idempotencia en los reintentos. Te permite reenviar de forma segura la misma petición: la primera respuesta se cachea y se devuelve sin volver a ejecutar la mutación. Es una cadena opaca para el servidor; cualquier valor único de hasta 64 caracteres es válido (UUID v7, UUID v4, ULID, nanoid, etc.). Se recomienda UUID v7 por coherencia con los identificadores de la API. La misma clave reutilizada con un body distinto devuelve 409 idempotency_key_reused.
1 <= length <= 64Cuerpo de la petición
application/json
Definiciones de TypeScript
Usa el tipo request body en TypeScript.
Cuerpo de la respuesta
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"data": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a06",
"object": "delivery_note",
"number": "A-2026-00031",
"series": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0e",
"code": "F-2026"
},
"client": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01",
"name": "Acme Corporation"
},
"status": "signed",
"issued_on": "2026-01-19",
"delivery_date": "2026-01-21",
"signed_at": "2026-01-21T14:50:00Z",
"signed_by": "María García López",
"signature_image_url": "https://files.factuarea.com/signatures/01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a06.png",
"vehicle_plate": "5678JKL",
"driver": {
"name": "Pedro Sánchez Ruiz",
"tax_id": "12345678Z"
},
"tracking": {
"number": "TRK-2026-0099",
"carrier": "SEUR"
},
"received_by": {
"name": "María García López",
"tax_id": "87654321X"
},
"billing_emails": [
"administracion@cliente.com"
],
"subtotal": 800,
"taxes_total": 168,
"total": 968,
"currency": "EUR",
"notes": "Entregado en almacén central.",
"external_id": "ERP-ALB-2026-0031",
"lines": [
{
"object": "delivery_note_line",
"description": "Cajas de material A4 (500u)",
"product": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
"name": "Consultoría hora estándar"
},
"quantity": 2,
"unit_price": 400,
"tax_rate": 21,
"retention_rate": 0,
"surcharge_rate": 0,
"discount_percent": 0,
"subtotal": 800,
"taxes": 168,
"total": 968
}
],
"metadata": {
"erp_code": "IVA-GEN",
"ledger_account": "477000"
},
"tags": [
"logistica",
"almacen-central"
],
"custom_fields": [
{
"field": "muelle_carga",
"value": "Muelle 3"
}
],
"converted_to_id": null,
"created_at": "2026-01-19T08:00:00Z",
"updated_at": "2026-01-21T14:50:00Z"
}
}{
"error": {
"type": "authentication_error",
"code": "missing_api_key",
"message": "No se ha proporcionado una API key válida en el header Authorization.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#missing_api_key",
"request_id": "req_01HKQS5N8VR7QXJ9K3T6BWPMZA"
}
}{
"error": {
"type": "authorization_error",
"code": "insufficient_scope",
"message": "Esta API key no tiene el scope requerido para esta operación.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#insufficient_scope",
"request_id": "req_01HKQS5NBC3P8M1KX4V7SLNHQD"
}
}{
"error": {
"type": "not_found_error",
"code": "resource_not_found",
"message": "El recurso solicitado no existe o pertenece a otra empresa.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#resource_not_found",
"request_id": "req_01HKQS5NEQ6X1R4N9B0C5DWTPG"
}
}{
"error": {
"type": "idempotency_error",
"code": "idempotency_key_reused",
"message": "La cabecera `Idempotency-Key` ya se usó con un body distinto. Usa una clave nueva o reenvía exactamente el mismo body.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#idempotency_key_reused",
"request_id": "req_01HKQS5NHT9A4U7R2E3F8GZWTJ"
}
}{
"error": {
"type": "invalid_request_error",
"code": "parameter_invalid",
"message": "El campo `name` es obligatorio y no puede estar vacío.",
"param": "name",
"doc_url": "https://docs.factuarea.com/guides/errors#parameter_invalid",
"request_id": "req_01HKQS5NGS8Z3T6Q1D2E7FYVSI"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Has excedido el rate limit de 60 peticiones por minuto. Reintenta tras 30 segundos.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#rate_limit_exceeded",
"request_id": "req_01HKQS5NKW1C6W9T4G5H0JBZVL"
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "Ha ocurrido un error inesperado. Si persiste, contacta con soporte adjuntando el request_id.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#internal_error",
"request_id": "req_01HKQS5NLX2D7X0U5H6J1KCAWM"
}
}Obtener un albarán
Obtiene un albarán por su `uuid`.
Olvidar la PII de la firma del albarán
RGPD Art. 17 (derecho de supresión) — elimina los datos personales (nombre/DNI del receptor) de una entrada del registro de auditoría de firma conservando el rastro de auditoría sin PII requerido para el cumplimiento de la LSSI-CE. El `{auditId}` es la clave primaria numérica del registro de auditoría de firma. Requiere el scope `delivery_notes:gdpr_forget`.