billing).
La API de Billing utiliza una URL base propia, diferente de la Core API. En los ejemplos de
esta sección la base es
https://billing-api.sandbox.z2pay.com. La autenticación es la misma
que en el resto de la plataforma: el header x-api-key con tu clave de sandbox. Consulta
Autenticación y Entornos.El modelo: Plan → Precio → Suscripción → Factura
La recurrencia se construye a partir de cuatro recursos encadenados. Entender esta cadena es el primer paso para integrar.Plan (Plan)
El catálogo de la oferta recurrente: nombre, código y los componentes que la conforman.
Comienza en
draft, se publica (active) y puede archivarse (archived).Precio (Price)
Una versión de precio de un componente del plan: define
unitAmount (en centavos),
currency y la recurrence (cada cuánto se cobra). Versionado — crear un nuevo Precio
desactiva el anterior de la misma moneda/recurrencia.Suscripción (Subscription)
Vincula un cliente a un plan (o a ítems sueltos). Es el contrato vigente: tiene estado,
método de pago predeterminado, fecha de la próxima factura y ciclos.
Factura (Invoice)
El documento de cobro de un ciclo. Nace de una suscripción, se cobra a través del PSP y
transiciona entre
open, paid, past_due, etc.No es necesario crear un Plan para tener una suscripción. Es posible crear una suscripción
con ítems sueltos (inline), informando
description y unitAmount directamente — en ese
caso recurrence y currency pasan a ser obligatorios en el cuerpo de la suscripción. El
camino a través del Plan es el recomendado cuando vendes la misma oferta a muchos clientes.Cómo funcionan los ciclos
Una vez que la suscripción existe, el planificador del Billing se encarga del resto. En cada ciclo genera la próxima factura, dispara el cobro a través del PSP y actualiza el estado de la suscripción según el resultado.Creación
Creas la suscripción (
POST /subscriptions). Si se informa un defaultPaymentMethodRef,
nace lista para cobrar; sin método de pago, nace como incomplete.Generación de la factura
Por defecto (
invoiceGenerationMode=just_in_time) el planificador genera una factura por
ciclo. En upfront, todas las maxCycles facturas se emiten al momento de la creación
(cada una con su propio vencimiento).Cobro
Con
collectionMethod=charge_automatically (por defecto), el Billing cobra el método de
pago predeterminado. Cada cobro se convierte en una transacción en el PSP con
origin=billing. Con send_invoice, la factura simplemente se emite para que el cliente
la pague.Endpoints principales
Visión consolidada de los recursos de Billing. Cada grupo tiene su propia página de referencia con los campos completos del cuerpo y ejemplos. Todas las rutas requieren el headerx-api-key.
Planes y Precios
| Método | Ruta | Descripción |
|---|---|---|
POST | /plans | Crea un plan (estado inicial draft). |
GET | /plans | Lista planes (paginado, con filtros). |
GET | /plans/:id | Detalla un plan. |
PATCH | /plans/:id | Actualiza campos del plan. |
POST | /plans/:id/publish | Publica el plan (draft → active). |
POST | /plans/:id/archive | Archiva el plan. |
GET | /plans/:id/template | Devuelve el plan + componentes con el Precio actual de cada uno. |
GET | /plans/:id/items | Lista los componentes del plan. |
POST | /plans/:id/items | Agrega un componente al plan. |
PATCH | /plans/:id/items/:itemId | Actualiza un componente. |
DELETE | /plans/:id/items/:itemId | Archiva un componente. |
GET | /plans/:id/prices | Lista las versiones de Precio del plan. |
POST | /plans/:id/prices | Crea una nueva versión de Precio. |
POST | /plans/:id/prices/:priceId/archive | Archiva una versión de Precio. |
POST | /plans/:id/charges | Crea componente + Precio inicial de forma atómica. |
Suscripciones
| Método | Ruta | Descripción |
|---|---|---|
POST | /subscriptions | Crea una suscripción. |
GET | /subscriptions | Lista suscripciones (paginado, con filtros). |
GET | /subscriptions/:id | Detalla una suscripción. |
GET | /subscriptions/:id/items | Lista los ítems activos de la suscripción. |
POST | /subscriptions/:id/cancel | Cancela (inmediato o al final del ciclo). |
POST | /subscriptions/:id/uncancel | Deshace una cancelación programada. |
POST | /subscriptions/:id/pause | Pausa la suscripción. |
POST | /subscriptions/:id/resume | Reanuda una suscripción pausada. |
Facturas
| Método | Ruta | Descripción |
|---|---|---|
GET | /invoices | Lista facturas (paginado, con filtros). |
GET | /invoices/:id | Detalla una factura. |
GET | /invoices/:id/line-items | Lista los ítems de línea de la factura. |
Los endpoints de creación y de acción (
POST .../publish, POST .../cancel, POST .../pause,
etc.) aceptan el header opcional Idempotency-Key. Reenviar la misma solicitud con la misma
clave devuelve el mismo resultado, sin duplicar la operación. Consulta
Convenciones.Primer contacto (sandbox)
UnGET rápido para confirmar que tu clave de sandbox alcanza la API de Billing y lista las
suscripciones existentes (la lista vendrá vacía si aún no creaste ninguna).
Errores
Los endpoints de Billing siguen el mismo patrón de error de la plataforma. Estados comunes en esta sección:404— recurso no encontrado (suscripción, plan, precio o cliente inexistente).409— operación inválida para el estado actual (ej.: cancelar una suscripción ya cancelada, pausar una suscripciónupfront, o conflicto de validación al crear).400— cuerpo inválido (ej.: campos obligatorios ausentes o combinación de campos no permitida).
Ver también
Planes y Precios
Construye el catálogo de tu oferta recurrente.
Suscripciones
Crea, cancela, pausa y reanuda contratos.
Facturas
Consulta los cobros generados en cada ciclo.
Ciclos y cobranza
Comprende la generación de facturas, el cobro y el avance de ciclo.
Clientes
La suscripción siempre apunta a un cliente.
Webhooks
Recibe notificaciones de factura pagada, fallo de cobro y cambios de estado.

