Factuarea API
Enviaments d'email

Llista els emails enviats

Consulta els emails que la teva empresa ha enviat per la plataforma — factures, pressupostos, factures proforma, albarans, recordatoris de cobrament —, de més recent a més antic, per poder respondre a «ha sortit de debò l'email d'aquesta factura?» sense preguntar-ho al teu client. Acotat a l'empresa autenticada.

IMPORTANT — status descriu el lliurament al SERVIDOR SMTP DE SORTIDA, no el lliurament real: sent significa que el servidor de correu de sortida ha acceptat el missatge, no que el destinatari l'hagi rebut.

GET
/emails
AuthorizationBearer <token>

A: header

Paràmetres de consulta

status?string

Estat de lliurament pel qual filtrar (queued, sending, sent, failed). Reflecteix el lliurament al servidor SMTP de sortida, no el lliurament real a la safata.

Valor a"queued" | "sending" | "sent" | "failed"
recipient_email?string

Adreça exacta del destinatari per la qual filtrar. Per a coincidències parcials fes servir search.

Longitudlength <= 255
related_entity_id?string

UUID v7 del document relacionat. S'admet sense related_entity_type.

Formatuuid
related_entity_type?string

Tipus de document opcional que acota la resolució de related_entity_id.

Valor a"invoice" | "quote" | "proforma" | "delivery_note" | "purchase_invoice" | "recurring_invoice"
created_at[gte]?string

Límit inferior inclusiu de created_at (ISO 8601).

Formatdate-time
created_at[lte]?string

Límit superior inclusiu de created_at (ISO 8601).

Formatdate-time
search?string

Coincidència parcial, sense distingir majúscules, contra l'assumpte i el destinatari.

Longitudlength <= 255
limit?integer

Nombre d'emails a retornar. Enter entre 1 i 100. Per defecte 25. Un valor no enter o fora de rang retorna 400.

Predeterminat25
Rang1 <= value <= 100
starting_after?string

Cursor de paginació cap endavant: torna a enviar el next_cursor de la pàgina anterior. Tracta'l com a opac — a diferència de la resta de llistats de v1 és una cadena numèrica, no un UUID v7. Un cursor mal format retorna 400.

Coincidència^[0-9]+$

Paràmetres de capçalera

Factuarea-Version?string

Fixa la versió de l'API (YYYY-MM-DD, versionat per data estil Stripe) per a aquesta petició; omet-lo per usar la versió fixada de la clau, o l'última si no n'hi ha cap. Versió no suportada → 400 unsupported_api_version; mal formada → 400 parameter_invalid_format. La versió efectiva es reflecteix a la capçalera de resposta Factuarea-Version. Consulta la guia de Versioning.

Formatdate
X-Active-Profile?string

Opera en nom d'una empresa filla (API key mestra de gestoria): passa el seu id públic (UUID v7) i la petició s'executa contra les dades d'aquella filla sense canviar l'scope, el tier ni l'environment de la clau (omet-lo per usar la pròpia empresa de la clau). UUID no vàlid → 400 parameter_invalid_uuid; id desconegut o no propi → 404 profile_not_found. Consulta la guia d'Acting on behalf.

Formatuuid

Cos de la resposta

application/json

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.emails.list({ limit: 25 })) {  console.log(item.id);}
{
  "data": [
    {
      "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a9b",
      "object": "email_delivery",
      "recipient_email": "cliente@example.com",
      "cc": [
        "copia@example.com"
      ],
      "bcc": [],
      "subject": "Factura F2026-0042",
      "status": "sent",
      "attempts": 1,
      "error_message": null,
      "sent_at": "2026-07-15T09:30:12+00:00",
      "failed_at": null,
      "created_at": "2026-07-15T09:30:09+00:00",
      "related_entity_type": "invoice",
      "related_entity_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a9c"
    }
  ],
  "has_more": true,
  "next_cursor": "48210"
}

{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_unknown",
    "message": "El parámetro 'per_page' no está reconocido por este endpoint.",
    "param": "per_page",
    "doc_url": "https://docs.factuarea.com/guides/errors#parameter_unknown",
    "request_id": "req_01HKQS5N7UR6PWJ8K2T5BWPMZ9"
  }
}

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