Factuarea API
Suppliers

List all suppliers

List your suppliers with cursor-based pagination. Supports filtering by `is_active`, `created_at[gte|lte]`.

GET
/suppliers
AuthorizationBearer <token>

In: header

Query Parameters

limit?integer

Number of objects to return. Integer between 1 and 100. Defaults to 25.

Default25
Range1 <= value <= 100
starting_after?string

Cursor for forward pagination. Use the uuid of the last object on the previous page.

Formatuuid
ending_before?string

Cursor for backward pagination. Use the uuid of the first object on the current page.

Formatuuid
tax_id?string

Fiscal tax number (NIF/CIF/NIE) of the supplier. Exact match on tax_id.

tax_id[in]?string

Fiscal tax number (NIF/CIF/NIE) of the supplier. Comma-separated list. Any of the values matches.

vat_id?string

Intra-community VAT number. Exact match on vat_id.

name?string

Trade name of the supplier. Exact match on name.

is_active?boolean

Filter by active / inactive suppliers. Exact match on is_active.

created[gte]?string

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

Formatdate-time
created[lte]?string

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

Formatdate-time
created[gt]?string

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

Formatdate-time
created[lt]?string

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

Formatdate-time

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

import { Factuarea } from "@factuarea/sdk";const factuarea = new Factuarea({ apiKey: process.env.FACTUAREA_API_KEY! });// List endpoints return an async-iterable Page (cursors handled for you).for await (const item of await factuarea.suppliers.list({ limit: 25 })) {  console.log(item.id);}
{
  "data": [
    {
      "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a02",
      "object": "supplier",
      "name": "Distribuciones Ibéricas, S.L.",
      "business_name": "Distribuciones Ibéricas Sociedad Limitada",
      "commercial_name": "Distribuciones IB",
      "tax_id": "B87654321",
      "vat_id": "ESB87654321",
      "email": "facturacion@distribibericas.com",
      "phone": "+34 911 234 567",
      "fax": "+34 911 234 568",
      "mobile": "+34 600 234 567",
      "website": "https://distribibericas.com",
      "contact_person": "María López",
      "billing_emails": [
        "facturas@distribibericas.com",
        "contabilidad@distribibericas.com"
      ],
      "address": {
        "line1": "Calle Mayor 1",
        "line2": "Edificio Central",
        "number": "42",
        "floor": "3",
        "door": "B",
        "staircase": "A",
        "postal_code": "28001",
        "city": "Madrid",
        "province": "Madrid",
        "country": "ES"
      },
      "coordinates": {
        "latitude": 36.6954,
        "longitude": -4.4564
      },
      "iban": "ES9121000418450200051332",
      "default_taxes_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0f",
      "default_discount": 3,
      "default_vat_rate": 21,
      "default_retention_rate": 0,
      "is_surcharge_subject": false,
      "preferred_operation_regime": "general",
      "accumulate_347": true,
      "external_id": "SUP-1",
      "notes": "Proveedor preferente de material de oficina.",
      "metadata": {
        "erp_code": "IVA-GEN",
        "ledger_account": "477000"
      },
      "is_active": true,
      "created_at": "2026-01-10T09:00:00Z",
      "updated_at": "2026-01-10T09:00: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"
  }
}