Skip to content

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 userId en la respuesta identifica al usuario en MetrePay. Si el email indicado en signedInUser.email ya 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 establece 28 como día de débito y la suscripción se crea el 2 de enero, el valor 0 implica que la 2da cuota se cobra el 28 de enero; el valor 1, el 28 de febrero; el valor 2, el 28 de marzo. Las cuotas siguientes se agendan consecutivamente.