Descripción general del proceso
- Tu servidor crea un plan de suscripción para una tienda.
- Tu servidor crea una suscripción para un comprador y recibe un
acceptanceUrl. - Compartes el
acceptanceUrlcon el comprador. - El comprador abre el enlace, valida su identidad y registra su tarjeta en Confío.
- Confío activa la suscripción y procesa los cobros recurrentes automáticamente.
- Tu plataforma se sincroniza mediante webhooks y usa consultas
GET/Listpara conciliación.
Requisitos previos
- Un token de acceso válido a la API de Confío.
Debes contactarnos para generar el token. Una vez generado, te recomendamos almacenarlo en un lugar seguro y no compartirlo.
- IID de la tienda (
{store}). Puedes obtenerlo conGET /v1/stores. - La funcionalidad de suscripciones habilitada para tu organización.
Si la funcionalidad no está habilitada, los endpoints de creación devuelven
403con el mensajeSubscriptions feature is not active. - Un endpoint de webhooks configurado si necesitas sincronización automática de estados y cobros.
Conceptos clave
Plan de suscripción
Un plan define los términos recurrentes:displayName: nombre visible del plan.amountCentsycurrencyCode: monto regular de cada ciclo.billingCycleFrequency:WEEKLYoMONTHLY.billingCycleInterval: número de períodos entre cobros. Por ejemplo,1mensual o3trimestral si la frecuencia esMONTHLY.trialPeriodDays: días de prueba antes del primer cobro recurrente. Usa0si no hay prueba.
Suscripción
Una suscripción vincula a un comprador con un plan. Al crearla, Confío devuelve una URL de aceptación para que el comprador complete el proceso. Campos importantes:name: identificador estable de la suscripción, por ejemplostores/{store}/subscription-plans/{plan}/subscriptions/{subscription}.status: estado actual de la suscripción.acceptanceUrl: enlace hospedado por Confío para aceptar la suscripción. Solo aparece cuando la suscripción está enPENDING_ACCEPTANCE.firstChargeAmountCents: monto opcional solo para el primer ciclo de cobro.redirectUri: URL opcional a la que Confío puede redirigir al comprador después de aceptar la suscripción.
Estados de una suscripción
El flujo principal tiene dos momentos: primero el comprador acepta la suscripción; después Confío procesa cobros y reintentos.
Mientras la suscripción está
ACTIVE, cada cobro exitoso mantiene la
suscripción activa y avanza al siguiente ciclo de facturación.Paso 1: obtener la tienda
{store} en las siguientes solicitudes.
Paso 2: crear un plan de suscripción
Paso 3: crear una suscripción para el comprador
name de la suscripción y comparte el acceptanceUrl con el comprador.
Sobre firstChargeAmountCents
firstChargeAmountCents es opcional y solo aplica al primer ciclo de cobro:
- Si el plan no tiene trial, el primer cobro ocurre durante la aceptación del comprador.
- Si el plan tiene trial, el primer cobro recurrente ocurre al finalizar el período de prueba.
- Los ciclos posteriores usan el
amountCentsregular del plan.
Paso 4: enviar el enlace de aceptación
Envía elacceptanceUrl al comprador por tu canal preferido. En ese enlace, el comprador:
- Valida su identidad.
- Revisa los términos de la suscripción.
- Registra su tarjeta en Confío.
- Acepta la suscripción.
ACTIVE o TRIALING, según el trialPeriodDays del plan.
Paso 5: sincronizar estados con webhooks
Para mantener tu sistema actualizado, configura webhooks y escucha estos eventos:subscription.subscriptionStatusChanged: cambios de estado de la suscripción, por ejemplo creación, aceptación, mora, suspensión o cancelación.subscription.billingStatusChanged: resultado de cada cobro recurrente, exitoso o fallido.
Authorization, X-Confio-Event y X-Confio-Checksum.
Consultar suscripciones
Consultar una suscripción
Listar suscripciones de una tienda
Cancelar una suscripción
CANCELED.
Reintentos de cobro
Cuando un cobro falla, Confío mueve la suscripción aPAST_DUE y reintenta automáticamente.
Si se agotan los intentos del ciclo, la suscripción puede pasar a
SUSPENDED. Si los fallos continúan durante varios ciclos, Confío puede cancelarla automáticamente.
Errores comunes
400: datos inválidos, por ejemplo teléfono fuera de formato E.164,redirectUrisin HTTPS o monto menor al mínimo permitido.401: falta o es inválido el Bearer token.403: la funcionalidad de suscripciones no está habilitada para la organización.404: tienda, plan o suscripción no encontrada o sin permisos.5xx: error interno o dependencia temporal. Reintenta de forma segura desde tu backend.
Mejores prácticas
- Guarda el
namedel plan y de la suscripción en tu sistema. - Envía el
acceptanceUrlal comprador tan pronto crees la suscripción. - Usa webhooks como fuente principal de sincronización.
- Usa
GETyListcomo mecanismos de conciliación. - Diseña tu procesamiento de webhooks para ser idempotente.
- No recolectes datos de tarjeta ni intentes aceptar suscripciones desde tu backend.