Traducida del inglés. Si hay alguna diferencia, la página en inglés es la referencia. Leer en inglés
Gestionar la suscripción
Deja que una app o un agente gestione toda la suscripción de Nembol de la tienda (suscribirse, subir o bajar de plan, pasar a anual, actualizar la tarjeta, cancelar y renovar) mientras la persona siempre confirma en la página del proveedor de pago.
Los endpoints de facturación cubren todo el ciclo de vida de la suscripción, con una regla: la API prepara, la persona confirma, el proveedor de pago ejecuta. A través de la API no se mueve dinero. Toda acción que implique un pago devuelve un enlace a la propia página del proveedor (Stripe Checkout, el portal de cliente de Stripe o PayPal), donde la persona ve el importe exacto y confirma.
Tu clave necesita billing:read para leer y billing:manage para crear enlaces.
Estos endpoints siguen funcionando cuando la tienda ya no tiene un plan con API.
Así es como vuelve una tienda que bajó de plan o cuya suscripción caducó.
1. Consultar lo que es posible
curl https://api.nembol.com/rest/v1/billing \
-H "Authorization: Bearer $NEMBOL_API_KEY"{
"object": "billing",
"billing_source": "stripe",
"managed_elsewhere": null,
"plan": { "key": "enterprise", "name": "Enterprise", "interval": "month" },
"status": "active",
"current_period_end": "2026-11-08T07:41:43.000Z",
"cancel_at_period_end": false,
"payment_method": { "brand": "visa", "last4": "4242" },
"usage": { "products": 350, "max_accounts_on_one_channel": 3, "team_members": 0 },
"plans": [
{
"key": "pro",
"name": "Pro",
"limits": { "products": 2000, "accounts_per_channel": 2, "team_members": 0 },
"prices": {
"month": { "amount": 49, "currency": "usd", "selectable": false,
"reason": "The store has 3 accounts on one channel; Pro allows 2 per channel." },
"year": { "amount": 441, "currency": "usd", "selectable": false, "reason": "…" }
}
}
// … basic, enterprise, enterprise_plus
],
"invoices": [ { "amount": "79.00", "status": "paid", "url": "https://invoice.stripe.com/…", "created_at": "…" } ],
"actions": { "change_plan": true, "update_payment_method": true, "cancel": true, "manage": true }
}plans[].prices.*.selectable te indica qué cambios de plan se aceptan
ahora mismo, y reason te dice por qué no. Muéstraselo a la persona: está
escrito para ella.
2. Cambiar el plan
Suscribirse, reactivar, subir de plan, bajar de plan y cambiar entre mensual y anual son todos la misma llamada:
curl -X POST https://api.nembol.com/rest/v1/billing/plan_change_link \
-H "Authorization: Bearer $NEMBOL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"plan": "enterprise_plus", "interval": "year",
"return_url": "https://app.example.com/billing/done"}'{
"object": "billing_link",
"action": "change_plan",
"provider": "stripe",
"plan": "enterprise_plus",
"interval": "year",
"url": "https://billing.stripe.com/p/session/…"
}La página que se abre depende de la tienda:
| Tienda | Página |
|---|---|
| En prueba, cancelada o todavía sin tarjeta | Stripe Checkout: introducir una tarjeta y suscribirse |
| Suscripción de Stripe activa | Página de confirmación de Stripe con el importe prorrateado |
| Facturada a través de PayPal | Página de aprobación de PayPal |
| Facturada a través de Shopify, Wix o WooCommerce.com | No disponible aquí: billing_managed_elsewhere |
No cambia nada hasta que la persona confirma. Después, GET /billing
muestra el nuevo plan.
Los límites son los mismos que en el panel
Un cambio de plan se rechaza, antes de crear ningún enlace, cuando el uso de la tienda no cabe en el plan de destino:
{
"error": {
"type": "invalid_request_error",
"code": "plan_limits_exceeded",
"message": "The store has 3 accounts on one channel; Pro allows 2 per channel. Reduce usage first, or pick a larger plan.",
"param": "plan"
}
}Se comprueban los productos, las cuentas conectadas por canal y los miembros del equipo.
Para bajar de plan, reduce primero el uso (por ejemplo, desconecta una cuenta de
canal con POST /channel_accounts/{id}/disconnect) y vuelve a pedirlo.
3. Tarjeta, cancelación, renovación
| Objetivo | Llamada | Qué hace la persona |
|---|---|---|
| Añadir o sustituir la tarjeta | POST /billing/payment_method_link | Actualiza la tarjeta en Stripe (o el pago automático en PayPal) |
| Cancelar | POST /billing/cancel_link | Confirma en Stripe y puede indicar un motivo. El acceso continúa hasta current_period_end |
| Deshacer una cancelación, ver facturas | POST /billing/manage_link | Hace clic en No cancelar la suscripción en el portal de Stripe |
| Reiniciar la prueba gratuita | POST /billing/restart_trial | Nada. Es gratis e inmediato cuando cumple los requisitos |
Una prueba no tiene nada que cancelar: cancel_link responde nothing_to_cancel.
Una nueva prueba solo está disponible para tiendas canceladas que nunca reiniciaron una
y nunca pagaron, o cuyo último periodo de pago terminó hace más de 3 meses
(si no, trial_not_available).
URL de retorno
return_url es opcional (por defecto es el panel de Nembol). Si
pasas una, debe empezar por una URL registrada para la tienda. Es la misma
lista de permitidas que usan las conexiones de canales (POST /redirect_urls, o Configuración → Desarrolladores → URL de redirección).
Buenas prácticas para agentes
- Crea un enlace justo antes de dárselo a la persona, y no lo guardes: los enlaces duran poco.
- Di siempre qué va a pasar antes de enviar el enlace ("esto te cambia a Enterprise+ anual, 1.161 $/año; Stripe mostrará el importe prorrateado").
- Consulta
GET /billingcuando la persona vuelva en lugar de dar por hecho que el cambio se produjo. Puede que haya cerrado la página.
Última actualización el 20 de octubre de 2026
¿Necesitas ayuda?
Escríbenos y te responde una persona, normalmente en un día laborable.
Gestionar errores y reintentos
Los tres lugares donde aparecen los errores y cómo construir reintentos que nunca empeoren las cosas.
Programa de partners: gestiona muchas tiendas
Para proveedores de software (ERP, agencias) que gestionan Nembol para sus propios clientes: una empresa por cliente, una clave, una factura.