Saltar al contenido principal

Pay By Link

¡Envía a tus clientes un enlace único por email, WhatsApp o SMS para que paguen en línea con un solo clic!

Pay By Link

Resumen

Esta página explica cómo crear enlaces de pago desde el MONEI Dashboard o de forma programática usando la API de pagos de MONEI.

Pay By Link genera una URL única para un importe de pago específico que dirige al cliente a una página de pago segura alojada por MONEI.

Crear desde el panel

Puedes crear enlaces de pago directamente desde el MONEI Dashboard sin escribir ningún código.

1. Ve a Pagos

Ve a MONEI Dashboard → Pagos y haz clic en el botón Pay By Link.

Dashboard Payments

2. Rellena el formulario de pago

Rellena los detalles del pago. Algunos campos son siempre obligatorios, mientras que otros dependen de los métodos de pago seleccionados.

Resumen rápido
  • Siempre obligatorios: Importe, Métodos de pago permitidos.
  • Condicionalmente obligatorios: Email del cliente y Dirección de facturación (para métodos específicos).
  • Opcionales: Fecha de expiración, ID de pedido, datos del cliente, descripción, tienda, dirección de envío.
CampoEstadoNotas
ImporteObligatorioImporte del pago en la moneda de tu cuenta
Métodos de pago permitidosObligatorioSe debe seleccionar al menos un método
Fecha de expiraciónOpcionalPor defecto, 7 días desde la creación; debe ser una fecha futura
ID de pedidoOpcionalIdentificador alfanumérico, máximo 40 caracteres
Nombre del clienteOpcional
Email del clienteCondicionalObligatorio cuando se selecciona Multibanco o MB WAY
Teléfono del clienteOpcional
DescripciónOpcionalDescripción personalizada asociada al pago
TiendaOpcionalSolo visible si tienes varias tiendas configuradas
Dirección de facturaciónCondicionalObligatoria cuando se selecciona Multibanco o MB WAY
Dirección de envíoOpcionalSección opcional y colapsable
Create Payment Form

Comportamiento condicional según el método de pago

El formulario se adapta automáticamente en función de los métodos de pago seleccionados.

La Dirección de facturación y el Email del cliente se vuelven obligatorios cuando se selecciona alguno de estos métodos de pago:

  • Multibanco
  • MB WAY
Billing Address

La casilla Captura manual del pago aparece únicamente cuando todos los métodos de pago seleccionados admiten la captura manual:

  • Tarjeta
  • PayPal
  • Bizum

Si se incluye cualquier otro método (p. ej., Multibanco), la opción de captura manual queda oculta.

Manual Capture

3. Revisa y envía el enlace de pago

Tras hacer clic en Crear pago, aparece un modal Enviar solicitud de pago donde puedes revisar los detalles del pago antes de enviar el enlace a tu cliente.

Send Payment Request

Desde este modal puedes configurar:

  • Canal de entrega — Elige cómo enviar el enlace: Email, WhatsApp, SMS o Solicitud de pago.
  • Enviar a — La dirección de email o el número de teléfono del destinatario, según el canal seleccionado.
  • Idioma del cliente — El idioma de la página de pago y la notificación (English, Español, Català, Português, Deutsch, Italiano, Français).
Delivery Channel
Customer Language

El modal también muestra:

  • Una vista previa de la notificación de pago con el ID de pedido, el importe, la fecha y los datos de facturación.
  • Un Enlace permanente y la opción Obtener enlace corto para copiar la URL del pago directamente sin enviar ninguna notificación.

Haz clic en Enviar solicitud de pago para entregar el enlace al cliente a través del canal seleccionado.

Integración con la API

La siguiente sección explica el flujo de API (implementación en el servidor).

Antes de empezar (API)

  • Necesitarás una cuenta MONEI y tus claves de API (de prueba o de producción). Encuéntralas en tu MONEI Dashboard.
  • Usa tus claves en modo de prueba para las pruebas de integración.
  • Asegúrate de que los métodos de pago relevantes estén habilitados en los ajustes de tu cuenta para la página alojada.
  • Puedes monitorizar los pagos de prueba en tu MONEI Dashboard → Pagos (asegúrate de que el Modo de prueba esté activo).

Pasos de integración

Crear y procesar un pago de Pay By Link mediante la API implica crear un pago en tu servidor, enviar el enlace generado al cliente y procesar el estado final del pago mediante webhooks.

