Resume la entrega de email por documento
Responde a «¿salió el email de estos documentos?» para un lote entero de una vez, en lugar de paginar los envíos de cada uno: por documento, cuántos emails se enviaron, el último estado, la última entrega al servidor SMTP y cuántos fallaron. Ideal para pintar una columna «enviado / no enviado» sobre una página de facturas en una sola llamada.
IMPORTANTE — last_status y last_sent_at describen la entrega al SERVIDOR SMTP DE SALIDA, no la entrega real: un email sent puede rebotar después sin que la plataforma se entere.
En: header
Parámetros de consulta
Documentos que resumir: UUID v7 de cada uno, separados por comas (related_entity_ids=a,b,c) o repetidos. Obligatorio, máximo 100 por llamada — más devuelve 422. El tipo no hace falta: un UUID v7 es único a nivel global, así que el lote PUEDE mezclar facturas, presupuestos, facturas proforma, albaranes, facturas de compra y facturas recurrentes. Los ids sin ningún email, y los que no pertenecen a un documento de tu empresa, se OMITEN de la respuesta en vez de informarse a cero, así que empareja los resultados por related_entity_id.
uuidTipo de documento opcional que acota la resolución de todos los ids del lote.
"invoice" | "quote" | "proforma" | "delivery_note" | "purchase_invoice" | "recurring_invoice"Parámetros de cabecera
Fija la versión de la API (YYYY-MM-DD, versionado por fecha estilo Stripe) para esta petición; omítelo para usar la versión fijada de la clave, o la última si no hay ninguna. Versión no soportada → 400 unsupported_api_version; malformada → 400 parameter_invalid_format. La versión efectiva se refleja en la cabecera de respuesta Factuarea-Version. Consulta la guía de Versioning.
dateOpera en nombre de una empresa hija (API key maestra de gestoría): pasa su id público (UUID v7) y la petición se ejecuta contra los datos de esa hija sin cambiar el scope, el tier ni el environment de la clave (omítelo para usar la propia empresa de la clave). UUID inválido → 400 parameter_invalid_uuid; id desconocido o no propio → 404 profile_not_found. Consulta la guía de Acting on behalf.
uuidCuerpo de la respuesta
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! });const result = await factuarea.emails.indicators();{
"data": [
{
"related_entity_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a9c",
"related_entity_type": "invoice",
"object": "email_delivery_indicator",
"total": 2,
"last_status": "sent",
"last_sent_at": "2026-07-15T09:30:12+00:00",
"attempts": 1,
"failed_count": 0
}
]
}{
"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"
}
}