API de facturación
Todavía no existe una API pública de facturación. Esto es lo que puedes automatizar hoy en facturas, presupuestos y gastos, y lo que está por llegar.
Todavía no disponible
No hay endpoints públicos para facturas, presupuestos, notas de crédito, facturas recurrentes,
inventario ni gastos. https://api2.bunnydoc.com/v1 solo sirve hoy la
API de firma electrónica. Cualquier cosa que leas sobre llamar a
/v1/invoices no es algo que ofrezcamos.
La facturación se gestiona en la aplicación. Si estás planificando una integración, esto es exactamente lo que es y no es posible ahora mismo, para que puedas diseñar con ello en mente en lugar de descubrirlo a mitad del desarrollo.
Qué puedes automatizar hoy
Recibir eventos de facturación por webhook
Es el único punto de enganche programático con la facturación y, para la mayoría de integraciones, el importante: permite que tu sistema reaccione a un pago sin hacer polling.
Se configura en la aplicación en Configuración → Webhooks, eligiendo Facturación como
producto. No puedes crear estas suscripciones mediante la API (/v1/webhooks solo gestiona
suscripciones de firma electrónica), pero una vez registradas se entregan igual que los webhooks de
firma electrónica: misma envoltura, misma firma HMAC, mismo comportamiento de reintento y
desactivación automática.
| Evento | Se dispara cuando |
|---|---|
invoice.issued | Se emitió una factura. |
invoice.sent | Se envió una factura al cliente. |
invoice.viewed | El cliente abrió la factura. |
invoice.partially_paid | Se aplicó un pago parcial. |
invoice.paid | Una factura se pagó por completo. |
invoice.voided | Se anuló una factura. |
invoice_payment.succeeded | Un pago contra una factura tuvo éxito. |
invoice_payment.failed | Un pago contra una factura falló. |
invoice_payment.refunded | Se reembolsó un pago contra una factura. |
expense.confirmed | Un gasto se confirmó y salió de borrador. |
expense.ocr_completed | El OCR terminó de extraer datos de un recibo. |
expense.ocr_failed | El OCR no pudo extraer datos de un recibo. |
Los webhooks de facturación se habilitan por separado de los de firma electrónica, y todos los eventos anteriores están en el nivel estándar de facturación.
No existe el evento invoice.overdue
"Vencida" es un filtro calculado (due_date en el pasado), no un estado almacenado: nada hace que
una factura transicione a él, así que ese evento nunca podría dispararse. Controla los vencimientos
por tu parte a partir de invoice.issued o invoice.sent.
Para verificar firmas, gestionar reintentos y entender la envoltura de entrega, usa la guía de webhooks: las secciones 2 a 5 se aplican a cualquier suscripción, sea del producto que sea.
Cobrar dentro de un documento que se está firmando
Si lo que realmente quieres es "cobrar al cliente cuando firme", eso es firma electrónica, no
facturación, y está plenamente disponible mediante la API. Coloca un bloque de pago en la plantilla,
envíala con
POST /v1/envelopes/from-template y suscríbete a
payment.succeeded.
Sacar los datos de la aplicación
- Los informes se pueden exportar a CSV/XLSX: consulta Informes.
- Los correos de recibo y la página pública de pago cubren el lado del cliente sin ningún trabajo de integración. Consulta La página pública de pago.
Qué todavía no es posible
- Crear, emitir, enviar o anular una factura de forma programática.
- Leer datos de facturas, presupuestos o notas de crédito por HTTP.
- Gestionar productos, stock, categorías, descuentos o tipos de impuesto.
- Crear o leer gastos. (Los gastos sí se pueden crear enviando recibos por correo a tu bandeja de gastos — consulta Bandeja de entrada por correo — lo que es un sustituto práctico de una API de ingesta.)