Listar todas las proformas
Lista tus facturas proforma con paginación por cursor.
En: header
Parámetros de consulta
Número de objetos a devolver. Entero entre 1 y 100. Por defecto 25.
251 <= value <= 100Cursor para paginación hacia delante. Usa el uuid del último objeto de la página anterior.
uuidCursor para paginación hacia atrás. Usa el uuid del primer objeto de la página actual.
uuidEstado de la proforma. Coincidencia exacta en status.
Estado de la proforma. Lista separada por comas. Coincide cualquiera de los valores.
Client ID (UUID v7). Coincidencia exacta con client_id.
uuidClient ID (UUID v7). Lista separada por comas. Coincide cualquiera de los valores.
Series ID (UUID v7). Coincidencia exacta con series_id.
uuidSeries ID (UUID v7). Lista separada por comas. Coincide cualquiera de los valores.
Fecha de creación (ISO 8601). Mayor o igual que el valor dado.
date-timeFecha de creación (ISO 8601). Menor o igual que el valor dado.
date-timeFecha de creación (ISO 8601). Estrictamente mayor que el valor dado.
date-timeFecha de creación (ISO 8601). Estrictamente menor que el valor dado.
date-timeImporte total. Mayor o igual que el valor dado.
Importe total. Menor o igual que el valor dado.
Importe total. Estrictamente mayor que el valor dado.
Importe total. Estrictamente menor que el valor dado.
Filtrar por tag de clasificación (slug en minúscula). Admite múltiples valores con tags[in]=a,b (JSON_CONTAINS, semántica OR — coincide con las proformas que llevan CUALQUIERA de los tags). Coincidencia exacta sobre tags.
Filtrar por tag de clasificación (slug en minúscula). Admite múltiples valores con tags[in]=a,b (JSON_CONTAINS, semántica OR — coincide con las proformas que llevan CUALQUIERA de los tags). Lista separada por comas. Coincide cualquiera de los valores.
Orden de los resultados. Usa un campo para ascendente o un prefijo - para descendente (p. ej. -created). Campos permitidos: created, total, number, valid_until. Combinado con el cursor, el orden se mantiene determinista (un orden secundario estable por el id del cursor, al estilo Stripe). Si se omite, los resultados siguen el orden de cursor por defecto (created descendente).
"created" | "-created" | "total" | "-total" | "number" | "-number" | "valid_until" | "-valid_until"Cuerpo de la respuesta
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"
}
],
"has_more": true,
"next_cursor": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0c"
}{
"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": "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"
}
}Buscar una proforma por external ID
Busca una única proforma por su `external_id` (enviado en el body JSON), la clave de integración que la mapea a un registro en un sistema de terceros (ERP/CRM/e-commerce). Devuelve la proforma coincidente o 404 `proforma_not_found` si ninguna proforma usa ese external_id dentro de tu empresa.
Descargar el PDF de la proforma
Descarga la representación en PDF de una proforma.