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

terminal
$ npm install @cobrolisto/sdk

2. Crea un checkout

Con un producto creado en el dashboard (por ejemplo plan-pro), genera un link de pago:

checkout.ts
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.

access.ts
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.

EventoSignificado
payment.succeededEl proveedor confirmó un pago.
payment.failedUn intento de pago falló.
subscription.createdSe creó una suscripción.
subscription.renewedUna renovación fue exitosa.
subscription.cancelledEl cliente o el sistema canceló.
entitlement.grantedSe activó un acceso para el cliente.
entitlement.revokedSe suspendió un acceso.
invoice.createdSe 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.