Crear una suscripción
Suscribir a un cliente por API requiere tener antes un Customer y, en la mayoría de los casos, un PaymentMethod tokenizado.
Si prefieres que Rekurra maneje la tokenización de la tarjeta por ti, usa el checkout hospedado en lugar de este flujo manual.
Crea el cliente
curl
curl -X POST https://api.rekurra.dev/v1/customers \
-H "Authorization: Bearer rk_test_XXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{ "email": "cliente@ejemplo.com", "name": "María Pérez" }'Tokeniza el método de pago
Obtén la configuración de tokenización de tu cuenta de Wompi:
curl
curl https://api.rekurra.dev/v1/payment-methods/setup \
-H "Authorization: Bearer rk_test_XXXXXXXXXXXXXXXXXXXXXXXX"Con el token que devuelve Wompi tras tokenizar la tarjeta en tu frontend,
crea el PaymentMethod:
curl
curl -X POST https://api.rekurra.dev/v1/payment-methods \
-H "Authorization: Bearer rk_test_XXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cus_01HZ...",
"type": "CARD",
"token": "tok_test_...",
"acceptance_token": "eyJhbGciOi...",
"accept_personal_auth": "eyJhbGciOi...",
"set_default": true
}'Crea la suscripción
curl
curl -X POST https://api.rekurra.dev/v1/subscriptions \
-H "Authorization: Bearer rk_test_XXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: sub-crear-maria-2026-08-24" \
-d '{
"customer_id": "cus_01HZ...",
"plan_id": "plan_01HZ...",
"cycle": "monthly",
"payment_method_id": "pm_01HZ..."
}'JavaScript (fetch)
const res = await fetch("https://api.rekurra.dev/v1/subscriptions", {
method: "POST",
headers: {
Authorization: "Bearer rk_test_XXXXXXXXXXXXXXXXXXXXXXXX",
"Content-Type": "application/json",
"Idempotency-Key": "sub-crear-maria-2026-08-24",
},
body: JSON.stringify({
customer_id: "cus_01HZ...",
plan_id: "plan_01HZ...",
cycle: "monthly",
payment_method_id: "pm_01HZ...",
}),
});
const subscription = await res.json();Python (requests)
import requests
res = requests.post(
"https://api.rekurra.dev/v1/subscriptions",
headers={
"Authorization": "Bearer rk_test_XXXXXXXXXXXXXXXXXXXXXXXX",
"Content-Type": "application/json",
"Idempotency-Key": "sub-crear-maria-2026-08-24",
},
json={
"customer_id": "cus_01HZ...",
"plan_id": "plan_01HZ...",
"cycle": "monthly",
"payment_method_id": "pm_01HZ...",
},
)
subscription = res.json()⚠️
Usa siempre Idempotency-Key al crear suscripciones desde un flujo que
pueda reintentarse (por ejemplo, un botón que el usuario pueda hacer clic
dos veces) — evita crear suscripciones duplicadas.
Ver todos los campos, filtros y acciones (cancel, pause, resume,
change-plan, charge-now) en API → Subscriptions.