Documentación
Empieza en cinco minutos
CobroListo expone una API pequeña a propósito: defines qué vendes, cuánto cuesta y qué recibe el cliente. El resto — webhooks, reintentos, estados y documentos — ocurre solo.
Quickstart
1. Instala el SDK
$ npm install @cobrolisto/sdk2. Crea un checkout
Con un producto creado en el dashboard (por ejemplo plan-pro), genera un link de pago:
const checkout = await cobroListo.checkout.create({
product: "plan-pro",
customer: user.id
});3. Consulta el acceso
Tu aplicación pregunta si el usuario tiene acceso. CobroListo resuelve toda la lógica detrás.
const access = await cobroListo.access.check({
customer: user.id,
feature: "unlimited_projects"
});→ respuesta
{
granted: true,
reason: "subscription_active",
plan: "plan-pro"
}SDK
El SDK @cobrolisto/sdk cubre checkout, clientes, suscripciones y accesos. Cada llamada acepta una idempotency key opcional; si no la envías, CobroListo genera una por ti para que un reintento nunca duplique una operación.
- cobroListo.checkout.create(...)
- cobroListo.customers.get(...)
- cobroListo.subscriptions.cancel(...)
- cobroListo.access.check(...)
Webhooks normalizados
Da igual el proveedor: CobroListo traduce cada notificación a un evento normalizado, firmado y con idempotency key. Tu app escucha un solo formato.
| Evento | Significado |
|---|---|
| payment.succeeded | El proveedor confirmó un pago. |
| payment.failed | Un intento de pago falló. |
| subscription.created | Se creó una suscripción. |
| subscription.renewed | Una renovación fue exitosa. |
| subscription.cancelled | El cliente o el sistema canceló. |
| entitlement.granted | Se activó un acceso para el cliente. |
| entitlement.revoked | Se suspendió un acceso. |
| invoice.created | Se emitió un documento tributario. |
Pruébalo ahora — API sandbox local
Este proyecto expone el pipeline real en modo sandbox. Con el servidor corriendo puedes golpearlo directo:
- POST /api/v1/checkouts { product, customer }
- POST /api/v1/access/check { customer, feature }
- POST /api/webhooks/mock { type, ref, customerId, … }
O usa el panel Sandbox en vivo en Dashboard → Webhooks para ver la idempotencia funcionando con dos clics.
Nota: esta documentación describe el producto en construcción. La API pública puede cambiar antes del lanzamiento estable.