POP | Electronic Invoicing for Europe
Generar facturas electrónicas conformes (Peppol UBL, PDF, FatturaPA XML) y enviarlas directamente a la Red Peppol, al SdI italiano y más.
Documentación
pop-mcp
Servidor MCP (Model Context Protocol) para POP — que permite a los LLM generar, enviar y gestionar facturas electrónicas italianas (FatturaPA/SdI), Peppol, KSeF, ZUGFeRD/Factur-X y facturas PDF directamente desde asistentes de IA.
npm:
@getpopapi/pop-mcp· Remoto:https://mcp.popapi.io/mcp
MCP remoto (HTTP) — la forma más rápida de empezar
¿No quieres instalar nada? pop-mcp se ejecuta como un servidor MCP alojado y multiinquilino en:
https://mcp.popapi.io/mcp
Ve a popapi.io para obtener una clave de licencia y luego apunta cualquier cliente compatible con MCP a esa URL con tu clave como token Bearer. Sin instalación local, sin variable de entorno POP_API_KEY, sin paso de compilación: esta es la forma recomendada de probar pop-mcp para la mayoría de las personas. Usa la configuración local stdio a continuación solo si necesitas específicamente una configuración de Claude Desktop que ejecute un proceso en tu propia máquina.
Cómo funciona
Este endpoint habla MCP 2026-07-28, que es completamente sin estado: no hay handshake initialize ni sesión que abrir o rastrear. Cada solicitud es autocontenida — nombra su propia versión de protocolo y capacidades — y el servidor la responde de forma independiente. Debido a eso, este es un endpoint multiinquilino: nunca lee un POP_API_KEY fijo de su propio entorno. Cada solicitud debe llevar tu propia clave de licencia POP como token Bearer:
Authorization: Bearer <your_license_key>
Un encabezado Authorization faltante o malformado devuelve un 401 con error_code: "unauthorized_user" antes de que se realice cualquier llamada a la API de POP. Una clave inválida pero bien formada se pasa directamente a la API de POP y muestra cualquier error que POP devuelva (unauthorized_user, insufficient_level, etc.) — el servidor no revalida las claves por sí mismo.
Cualquier cliente MCP HTTP moderno puede conectarse: Claude (conector remoto), la API de Respuestas de OpenAI, n8n, MCP Inspector o una integración personalizada — no solo Claude Desktop. Todas las herramientas de facturas, estado, avanzadas e incorporación están disponibles; las herramientas de incorporación usan su propio onboarding_token por llamada y no requieren la clave Bearer.
Ejemplo con curl
Descubre las versiones de protocolo y capacidades compatibles del servidor (opcional — los clientes también pueden llamar directamente a tools/list o tools/call y manejar un error de negociación de versión en línea):
curl -X POST https://mcp.popapi.io/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_license_key_here" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: server/discover" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "server/discover",
"params": { "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientCapabilities": {} } }
}'
Lista las herramientas disponibles — cada solicitud es autocontenida, por lo que _meta (versión de protocolo + capacidades del cliente) viaja en cada llamada, no solo en la primera:
curl -X POST https://mcp.popapi.io/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_license_key_here" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: tools/list" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": { "_meta": { "io.modelcontextprotocol/protocolVersion": "2026-07-28", "io.modelcontextprotocol/clientCapabilities": {} } }
}'
El catálogo de herramientas es idéntico para cada clave de licencia, por lo que las respuestas de tools/list y server/discover llevan una sugerencia de caché pública de una hora (ttlMs: 3600000, cacheScope: "public") — los clientes y las pasarelas pueden almacenarlas en caché entre inquilinos.
MCP-Protocol-VersionyMcp-Methodson obligatorios en cada solicitud (según SEP-2243), y deben coincidir exactamente con el_meta.protocolVersionymethoddel cuerpo, o el servidor rechaza la solicitud con un400y un error JSON-RPC-32020(HeaderMismatch). Las solicitudestools/callademás requieren un encabezadoMcp-Nameque coincida conparams.name.
Ejemplo con MCP Inspector
npx @modelcontextprotocol/inspector
Configúralo para conectarse a https://mcp.popapi.io/mcp con el encabezado Authorization: Bearer <your_license_key>.
Este endpoint se ejecuta como una función serverless de Vercel (api/mcp.ts → src/mcpHandler.ts). Para ejecutarlo localmente: npx vercel dev (requiere vercel link al proyecto primero).
¿Qué es POP?
POP es un servicio en la nube para la generación y entrega de facturas electrónicas, que admite:
- 🇮🇹 Facturación electrónica italiana (FatturaPA/SdI) — conforme al D.Lgs. 127/2015
- 🇪🇺 Peppol — facturación B2B transfronteriza paneuropea (UBL 2.1)
- 📄 Facturas PDF — con marca, y entrega por correo electrónico
- ✅ Validación — códigos fiscales, números de IVA, comprobaciones previas al envío de documentos
- 🗄️ Conservación — archivo legal italiano (conservazione sostitutiva)
Herramientas disponibles (11 en total)
Creación de facturas
| Herramienta | Endpoint | Plan |
|---|---|---|
pop_create_sdi_invoice | POST /create-xml | Cualquiera |
pop_create_peppol_invoice | POST /create-ubl | Cualquiera (Basic+ para enviar) |
pop_create_pdf_invoice | POST /create-pdf | Cualquiera (Basic+ para correo electrónico) |
pop_create_ksef_invoice | POST /create-ksef-xml | Cualquiera (configuración KSeF para envío del proveedor) |
pop_create_zugferd_invoice | POST /create-zugferd | Cualquiera |
pop_sync_zoho_document | POST /integration/zoho/sync | Conector Zoho requerido |
Estado y recuperación
| Herramienta | Endpoint | Plan |
|---|---|---|
pop_get_invoice_status | POST /sdi/document-notifications | Cualquiera |
pop_get_peppol_document | POST /peppol/document-get | Basic+ |
pop_get_sdi_document | POST /sdi/document-get | Basic+ |
Validación y SdI avanzado
| Herramienta | Endpoint | Plan |
|---|---|---|
pop_verify_sdi_document | POST /sdi/document-verify | Basic+ |
pop_preserve_document | POST /sdi/document-preserve | Basic+ |
Requisitos previos
- Node.js >= 20
- Una clave de licencia de POP
- Para el envío SdI/Peppol: integración activa en tu cuenta POP (plan Basic/Growth)
Autenticación
Obtén tu clave de licencia
¿Nuevo en POP? Visita popapi.io para crear tu cuenta y obtener tu clave de licencia.
Los usuarios solo de API pueden activar su cuenta y obtener un license_key con este flujo:
- Abre https://popapi.io/otp-login/
- Introduce tu dirección de correo electrónico
- Recibe una contraseña de un solo uso (OTP) por correo electrónico e introdúcela
- Completa el asistente de configuración
- Abre https://popapi.io/ → Cuenta > API
- Copia el
license_keygenerado por defecto
Gestión de claves
- Tu cuenta incluye un
license_keypor defecto, visible en Cuenta > API - Puedes generar claves adicionales vinculadas a la misma cuenta desde esa misma página
- Cada
license_keydebe tratarse como una credencial secreta — no lo confirmes en el control de versiones
Primeros pasos recomendados
- Obtén tu
license_key - Pruébalo con
GET /account-profile - Envía una solicitud de generación de documentos con una carga útil real
- Añade integraciones de entrega opcionales solo después de que la generación local funcione
Instalación
Desde npm (recomendado)
npm install -g @getpopapi/pop-mcp
Desde el código fuente
git clone https://github.com/getpopapi/pop-mcp
cd pop-mcp
npm install
npm run build
Configuración
Establece tu clave de licencia POP como variable de entorno:
export POP_API_KEY=your_license_key_here
Opcional — usa el entorno de pruebas:
export POP_ENVIRONMENT=staging
Configuración de Claude Desktop
Añade a tu claude_desktop_config.json:
Si se instaló desde npm:
{
"mcpServers": {
"pop": {
"command": "pop-mcp",
"env": {
"POP_API_KEY": "your_license_key_here"
}
}
}
}
Si se ejecuta desde el código fuente:
{
"mcpServers": {
"pop": {
"command": "node",
"args": ["/path/to/pop-mcp/dist/cli.js"],
"env": {
"POP_API_KEY": "your_license_key_here"
}
}
}
}
Ubicaciones de los archivos de configuración:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Referencia de herramientas
El license_key siempre se inyecta automáticamente desde POP_API_KEY — nunca lo pases manualmente.
pop_create_sdi_invoice
Genera un documento XML FatturaPA italiano. Opcionalmente envíalo al SdI (Sistema di Interscambio).
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
data | objeto | ✅ | Datos completos de la factura (ver Estructura de datos de factura) |
submit_to_sdi | booleano | — | Establece true para enviar al SdI. Requiere plan Basic+ con integración SdI activa. Por defecto: false |
integration | objeto | — | Anula la configuración de integración. Anula submit_to_sdi si se establece. |
environment | cadena | — | Entorno de destino (p. ej. "sandbox") |
Opciones de integración para integration.use:
"sdi-via-pop"o"sdi"— Enviar vía POP SdI"pop-to-webhook"— Entregar a un webhook (requiereid)"fatture-in-cloud"— Entregar a Fatture in Cloud
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"user_agent": "pop-mcp",
"user_agent_version": "1.0.0",
"data": { "...invoice fields..." },
"integration": { "use": "sdi-via-pop", "action": "create" }
}
integrationse omite cuandosubmit_to_sdiesfalsey no se proporciona ninguna anulación (generación solo XML).
pop_create_peppol_invoice
Genera un documento Peppol UBL 2.1. Opcionalmente envíalo a la red Peppol.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
data | objeto | ✅ | Datos completos de la factura. customer_type debe ser "company" o "freelance" |
submit_to_peppol | booleano | — | Establece true para enviar a la red Peppol. Requiere plan Basic+. Por defecto: false |
integration | objeto | — | Anula la configuración de integración |
environment | cadena | — | Entorno de destino |
Opciones de integración para integration.use:
"peppol-via-pop"o"peppol"— Enviar vía POP Peppol"pop-to-webhook"— Entregar a un webhook (requiereid)
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"user_agent": "pop-mcp",
"user_agent_version": "1.0.0",
"data": { "...invoice fields..." },
"integration": { "use": "peppol-via-pop", "action": "create" }
}
pop_create_pdf_invoice
Genera una factura PDF con marca. Opcionalmente envíala por correo electrónico a hasta 3 destinatarios.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
data | objeto | ✅ | Datos de la factura. Debe incluir data.pdf para configuraciones específicas de PDF |
send_email | booleano | — | Establece true para enviar el PDF por correo electrónico (requiere data.pdf.email_invoice, plan Basic+). Por defecto: false |
environment | cadena | — | Entorno de destino |
Campos de data.pdf:
| Campo | Descripción |
|---|---|
doc_type_title | Título mostrado en el documento (p. ej. "Invoice", "Receipt") |
logo_url | URL del logotipo de la empresa (HTTPS) |
head.store_info_address | Dirección del proveedor como cadena en el encabezado |
head.billing[] | Matriz de dirección de facturación del cliente |
head.shipping[] | Matriz de dirección de envío (opcional) |
email_invoice.to | Hasta 3 direcciones de correo electrónico de destinatarios |
email_invoice.from | Dirección de respuesta |
footer_text | Mensaje de pie de página personalizado |
total_tax | Importe total de impuestos como cadena |
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"user_agent": "pop-mcp",
"user_agent_version": "1.0.0",
"data": {
"...invoice fields...",
"pdf": {
"doc_type_title": "Invoice",
"logo_url": "https://example.com/logo.png",
"head": { "store_info_address": "Via Roma 1, 00100 Roma IT", "billing": [] },
"total_tax": "22.00",
"email_invoice": { "to": ["customer@example.com"] }
}
}
}
pop_create_ksef_invoice
Genera una factura XML KSeF FA(3) polaca o una nota de crédito. Opcionalmente envíala a través de una integración de proveedor KSeF configurada.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
data | objeto | ✅ | Datos completos de la factura para la generación KSeF FA(3) |
integration | objeto | — | Configuración opcional de envío del proveedor KSeF: { use: "ksef" | "ksef-via-pop", action } |
environment | cadena | — | Entorno de destino (p. ej. "sandbox") |
Reglas de dominio específicas de KSeF:
- Solo Polonia —
transfer_lender.personal_data.tax_id_vat.country_iddebe ser"PL"con un NIP de 10 dígitos comoid_code customer_typedebe ser"company"o"freelance"(sin personas físicas)naturees siempre obligatorio en el nivel superior para KSeF (a diferencia de SdI/Peppol, donde solo se requiere al 0% de IVA) — reutiliza los mismos códigos de naturaleza SdI (N1,N2.1,N2.2,N3.1,N3.2,N4, ...) para derivar la variante fiscal interna de KSeFtransmitter_datano se usa (concepto solo de SdI)payment_data.payment_detailssolo aceptaMP01,MP02/MP03,MP05,MP08— otros códigos de método de pago se rechazan en el momento de la generación- La generación de XML base está disponible en cualquier plan; el envío del proveedor vía
integration.use: "ksef"requiere un plan Basic+ y que el proveedor esté registrado como entidad legal KSeF en el panel de POP
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"user_agent": "pop-mcp",
"user_agent_version": "1.0.0",
"data": { "...invoice fields...", "nature": "N1" },
"integration": { "use": "ksef", "action": "create" }
}
integrationse omite por completo para la generación local solo XML (sin envío del proveedor).
Devuelve: XML FA(3) sin procesar (application/xml) para generación local, o JSON (con un UUID) cuando se envía a través de una integración de proveedor.
pop_create_zugferd_invoice
Genera un paquete de documentos ZUGFeRD/Factur-X: un PDF visual, un XML CII EN16931 y un PDF/A-3 híbrido con el XML incrustado.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
data | objeto | ✅ | Datos completos de la factura para la generación ZUGFeRD/Factur-X |
environment | cadena | — | Entorno de destino (p. ej. "sandbox") |
Esta herramienta no tiene parámetro integration — la generación ZUGFeRD es solo local, sin paso de envío/entrega. |
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"user_agent": "pop-mcp",
"user_agent_version": "1.0.0",
"data": { "...invoice fields..." }
}
Devuelve: JSON con metadatos de generación y tres adjuntos codificados en Base64:
{
"success": true,
"data": {
"valid": true,
"profile": "EN16931",
"attachments": {
"pdf": { "filename": "...", "mime": "application/pdf", "content_base64": "..." },
"xml": { "filename": "...", "mime": "application/xml", "content_base64": "..." },
"hybrid_pdf": { "filename": "...", "mime": "application/pdf", "content_base64": "..." }
},
"validation": { "...": "..." },
"errors": [],
"warnings": []
}
}
pop_get_invoice_status
Recupera el estado de procesamiento y las notificaciones de SdI para una factura enviada.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
uuid | string (UUID) | ✅ | UUID de factura devuelto por pop_create_sdi_invoice cuando submit_to_sdi=true |
response_format | "markdown" | "json" | — | Formato de salida. Predeterminado: "markdown" |
environment | string | — | Entorno de destino |
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"integration": { "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
}
Estados de notificación de SdI: pending · accepted · rejected · delivery
El procesamiento de SdI es asíncrono y puede tardar de minutos a horas. Reintente si aún no se devuelven notificaciones.
pop_get_peppol_document
Recupera un documento Peppol de la red por UUID.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
uuid | string (UUID) | ✅ | UUID de documento Peppol de pop_create_peppol_invoice |
zone | string (2 caracteres) | — | Código de país del punto de acceso Peppol (p. ej., "BE" para Bélgica). Requerido para algunas regiones. |
response_format | "markdown" | "json" | — | Formato de salida. Predeterminado: "markdown" |
environment | string | — | Entorno de destino |
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"integration": { "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "zone": "IT" }
}
zonese omite de la carga útil si no se proporciona.
pop_get_sdi_document
Recupera un documento SdI (FatturaPA) archivado del almacenamiento de POP por UUID.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
uuid | string (UUID) | ✅ | UUID de documento SdI |
response_format | "markdown" | "json" | — | Formato de salida. Predeterminado: "markdown" |
environment | string | — | Entorno de destino |
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"integration": { "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
}
Requiere: plan Basic+ con integración SdI activa.
pop_verify_sdi_document
Valida un documento XML SdI para verificar el cumplimiento antes del envío. No envía el documento.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
xml_base64 | string | ✅ | El documento XML SdI codificado como cadena Base64 |
environment | string | — | Entorno de destino |
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"skip_business_check": true,
"integration": { "xml": "<base64-encoded-xml-string>" }
}
Comprobaciones de validación realizadas: conformidad con el esquema XML · formato del código fiscal · validez del número de IVA · presencia de campos obligatorios · consistencia de importes
Requiere: plan Basic+ con integración SdI activa y negocio registrado.
pop_preserve_document
Archiva un documento SdI en almacenamiento digital certificado a largo plazo (conservazione sostitutiva). La ley italiana exige que las facturas se conserven durante 10 años.
Entradas MCP:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
uuid | string (UUID) | ✅ | UUID del documento SdI a archivar |
environment | string | — | Entorno de destino |
Carga útil de API enviada:
{
"license_key": "YOUR_LICENSE_KEY",
"integration": { "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
}
Importante: Solo llame a esta herramienta cuando
pop_get_invoice_statusdevuelva el estadoRC(Ricevuta di Consegna) oMC(Mancata Consegna). No llame para los estadosNS,EC,SEoDT.
Requiere: plan Basic+ con integración SdI activa.
Ejemplos de uso
Generar una Factura Italiana Simple (Solo XML)
Pida a su asistente de IA:
"Cree una factura FatturaPA por 1000€ + 22% de IVA para Rossi SRL (IVA IT12345678901, Milán). Mi empresa es Bianchi SRL (IVA IT98765432109, Roma), usando método de pago transferencia bancaria al IBAN IT60X0542811101000000123456."
Enviar Factura a SdI
"Cree y envíe a SdI una factura #45 por servicios de consultoría, 500€ + 22% de IVA al cliente Mario Rossi (código fiscal RSSMRA80A01H501U) en Roma."
Consultar el Estado de la Factura Después del Envío
"¿Cuál es el estado de la factura SdI con UUID abc123-def456-...?"
Generar PDF con Entrega por Correo Electrónico
"Cree una factura en PDF para el pedido #123 y envíela por correo electrónico a customer@example.com."
Verificar Documento SdI Antes de Enviar
"Verifique el documento SdI con UUID abc123-... para verificar el cumplimiento antes del envío."
Requisitos del Plan
| Característica | Gratis | Básico/Crecimiento | Pro |
|---|---|---|---|
| Generación XML (local) | ✅ | ✅ | ✅ |
| Generación PDF | ✅ | ✅ | ✅ |
| Envío a SdI | ❌ | ✅ | ✅ |
| Envío a Peppol | ❌ | ✅ | ✅ |
| Entrega de PDF por correo electrónico | ❌ | ✅ | ✅ |
| Verificación de documentos SdI | ❌ | ✅ | ✅ |
| Conservación de documentos | ❌ | ✅ | ✅ |
Pruebas
Inspector MCP (Interactivo)
npm run inspector
# or
npx @modelcontextprotocol/inspector dist/cli.js
Prueba Rápida de Humo
POP_API_KEY=your_key node -e "
import('./dist/cli.js').catch(e => {
if (e.message.includes('stdin')) process.exit(0);
console.error(e); process.exit(1);
});
"
Listado de Esquema de Herramientas de Prueba
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | POP_API_KEY=test node dist/cli.js
Desarrollo
# Run with auto-reload
npm run dev
# Build
npm run build
# Clean build artifacts
npm run clean
Estructura de Datos de la Factura
El parámetro data para la creación de facturas sigue la estructura FatturaPA:
data
├── id Invoice/order ID (numeric)
├── filename Output filename without extension (e.g. 'IT99900088876_00009')
├── type "invoice" | "credit_note"
├── version "FPR12" | "FPA12"
├── sdi_type 7-char SDI code ('0000000' for private individuals)
├── customer_type "private" | "company" | "freelance" | "pa"
├── nature VAT exemption code (required when rate is 0%, e.g. 'N2.1', 'N6.1')
├── transmitter_data
│ ├── transmitter_id { country_id, id_code }
│ ├── progressive Transmission progressive ID (e.g. '00001')
│ ├── transmitter_format "FPR12" | "FPA12"
│ ├── sdi_code 7-char code
│ ├── transmitter_contact { phone, email }
│ └── recipient_pec PEC email (alternative to sdi_code)
├── transfer_lender Supplier/seller
│ ├── personal_data { tax_id_vat: { country_id, id_code, tax_regime }, company_name }
│ ├── place { address, zip_code, city, province_id, country_id }
│ └── contact { phone, email }
├── transferee_client Customer/buyer
│ ├── personal_data { tax_id_vat, tax_id_code (fiscal code for IT private), company_name }
│ └── place { address, zip_code, city, province_id, country_id }
├── invoice_body
│ ├── general_data { doc_type (TD01|TD04), date (YYYY-MM-DD), invoice_number, currency }
│ └── total_document_amount
├── order_items[]
│ ├── description, quantity, unit
│ ├── unit_price, total_price
│ ├── rate VAT rate as string (e.g. '22.00')
│ ├── total_tax VAT amount (number)
│ └── item_type "product" | "shipping" | "fee"
├── payment_data
│ ├── terms_payment TP01 (instalment) | TP02 (full) | TP03 (advance)
│ ├── payment_details MP01 (Cash) | MP02 (Check) | MP05 (Bank Transfer) | MP08 (Credit Card) | ...
│ ├── payment_amount
│ ├── beneficiary Required for MP05 (bank transfer)
│ ├── financial_institution Required for MP05
│ └── iban Required for MP05
├── purchase_order_data (optional) { id, date }
├── connected_invoice_data[] (required for credit notes) { id, date }
├── overrides (optional) { language, bollo_force_apply }
└── pdf (only for pop_create_pdf_invoice)
├── doc_type_title
├── logo_url
├── head { store_info_address, billing[], shipping[] }
├── total_tax
├── email_invoice { to[] (max 3), from }
└── footer_text
Referencia de Errores
| Código de Error | Significado | Solución |
|---|---|---|
unauthorized_user | Clave de licencia no válida | Verifique POP_API_KEY |
insufficient_level | Plan demasiado bajo | Actualice el plan POP |
business_not_registered | Sin perfil de negocio | Regístrese en popapi.io |
integration_inactive | SdI/Peppol no habilitado | Actívelo en popapi.io |
pop_api_email_limit | >3 destinatarios de correo | Reduzca a máximo 3 |
pop_api_email_not_allowed | El plan no permite correo electrónico | Actualice a Basic+ |
Proyectos Relacionados
- n8n-nodes-pop — nodos comunitarios de n8n para POP
- POP — Sitio web oficial
- Documentación de API — Documentos de Postman
Licencia
MIT © getpopapi