Saltar al contenido principal

Suscripciones con página de pago prediseñada

Redirige a los clientes a una página de pago alojada por MONEI para activar su suscripción. Esta es la forma más sencilla de comenzar a cobrar pagos recurrentes — no se requiere código de frontend.

Antes de empezar

Cómo funciona

  1. Tu backend crea una suscripción con el importe, la moneda y el intervalo de facturación
  2. La suscripción se activa, devolviendo una redirectUrl para el pago inicial
  3. El cliente es redirigido a la página de pago alojada por MONEI
  4. El cliente completa el pago inicial (incluyendo 3D Secure si es necesario)
  5. Tras el pago, el cliente es redirigido de vuelta a tu completeUrl
  6. MONEI envía webhooks tanto para el pago inicial como para los cambios de estado de la suscripción — los pagos recurrentes se cobran automáticamente en cada intervalo de facturación

Pasos de integración

1. Crear una suscripción (lado del servidor)

Crea una Suscripción en tu servidor con el importe de facturación, la moneda y el intervalo.

POST https://api.monei.com/v1/subscriptions
curl --request POST 'https://api.monei.com/v1/subscriptions' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": 1500,
"currency": "EUR",
"interval": "month",
"intervalCount": 1,
"description": "Pro Plan Monthly",
"customer": {
"name": "John Doe",
"email": "john.doe@example.com"
},
"callbackUrl": "https://example.com/subscriptions/callback",
"paymentCallbackUrl": "https://example.com/payments/callback"
}'

(Reemplaza YOUR_API_KEY con tu clave de API real de MONEI)

Parámetros clave:

  • amount entero positivo — Importe en la unidad monetaria más pequeña (p. ej., 1500 = €15,00).
  • currency cadena — Código de moneda ISO de tres letras (p. ej., EUR).
  • interval cadena — Intervalo de facturación: day, week, month o year.
  • intervalCount número — Número de intervalos entre cada cobro (p. ej., 3 con month = trimestral).
  • callbackUrl cadena — URL que recibe los webhooks de cambio de estado de la suscripción.
  • paymentCallbackUrl cadena — URL que recibe los webhooks de pago de cada cobro recurrente.

Consulta todos los parámetros de la solicitud disponibles.

2. Activar la suscripción (lado del servidor)

Activa la suscripción para iniciar el proceso de facturación. La respuesta incluye una redirectUrl para enviar al cliente a la página de pago alojada por MONEI.

POST https://api.monei.com/v1/subscriptions/{id}/activate
curl --request POST 'https://api.monei.com/v1/subscriptions/YOUR_SUBSCRIPTION_ID/activate' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"completeUrl": "https://example.com/checkout/complete"
}'

(Reemplaza YOUR_SUBSCRIPTION_ID y YOUR_API_KEY)

La respuesta de activación es un objeto Payment para el cobro inicial. Redirige al cliente a nextAction.redirectUrl.

Consulta todos los parámetros de la solicitud disponibles.

3. El cliente completa el pago

El cliente introduce sus datos de pago en la página de pago alojada por MONEI y completa cualquier verificación 3D Secure requerida.

4. El cliente es redirigido de vuelta a tu sitio

El cliente es redirigido a completeUrl con los parámetros de consulta payment_id y subscription_id.

Usa el endpoint obtener pago para comprobar el estado del pago inicial, y el endpoint obtener suscripción para verificar el estado de la suscripción (debería ser ACTIVE o TRIALING).

nota

No confíes únicamente en la redirección para confirmar el pago — utiliza siempre el webhook (siguiente paso) como fuente de verdad autorizada.

5. Gestionar webhooks (lado del servidor)

MONEI envía dos tipos de notificaciones de webhook:

  • Callback de pago — enviado a paymentCallbackUrl para el pago inicial y cada cobro recurrente. El cuerpo de la solicitud contiene el objeto Payment completo.
  • Callback de suscripción — enviado a callbackUrl cuando cambia el estado de la suscripción (p. ej., PENDINGACTIVE). El cuerpo de la solicitud contiene el objeto Subscription completo.

Cada solicitud incluye una cabecera MONEI-Signature. Verifica esta firma para confirmar que la solicitud proviene de MONEI, y devuelve un código de estado HTTP 200 para confirmar la recepción.

Si MONEI no recibe una respuesta 200, la notificación se reintentará.

Antes de pasar a producción

Límites del modo de prueba

En modo de prueba, las suscripciones tienen los siguientes límites:

  • Máximo 3 suscripciones activas por cuenta
  • Las suscripciones se cancelan automáticamente tras 12 pagos
  • Los intervalos de facturación por minuto y hora están disponibles para pruebas más rápidas