Generar Link de Pago con Usuario Autenticado
Disponibilidad: Solo SaaS
Este endpoint está disponible exclusivamente para comercios con contrato SaaS. Si no estás seguro de tu modalidad de contrato, consultá con el equipo de MetrePay.
Descripción
Genera un link de pago indicando el usuario que ya se encuentra autenticado en la aplicación del comercio. Está diseñado para integraciones en apps móviles o entornos SaaS donde el comercio gestiona el login de sus usuarios y delega a MetrePay únicamente el procesamiento del pago.
Al abrir el link generado, MetrePay omite el proceso de login propio y abre directamente la vista de pago con la sesión del usuario indicado. Las tarjetas previamente registradas por ese usuario se muestran disponibles, y cualquier tarjeta nueva que se registre queda asociada a su cuenta.
URL
POST /api/ext-app/payrequests/signed-in-user
Autenticación
Header Api-Token con token UUID proporcionado por MetrePay.
Petición
Headers
| Header | Valor |
|---|---|
Api-Token |
Token UUID del comercio |
Content-Type |
application/json |
Cuerpo
| Campo | Condición | Descripción |
|---|---|---|
label |
Requerido | Concepto del pago (producto/servicio). Para pagos recurrentes se recomienda usar conceptos genéricos (ej: "Cuota Social") en lugar de específicos (ej: "Cuota Social del mes de Enero"). |
amount |
Requerido | Monto a pagar. En pagos recurrentes, corresponde al monto del primer pago (puede diferir de las cuotas posteriores para casos de matrículas o costos de suscripción). |
handleValue |
Requerido | Email o número de teléfono del cliente. |
handleLabel |
Requerido | Nombre del cliente. |
customIdentifier |
Opcional | Identificador personalizado del comercio para identificar al cliente (ej: número de cédula, número de socio, código de operación). |
customIdentifier2 |
Opcional | Segundo identificador personalizado del comercio (ej: número de contrato, número de abono). |
singlePayment |
Requerido | true/false. Indica si el pago único está habilitado. Un pago único implica que el cliente realiza un solo pago sin generar recurrencia, por el monto indicado en amount. |
creditAndDebitCard |
Requerido | true/false. Indica si el pago con tarjetas de crédito o débito está habilitado. Debe ser true para pagos recurrentes, ya que las suscripciones funcionan exclusivamente con tarjetas. |
recurrentPayment |
Requerido | true/false. Indica si el pago recurrente está habilitado. |
recurrentPaymentType |
Opcional | "STATIC" (valor por defecto) o "DYNAMIC". Se utiliza "DYNAMIC" para suscripciones de montos variables (por número de factura). Disponible exclusivamente para comercios con contrato SaaS. |
installmentAmount |
Requerido (recurrente STATIC) | Monto de la cuota desde la 2da cuota. Aplica solo cuando recurrentPayment es true y recurrentPaymentType es "STATIC". |
totalPeriods |
Requerido (recurrente STATIC) | Cantidad total de cuotas del pago recurrente, incluyendo la primera. Aplica solo cuando recurrentPayment es true y recurrentPaymentType es "STATIC". |
dayOfMonth |
Requerido (recurrente STATIC) | Día del mes para aplicar los débitos desde la 2da cuota. Valores entre 1 y 28. Aplica solo cuando recurrentPayment es true y recurrentPaymentType es "STATIC". |
monthForSecondInstallment |
Requerido (recurrente STATIC) | Mes en que se establece la fecha de la segunda cuota. 0 = mismo mes de creación, 1 = mes siguiente, 2 = mes subsiguiente, etc. Aplica solo cuando recurrentPayment es true y recurrentPaymentType es "STATIC". |
payWaitHours |
Opcional | Cantidad de horas de vigencia del link de pago. 0 = vigencia ilimitada. |
redirectUrl |
Opcional | URL a la que será redirigido el usuario luego de realizar el pago. Requiere configuración previa de URL de callback por parte de MetrePay. |
noLoginRequired |
Opcional | true/false. Si se envía true, solo se acepta si la empresa tiene habilitada esta opción. Si no se envía, equivale a false. |
documentNumber |
Opcional | Número de documento en formato string. Requerido cuando noLoginRequired es true. |
signedInUser |
Requerido | Objeto JSON con los datos del usuario autenticado en la aplicación del comercio. |
signedInUser.email |
Requerido | Email del usuario. Debe tener formato de email válido; de lo contrario se retorna 400 Bad Request. |
signedInUser.firstName |
Requerido | Nombre del usuario. |
signedInUser.lastName |
Requerido | Apellido del usuario. |
Ejemplo
{
"label": "Cuota social",
"amount": 200000,
"handleValue": "juanperez@example.com",
"handleLabel": "Juan Pérez",
"customIdentifier": "11",
"customIdentifier2": "22",
"singlePayment": false,
"creditAndDebitCard": true,
"recurrentPayment": true,
"installmentAmount": 180000,
"totalPeriods": 24,
"dayOfMonth": 28,
"monthForSecondInstallment": 1,
"payWaitHours": 96,
"signedInUser": {
"email": "juanperez@example.com",
"firstName": "Juan",
"lastName": "Pérez"
}
}
Respuesta
Respuesta Exitosa
| Campo | Descripción |
|---|---|
id |
Número del ticket MP. |
currency |
Tipo de moneda. |
amount |
Monto del link de pago (o del primer pago en caso de suscripción). |
expireTime |
Fecha y hora de vencimiento del link. |
statusId |
Código del estado del pago (ver Definiciones Base). |
slug |
Prefijo del link de pago (embebido en la URL). |
publicPayUrl |
Link de pago a compartir con el cliente. Al abrirse, la sesión del usuario indicado en signedInUser se inicia automáticamente. |
userId |
ID del usuario en MetrePay correspondiente al email indicado en signedInUser.email. Si el usuario no existía previamente, se crea y activa de forma automática. |
{
"id": 10914,
"currency": "PYG",
"amount": "200000.00",
"expireTime": "2026-05-18 11:50:07",
"statusId": 100,
"slug": "p6a05ef2fdd17f",
"publicPayUrl": "https://test.metrepay.com/pay/tu-comercio/item/p6a05ef2fdd17f",
"userId": 1233
}
Respuestas de Error
| Código HTTP | Descripción |
|---|---|
| 400 | Petición inválida (campos requeridos faltantes, formato de email incorrecto u otro error de formato). |
| 401 | Token de autenticación inválido o ausente. |
| 422 | Error de validación (ej: endpoint no habilitado para el comercio). |
Notas
- Este endpoint está disponible exclusivamente para comercios con contrato SaaS. Para otros tipos de contrato, la petición será rechazada.
- El campo
userIden la respuesta identifica al usuario en MetrePay. Si el email indicado ensignedInUser.emailya corresponde a un usuario existente, se retorna su ID. Si no existe, se crea y activa automáticamente, y se retorna el nuevo ID asignado. - El link generado abre directamente la vista de pago con la sesión del usuario indicado, sin solicitar login. Las tarjetas previamente registradas por ese usuario estarán disponibles, y cualquier tarjeta nueva que se registre quedará asociada a su cuenta.
- Para el campo
monthForSecondInstallment: si se establece28como día de débito y la suscripción se crea el 2 de enero, el valor0implica que la 2da cuota se cobra el 28 de enero; el valor1, el 28 de febrero; el valor2, el 28 de marzo. Las cuotas siguientes se agendan consecutivamente.