Duplicar una proforma
Crea una nova proforma en esborrany copiant línies, client i metadades d'una proforma existent.
A: header
Paràmetres de ruta
Paràmetres de capçalera
Clau única generada pel client per garantir la idempotència en els reintents. Et permet reenviar de manera segura la mateixa petició: la primera resposta es cacheja i es retorna sense tornar a executar la mutació. És una cadena opaca per al servidor; qualsevol valor únic de fins a 64 caràcters és vàlid (UUID v7, UUID v4, ULID, nanoid, etc.). Es recomana UUID v7 per coherència amb els identificadors de l'API. La mateixa clau reutilitzada amb un body diferent retorna 409 idempotency_key_reused.
1 <= length <= 64Cos de la resposta
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"data": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a05",
"object": "proforma",
"number": "PRO-2026-00007",
"series": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0e",
"code": "F-2026"
},
"client": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01",
"name": "Acme Corporation"
},
"status": "draft",
"issued_on": "2026-01-22",
"valid_until": "2026-02-21",
"validity_days": 30,
"reference": "REF-API-2026-001",
"converted_to_id": null,
"converted_invoice_number": "F-2025-003",
"subtotal": 1500,
"taxes_total": 315,
"total_vat": 315,
"total_retention": 0,
"total_surcharge": 0,
"total": 1815,
"shipping_cost": 15.5,
"total_with_shipping": 1830.5,
"currency": "EUR",
"payment_method": "bank_transfer",
"payment_terms_days": 30,
"delivery_terms": "Entrega en 5 dias habiles, portes incluidos",
"estimated_delivery_date": "2026-06-10",
"notes": "Proforma pendiente de validación.",
"terms_and_conditions": "Validez 30 dias. Proforma sin valor fiscal hasta su conversion en factura.",
"external_id": "ERP-PRO-2026-0007",
"lines": [
{
"object": "proforma_line",
"description": "Setup inicial",
"product": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
"name": "Consultoría hora estándar"
},
"quantity": 1,
"unit_price": 1500,
"tax_rate": 21,
"retention_rate": 0,
"surcharge_rate": 0,
"discount_percent": 0,
"subtotal": 1500,
"taxes": 315,
"total": 1815
}
],
"metadata": {
"erp_code": "IVA-GEN",
"ledger_account": "477000"
},
"tags": [
"exportacion",
"pendiente-validar"
],
"custom_fields": [
{
"field": "incoterm",
"value": "EXW"
}
],
"link_expires_at": "2026-07-01T09:53:23+02:00",
"link_is_active": true,
"created_at": "2026-01-22T09:10:00Z",
"updated_at": "2026-01-22T09:10: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": "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"
}
}Elimina una proforma
Elimina una proforma. Retorna 422 si la proforma s'ha convertit en factura.
Cercar una proforma per external ID
Cerca una única proforma pel seu `external_id` (enviat al body JSON), la clau d'integració que la mapeja a un registre en un sistema de tercers (ERP/CRM/e-commerce). Retorna la proforma coincident o 404 `proforma_not_found` si cap proforma fa servir aquest external_id dins de la teva empresa.