Creation Dynamic Mandate

Creation Dynamic Mandate

Qué hace

Crea un mandato/deuda de tipo DYNAMIC. Este producto permite crear cuotas iniciales o cargar cuotas posteriormente mediante POST /installments.

Cuándo usarlo

Se utiliza para registrar un compromiso y cargar sus cuotas posteriormente, a medida que se conocen los cobros. Es adecuado para cobros variables o que se informan durante la vigencia del mandato.

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.

Variantes soportadas

  • Cliente por customer.userId externo.
  • Cliente por customer.internalUserId interno Forpay.
  • Creacion con bloque signature cuando se requiere iniciar firma junto con el mandato.

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.
  • Para este endpoint documentado como Dynamic, usa mandate.type=DYNAMIC.
  • mandate.id debe ser unico por comercio.
  • needPayNow normalmente debe ser false salvo flujos acordados de cobro inmediato.
  • Si incluyes installments, cada cuota debe tener ID externo unico.

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

Este ejemplo crea únicamente el mandato dinámico. No incluye installments ni installmentsNumber. La carga posterior de cuotas se muestra en Flujo de integración y Create Installments.

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 dinámico

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

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

installments
array of objects

Listado de cuotas ingresadas a cobrar con el mandato

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