Saltar al contenido principal

Suscripciones con la página de pago alojada

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 — no se requiere código de frontend.

Antes de empezar​

Tu clave API está en MONEI Dashboard → Configuración → Acceso a API:

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 (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., PENDING → ACTIVE). 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