1. Crear el pago (lado del servidor)

Crea un Pago en tu servidor con un importe, una moneda y, opcionalmente, datos del cliente.

POST https://api.monei.com/v1/payments
curl --request POST 'https://api.monei.com/v1/payments' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": 110,
"currency": "EUR",
"orderId": "14379133960355",
"description": "Test Shop - #14379133960355",
"customer": {
"email": "email@example.com",
"phone": "+34666555444"
},
"callbackUrl": "https://example.com/checkout/callback",
"completeUrl": "https://example.com/checkout/complete", // Optional: Redirect after payment attempt
"cancelUrl": "https://example.com/checkout/cancel" // Optional: Redirect if user cancels
}'

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

Parámetros principales:

  • amount positive integer: Importe en la unidad monetaria más pequeña.
  • currency string: Código de moneda ISO de tres letras.
  • orderId string: Tu identificador de pedido único.
  • customer.email / customer.phone string: Al menos uno es obligatorio si quieres que MONEI envíe el enlace automáticamente (Paso 2).
  • callbackUrl string: Tu endpoint de servidor para las notificaciones de webhook (imprescindible para el estado final).
  • completeUrl / cancelUrl string (Opcional): URLs para redirigir al cliente tras la interacción.

Consulta todos los parámetros de la solicitud disponibles.

La respuesta contiene el payment.id, necesario para el siguiente paso.

2. Enviar el enlace y gestionar la interacción (servidor / cliente)

Tienes dos opciones principales para hacer llegar el enlace al cliente:

Opción A: MONEI envía el enlace (recomendado por su sencillez)

Realiza una solicitud POST al endpoint /v1/payments/{payment_id}/link. Si proporcionaste customer.email o customer.phone en el Paso 1, MONEI enviará automáticamente el enlace a través del canal correspondiente (email, WhatsApp o SMS).

POST https://api.monei.com/v1/payments/{payment_id}/link
curl --request POST 'https://api.monei.com/v1/payments/{payment_id}/link' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"language": "es", // Optional: Set language for email/SMS template
"channel": "email" // Optional: Force channel (email, whatsapp, sms)
}'

(Reemplaza {payment_id} y YOUR_API_KEY)

Opción B: Tú envías el enlace

El objeto Payment devuelto en el Paso 1 contiene payment.nextAction.redirectUrl. Este es el enlace de pago.

Example Partial Response from Step 1
{
"id": "af6029f80f5fc73a8ad2753eea0b1be0",
// ... other fields ...
"nextAction": {
"type": "CONFIRM",
"mustRedirect": true,
"redirectUrl": "https://secure.monei.com/payments/af6029f80f5fc73a8ad2753eea0b1be0" // <-- This is the Pay By Link URL
}
}

Puedes tomar este redirectUrl y enviárselo a tu cliente a través de tus propios canales de comunicación (email, SMS, mensaje en la app, etc.).

Interacción del cliente:

  1. El cliente hace clic en el enlace.
  2. Es redirigido a la página de pago segura de MONEI.
  3. Elige un método de pago, introduce los datos y completa cualquier autenticación requerida (como 3D Secure).
  4. Tras intentar el pago o cancelarlo, puede ser redirigido a tu completeUrl o cancelUrl si las proporcionaste en el Paso 1.

3. Procesar la notificación de webhook (lado del servidor)

Independientemente de si el cliente es redirigido, MONEI envía el estado final y autoritativo del pago mediante una solicitud HTTP POST asíncrona a la callbackUrl que proporcionaste en el Paso 1. El cuerpo de la solicitud contiene el objeto Payment completo en formato JSON.

Este webhook es la única forma fiable de confirmar el resultado definitivo del pago.

Es imprescindible que:

  1. Verifiques la cabecera MONEI-Signature incluida en la solicitud. Esto confirma que el webhook proviene realmente de MONEI. Consulta la guía de verificación de firmas para los detalles de implementación.
  2. Devuelvas un código de estado HTTP 200 OK inmediatamente al recibir el webhook para confirmar la recepción. Cualquier otro código de estado indica a MONEI que la notificación ha fallado.

Si MONEI no recibe un 200 OK, reintentará el envío del webhook.

Una vez verificada la firma, inspecciona el campo status en el objeto Payment (SUCCEEDED, FAILED, CANCELED, etc.) para determinar si debes completar el pedido o gestionar el fallo.