Creation Subscription Mandate

Creation Subscription Mandate

Qué hace

Crea un mandato/deuda de tipo SUBSCRIPTION, con cobro recurrente mensual o personalizado.

Cuándo usarlo

Se utiliza para cobros recurrentes cuyas cuotas futuras deben generarse automáticamente según la periodicidad y las condiciones de la suscripción, sin tener que cargarlas una a una.

Endpoint

POST /mandate

Autenticación

Envía x-api-key y Authorization: Bearer <token> con las credenciales del ambiente de la solicitud. Obtén el token mediante el proceso de autenticación.

Headers requeridos

  • country, commerce y channel: contexto comercial autorizado para la solicitud.
  • requestDateTime: fecha y hora de la solicitud.
  • correlationId: identificador de la solicitud. Se recomienda usar un UUID para facilitar su seguimiento.
  • processId y salesExecutiveId: valores obligatorios en esta operación.

Consulta los parámetros de la operación para conocer las restricciones de cada header y utiliza los valores asignados a tu integración.

Campos principales

CampoDescripción
customer.userId o customer.internalUserIdIdentifica al cliente. Usa solo una variante segun el ejemplo.
mandate.idID externo unico del comercio para el mandato/deuda.
mandate.typeTipo del producto: DYNAMIC, PERMANENT, SUBSCRIPTION u ONEPAY.
mandate.name / mandate.detailTexto visible o descriptivo del compromiso.
mandate.chargesConfiguracion de vigencia, monto, moneda y periodicidad segun el tipo.
paymentMethodsMetodos habilitados para este mandato; si se omite, se usan los disponibles para el comercio.
installmentsCuotas iniciales cuando el producto lo permite.
metadataDatos propios del comercio para conciliacion.
urls.callback, urls.activationWebhook, urls.paymentWebhookURLs de retorno/notificacion si tu flujo las usa.
mandate.charges.paymentPeriodConfigura periodicidad mensual o personalizada.

Variantes soportadas

  • Recurrencia mensual con IDs externos.
  • Recurrencia mensual con IDs internos.
  • Recurrencia personalizada con IDs externos.
  • Recurrencia personalizada con IDs internos.

Reglas de negocio

  • Si envías validateCreation: true y mandate.serviceId, desarrollo comprueba si ese serviceId ya existe. La prevalidación de producción no realiza esa comprobación.
  • El usuario debe estar asociado al comercio en este ambiente. Regístralo o asócialo antes mediante Create User.
  • En suscripciones mensuales, mandate.charges.cumulative y mandate.charges.paymentPeriod.proportionalPayment son obligatorios. Ambos admiten false.
  • Usa mandate.type=SUBSCRIPTION.
  • Para periodicidad personalizada, informa la frecuencia requerida por el schema.
  • Mantén montos, moneda y fechas consistentes con el periodo de cobro.

Respuesta exitosa

Si creas el compromiso sin firma, la respuesta incluye statusCode, message y payload. Según el resultado del flujo, los datos se entregan en payload.customer, payload.mandate, payload.installments y payload.activation.

Guarda los identificadores del cliente, del mandato y de las cuotas que recibas para utilizarlos en consultas posteriores. Si la respuesta incluye un enlace de activación, lo encontrarás en payload.activation.url.

Ejemplo recomendado

El ejemplo configura el monto mensual en paymentPeriod y envía la primera cuota. La primera cuota y el monto periódico coinciden en 15000 PESOS; payDay es 5, proportionalPayment es false y cumulative es false.

Los datos son ficticios. Sustituye customer.internalUserId por el valor real devuelto por POST /user, usa un mandate.id nuevo y reemplaza las URLs por las de tu integración. El medio seleccionado debe estar habilitado para el comercio. Estos cuerpos se envían a POST /mandate con los headers de la operación. Los ejemplos no incluyen firma documental.

La URL de la respuesta es ilustrativa. En la integración, utiliza exactamente payload.activation.url devuelto por Forpay; no construyas el enlace a partir de su ejemplo.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Body Params de creación de mandato según el tipo seleccionado.

Body de creación de mandato suscripción - cobro periódico

customer
required

Identifica al usuario asociado al comercio mediante exactamente uno de userId o internalUserId.

mandate
object
required
boolean

Indicador que determina si se muestra la ventana de Detalle de Compra. (Opcional)

paymentMethods
array
length ≥ 1

Selecciona medios habilitados para este tipo de mandato y para tu comercio. Cada elemento puede ser un nombre público o su ID entero. Se admiten listas mixtas. Al omitir el campo se utilizan los medios disponibles del comercio.

paymentMethods
number
required

Cantidad de cuotas a crear. Se deben enviar installments en una cantidad exactamente igual al número ingresado.

installments
array of objects
required
length ≥ 1

Listado de cuotas de la suscripción. La primera cuota debe tener installmentDueDate futura y coherente con startDate de chargesy el período.

installments*
metadata
object

Identificadores clave de nuestros clientes

signature
object

Bloque opcional de firma. Si no se envía, no se crea flujo de firma asociado al mandato. (Opcional)

urls
object
boolean
Defaults to false

(Opcional) Si se envía en true, antes de crear el recurso Forpay ejecuta validaciónes previas de consistencia y unicidad. Si alguna validación falla, la API responde con 400 y un array errors[] que contiene todos los códigos detectados, y la creación se aborta sin tocar la base de datos. Si se omite o se envía false, el flujo se ejecuta directamente (comportamiento histórico).

Headers
string
enum
required

Identificador de país donde proviene la solicitud

Allowed:
string
required
length between 5 and 30

Identificador único del comercio asociado definido por forpay

string
required
length ≥ 3

Tipo de plataforma usada por el comercio para integrarse con Forpay

date-time
required
Defaults to 2026-07-09T14:35:12.500Z

Fecha y hora de la solicitud en formato ISO 8601. En esta documentación se muestra un ejemplo precargado; al consumir la API debe enviarse la fecha/hora real de la solicitud.

string
required
length ≥ 1

Identificador de trazabilidad obligatorio. Se recomienda usar un UUID único por solicitud.

string
required
length ≥ 5

Proceso de la solicitud. Para el flujo de nuevas integraciones documentado, utiliza HYBRID.

string
required
length ≥ 1

Identificador del ejecutivo que realiza la venta

string
required

Clave x-api-key

Responses

Callbacks
Language
Credentials
URL
LoadingLoading…
Click Try It! to start a request and see the response here! Or choose an example:
application/json