Facturación

El módulo de facturación es un libro contable por inquilino para la facturación SaaS propia de un proyecto. El dinero se almacena como céntimos enteros. Es opcional: habilítalo en el gestor de plugins (sus tablas siempre existen; las rutas devuelven 404 hasta que se habilita).

El libro contable

  • customers — tus clientes finales (external_id, email, nombre).

  • plansprice_cents, currency, interval (mes/año/vitalicio), features[].

  • subscriptions — estado trialing/active/past_due/canceled, cliente + plan vinculados.

  • invoicesdraft/open/paid/void, importes en céntimos.

  • events — un registro de auditoría de solo anexado.

Proveedores de pago

Las credenciales de proveedor viven por proyecto; la api_key y el webhook_secret se sellan en reposo. Tipos integrados: paddle (Paddle Billing) y mock para pruebas.

Webhooks

Los eventos entrantes llegan a POST /api/p/{ref}/billing/webhooks/{kind} y se verifican por HMAC contra el secreto de la configuración (el Paddle-Signature: ts=…;h1=… de Paddle, con comparación de tiempo constante, ventana de repetición de 5 minutos). La entrega es idempotente — un (project, kind, event_id) duplicado no hace nada — y cada entrega se refleja en un registro de webhooks que puedes inspeccionar y reenviar.