Factuarea API
Factures proforma

Llistar totes les proformes

Llista les teves factures proforma amb paginació per cursor.

GET
/proformas
AuthorizationBearer <token>

A: header

Paràmetres de consulta

limit?integer

Nombre d'objectes a retornar. Enter entre 1 i 100. Per defecte 25.

Predeterminat25
Rang1 <= value <= 100
starting_after?string

Cursor per a paginació cap endavant. Fes servir l'uuid de l'últim objecte de la pàgina anterior.

Formatuuid
ending_before?string

Cursor per a paginació cap enrere. Fes servir l'uuid del primer objecte de la pàgina actual.

Formatuuid
status?string

Estat de la proforma. Coincidència exacta en status.

status[in]?string

Estat de la proforma. Llista separada per comes. Coincideix qualsevol dels valors.

client_id?string

Client ID (UUID v7). Coincidència exacta amb client_id.

Formatuuid
client_id[in]?string

Client ID (UUID v7). Llista separada per comes. Coincideix qualsevol dels valors.

series_id?string

Series ID (UUID v7). Coincidència exacta amb series_id.

Formatuuid
series_id[in]?string

Series ID (UUID v7). Llista separada per comes. Coincideix qualsevol dels valors.

created[gte]?string

Data de creació (ISO 8601). Major o igual que el valor donat.

Formatdate-time
created[lte]?string

Data de creació (ISO 8601). Menor o igual que el valor donat.

Formatdate-time
created[gt]?string

Data de creació (ISO 8601). Estrictament major que el valor donat.

Formatdate-time
created[lt]?string

Data de creació (ISO 8601). Estrictament menor que el valor donat.

Formatdate-time
total[gte]?number

Import total. Major o igual que el valor donat.

total[lte]?number

Import total. Menor o igual que el valor donat.

total[gt]?number

Import total. Estrictament major que el valor donat.

total[lt]?number

Import total. Estrictament menor que el valor donat.

tags?string

Filtrar per tag de classificació (slug en minúscula). Admet múltiples valors amb tags[in]=a,b (JSON_CONTAINS, semàntica OR — coincideix amb les proformes que porten QUALSEVOL dels tags). Coincidència exacta sobre tags.

tags[in]?string

Filtrar per tag de classificació (slug en minúscula). Admet múltiples valors amb tags[in]=a,b (JSON_CONTAINS, semàntica OR — coincideix amb les proformes que porten QUALSEVOL dels tags). Llista separada per comes. Coincideix qualsevol dels valors.

sort?string

Ordre dels resultats. Fes servir un camp per a ascendent o un prefix - per a descendent (p. ex. -created). Camps permesos: created, total, number, valid_until. Combinat amb el cursor, l'ordre es manté determinista (un ordre secundari estable per l'id del cursor, a l'estil Stripe). Si s'omet, els resultats segueixen l'ordre de cursor per defecte (created descendent).

Valor a"created" | "-created" | "total" | "-total" | "number" | "-number" | "valid_until" | "-valid_until"

Cos de la resposta

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"
  }
}