Proformas

List all proformas

List your proforma invoices with cursor-based pagination.

get/companies/{company}/proformas

Request

  • Base URL: https://api.factuarea.com/v1
  • URL: https://api.factuarea.com/v1/companies/{company}/proformas
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Path parameters

companystring uuid required

Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).

Query parameters

limitinteger

Number of objects to return, between 1 and 100 (default 25).

starting_afterstring uuid

Cursor for forward pagination: pass the id of the last object on the previous page (the next_cursor of the previous response).

ending_beforestring uuid

Cursor for backward pagination: pass the id of the first object on the current page.

statusstring

Proforma status. Exact match on status.

status[in]string

Comma-separated list of values (CSV).

Proforma status. Comma-separated list. Any of the values matches.

client_idstring uuid

Client ID (UUID v7). Exact match on client_id.

client_id[in]string

Comma-separated list of values (CSV).

Client ID (UUID v7). Comma-separated list. Any of the values matches.

series_idstring uuid

Series ID (UUID v7). Exact match on series_id.

series_id[in]string

Comma-separated list of values (CSV).

Series ID (UUID v7). Comma-separated list. Any of the values matches.

created[gte]string date-time

Creation date (ISO 8601). Greater than or equal to the given value.

created[lte]string date-time

Creation date (ISO 8601). Less than or equal to the given value.

created[gt]string date-time

Creation date (ISO 8601). Strictly greater than the given value.

created[lt]string date-time

Creation date (ISO 8601). Strictly less than the given value.

total[gte]number

Total amount. Greater than or equal to the given value.

total[lte]number

Total amount. Less than or equal to the given value.

total[gt]number

Total amount. Strictly greater than the given value.

total[lt]number

Total amount. Strictly less than the given value.

numberstring

Proforma number. Exact match on number.

number[contains]string

Proforma number. Partial case-insensitive match (LIKE %term%) on number.

tagsstring

Classification tag (lowercase slug); tags[in]=a,b matches proformas carrying ANY of the tags. Exact match on tags.

tags[in]string

Comma-separated list of values (CSV).

Classification tag (lowercase slug); tags[in]=a,b matches proformas carrying ANY of the tags. Comma-separated list. Any of the values matches.

sort'created' | '-created' | 'total' | '-total' | 'number' | '-number' | 'valid_until' | '-valid_until'

Sort order: created, total, number, valid_until ascending, or with a - prefix for descending (default -created).

searchstring

Free-text search. Escaped LIKE %term% (case-insensitive, max 80 chars) across the resource's key text columns, combined with the other filters (AND) and compatible with the cursor.

metadataobject

Metadata filter as metadata[key]=value (deepObject): pairs combine with AND, up to 50, keys matching [A-Za-z0-9_.-]{1,64}.

Headers

Factuarea-Versionstring date
Example:2026-06-01

Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.

Response

has_moreboolean required

Whether more pages are available after this one.

next_cursorstring nullable required

Opaque cursor for the next page, or null when has_more is false. The example below shows the shape used by most listings; others return a different one, so pass the value back verbatim instead of validating it.

Example response

{
  "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",
      "operation_regime": "general",
      "converted_invoice_number": "F-2025-003",
      "subtotal": "1500.00",
      "taxes_total": "315.00",
      "total_vat": "315.00",
      "total_retention": "0.00",
      "total_surcharge": "0.00",
      "total": "1815.00",
      "shipping_cost": "15.50",
      "total_with_shipping": "1830.50",
      "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": [
        {
          "description": "Setup inicial",
          "additional_description": "Auditoría inicial e informe de mejoras",
          "product": {
            "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a09",
            "name": "Consultoría hora estándar"
          },
          "quantity": 1,
          "unit_price": "1500.0000",
          "tax_rate": 21,
          "subtotal": "1500.00",
          "taxes": "315.00",
          "total": "1815.00",
          "counted_quantity": "4.0000",
          "configuration": {
            "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8c03",
            "name": "Setup · In situ",
            "signature": "e2704ac1936bd85f0c4a71e2853d69b0fa17c4e6d92038b5417ec0a6395d8b12"
          },
          "options": [
            {
              "group": {
                "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8c13",
                "name": "Modalidad"
              },
              "value": {
                "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8c23",
                "name": "In situ"
              },
              "price_adjustment": "250.0000",
              "applied": true
            }
          ],
          "price_semantics": "per_commercial_unit",
          "price_adjustment_total": "250.0000"
        }
      ],
      "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"
}

Changes

No recorded changes to this operation across all 1 revision of this API.