México
Integración de múltiples métodos de pago
En México, ofrecemos productos de pago como transferencias bancarias (SPEI), pagos en efectivo (Cash) y tajets de crédito y débito.

Productos de pago actualmente soportados:
Efectivo
SPEI
tajets de crédito y débito
Proceso de pago

1、El usuario realiza un pedido en el sitio/app del comerciante, abre la pasarela de pago agregada y elige el método de pago deseado para pagar;
2、El comerciante envía una solicitud de pago a Supefina;
3、Supefina devuelve la dirección de pago correspondiente;
4、El comerciante abre esa dirección del lado del usuario;
5、El usuario verifica y paga según las indicaciones de la página;
6、El usuario realiza el pago con éxito;
7、Supefina notifica al comerciante sobre la información de éxito del pago.
Dirección de solicitud
SandBox
POST
https://api.supefina.tech/api/supefina/transactions/payin
Producción
POST
https://api.supefina.net/api/supefina/transactions/payin
Parámetros de solicitud
Encabezado de solicitud
Content-Type
application/json
Cuerpo de solicitud
merorderNo
String
Sí
Número de pedido del comerciante
customerName
String
Sí
Nombre del usuario
orderAmount
BigDecimal
Sí
Monto del pedido (solo se admite el pago de monto fijo)
Si la cantidad pagada por el usuario no coincide con el monto del pedido, realizaremos un reembolso correspondiente. Si no es posible reembolsar, un representante operativo se pondrá en contacto.
Si el usuario realiza el pago fuera del período de validez de la caja de cobro, también procederemos con el reembolso correspondiente. Si no es posible reembolsar, un representante operativo se pondrá en contacto.
Las operaciones de reembolso aplicarán comisiones según el método de pago, por favor tome nota.
Puede contactar con el personal operativo para conocer el monto de la comisión.
merld
String
Sí
ID del comerciante
Ruta para obtener el ID del comerciante: Panel de comerciante Supefina - Gestión de comerciantes - Información básica - ID del comerciante
checkOut
Boolean
Sí
Condición para mostrar la caja de cobro agregada
En este modo, solo se admite pasar el valor como verdadero true
description
String
Sí
Descripción de pago
No puede contener símbolos especiales, y la longitud no debe exceder los 200 caracteres.
nonceStr
String
Sí
Cadena aleatoria
La longitud no puede exceder 32 caracteres
payProduct
String
No
Tipo de pago Si no se especifica, se mostrará la caja de cobro con todos los métodos de pago configurados por el comerciante. Si se especifican métodos de pago particulares, la caja de cobro solo mostrará esos métodos. Nota: Si se especifica un método de pago que no está configurado, se devolverá un mensaje de error.
expireTimeL
Long
No
Tiempo de expiración de la caja de cobro (en segundos)
Si no se especifica, el valor predeterminado es 12 horas.
Si el tiempo proporcionado es menor de 3 minutos o mayor de 7 días, también se establecerá por defecto en 12 horas.
requestData
Object
No
Parámetro adicional Nota: Si el comerciante ha configurado el método de pago en efectivo, este parámetro es obligatorio.
businessUnit
Object
Sí
Unidad de negocio
name
String
Sí
Nombre de la unidad de negocio
key
String
Sí
Identificador único de la unidad de negocio
showHtmlFlag
String
Sí
Mostrar página de cobro en HTML.
Página de cobro URL:1
repeat
Boolean
No
¿La Clabe se reutiliza?
Nota: Si se especifica payProduct
como 15
(SPEI), este parámetro es obligatorio.
true: Uso múltiple
productName
String
Sí
Nombre del producto
Máximo 50 caracteres Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
String
No
Correo electrónico del usuario
3-256 caracteres Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
receiverAddressMain
String
No
Dirección de recepción, calle
0-50 caracteres Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
receiverAddressExtra
String
No
Dirección de recepción, número
0-50 caracteres Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
receiverCity
String
No
Dirección de recepción, Ciudad
0-50 caracteres Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
receiverProvince
String
No
Dirección de recepción, Provincia o Estado
0-40 caracteres caracteres:https://en.wikipedia.org/wiki/ISO_3166-2z
Ejemplo:NY Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
receiverCountry
String
No
País de receptor
Referencia:Tabla de diccionario-Código del país
Ejemplo: BRA Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
receiverZipCode
String
No
Código Postal
0-12 letras o números Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
receiverPhone
String
No
Teléfono de receptor
5-20 caracteres, Ejemplo: +1 123456789 Si el comerciante ha configurado el método de pago con tarjeta, este parámetro es obligatorio.
Ejemplo de solicitud
1 , Habilitar todos los métodos de pago — No envíes el parámetro payProduct
.
{
"merOrderNo": "20240920195501",
"sign": "xxxx",
"requestData": {
"businessUnit": {
"key": "11",
"name": "123456"
},
"showHtmlFlag": "1"
},
"countryId": "MEX",
"nonceStr": "20240920195501",
"customerName": "xx",
"orderAmount": 100,
"merId": "xxxxx",
"checkOut": "true",
"currency": "MXN",
"callbackUrl": "xxxx",
"productName": "test1",
"email": "xxxx",
"receiverAddressMain": "xxxx",
"receiverAddressExtra": "xx",
"receiverCity": "xxxx",
"receiverCountry": "MEX",
"receiverPhone": "+86123456789012345",
"receiverProvince": "Example city",
"receiverZipCode": "xxx",
"description": "supefina",
"expireTimeL": 3600
}
2, Habilitar métodos de pago parciales (efectivo y SPEI) — No enviar el parámetro payProduct.
{
"merOrderNo": "20240920195501",
"sign": "xxxx",
"requestData": {
"businessUnit": {
"key": "1098345673212",
"name": "epay"
},
"showHtmlFlag": "1"
},
"countryId": "MEX",
"nonceStr": "20240920195501",
"customerName": "xxx",
"orderAmount": 100,
"merId": "xxxxx",
"checkOut": "true",
"currency": "MXN",
"callbackUrl": "xxxx",
"description": "supefina",
"expireTimeL": 3600
}
3, Habilitar métodos de pago parciales (efectivo y tarjeta) — No enviar el parámetro payProduct
.
{
"merOrderNo": "20240920195501",
"sign": "xxxx",
"requestData": {
"businessUnit": {
"key": "11",
"name": "123456"
},
"showHtmlFlag": "1"
},
"countryId": "MEX",
"nonceStr": "20240920195501",
"customerName": "xx",
"orderAmount": 100,
"merId": "xxxxx",
"checkOut": "true",
"currency": "MXN",
"callbackUrl": "xxxx",
"productName": "test1",
"email": "xxxx",
"receiverAddressMain": "xxxx",
"receiverAddressExtra": "xx",
"receiverCity": "xxxx",
"receiverCountry": "MEX",
"receiverPhone": "+86123456789012345",
"receiverProvince": "Example city",
"receiverZipCode": "xxx",
"description": "supefina",
"expireTimeL": 3600
}
5, Especificar los métodos de pago.
payProduct:03
{
"merOrderNo": "20240920195501",
"sign": "xxxxxx",
"requestData": {
"businessUnit": {
"key": "111",
"name": "123456"
},
"showHtmlFlag": "1"
},
"payProduct":"03",
"countryId": "MEX",
"nonceStr": "20240920195501",
"customerName": "xxx",
"orderAmount": 100,
"merId": "xxxxx",
"checkOut": "true",
"currency": "MXN",
"callbackUrl": "xxxxxx",
"description": "supefina",
"expireTimeL": 3600
}
payProduct:15
{
"merOrderNo": "20240920195501",
"sign": "xxxxx",
"payProduct":"15",
"repeat":true,
"countryId": "MEX",
"nonceStr": "20240920195501",
"customerName": "xxxx",
"orderAmount": 100,
"merId": "xxxxx",
"checkOut": "true",
"currency": "MXN",
"callbackUrl": "xxxxxx",
"description": "supefina",
"expireTimeL": 3600
}
payProduct:18
{
"merOrderNo": "20240920195501",
"sign": "xxxxxxx",
"payProduct":"18",
"countryId": "MEX",
"nonceStr": "20240920195501",
"customerName": "xxxx",
"orderAmount": 100,
"merId": "xxxxx",
"checkOut": "true",
"currency": "MXN",
"callbackUrl": "xxxxx",
"productName": "test1",
"email": "xxxxxx",
"receiverAddressMain": "xxxxxx",
"receiverAddressExtra": "xxxxx",
"receiverCity": "Example city",
"receiverCountry": "MEX",
"receiverPhone": "+86123456789012345",
"receiverProvince": "Example city",
"receiverZipCode": "xxxxx",
"description": "supefina",
"expireTimeL": 3600
}
Parámetros de respuesta
code
String
Código de respuesta Referencia especifica: Códigos de estado de respuesta
msg
String
Descripción de la respuesta
data
Object
Datos de respuesta
merCode
String
ID de comerciante
merOrderNo
String
Número de pedido del comerciante
supefinaOrderNo
String
Número de pedido del supefina
amount
BigDecimal
Monto del pedido
currency
String
Moneda Referencia:Tabla de diccionario-Moneda Peso mexicano:MXN
url
String
Enlace de la transacción
Ejemplo de respuesta-Éxito
{
"code": "200",
"msg": "success ",
"data": {
"merCode": "xxxxx",
"merOrderNo": "20240920195501",
"supefinaOrderNo": "2025011877286055912513536",
"amount": 100,
"url": "http://h5.supefina.tech/combineCashier?token=3eeec61dc9544b41b9086e953b52571c",
"currency": "MXN"
}
}
Ejemplo de respuesta-Fracaso
{
"code": "400",
"msg": "param error : requestData is null"
}
Notificación de callback
Método de envío: POST
amount
String
Monto del pedido
countryld
String
Código del país
Referencia:Tabla de diccionario-Código del país Colombia, COL Mexico:MEX
fee
String
Comision anticipada
identifier
String
Referencia de pago
merld
String
ID de comerciante
merOrderld
String
Número de pedido del comerciante
msg
String
Mensajes
nonceStr
String
Cadena aleatoria La longitud no puede exceder 32 caracteres
realityAmount
String
Monto recibido
realityFee
String
Comisión recibida
reference
String
Identificador
sign
String
Firma
status
String
Estado de la transacción Referencia especifica : Tabla de diccionario-Estado del pedido de transacción
successTime
String
Tiempo de éxito de la transacción
Hora UTC
supefinaOrderld
String
Número del pedido de Supefina
transactionType
String
Tipo de transacción
01
:Payin
02
:Payout
Ejemplo de notificación de callback
{
"amount": "30.00",
"countryId": "MEX",
"fee": "3.30",
"identifier": "706180968985601627",
"merId": "8302636872670229",
"merOrderId": "P1790641845848850466",
"msg": "SUCCESS",
"nonceStr": "03aeeb11-0ad8-42dd-9f00-be1aae",
"realityAmount": "30.00",
"realityFee": "3.30",
"reference": "3843CP03202405190062858560",
"sign": "27C5933E426DD7A9EABD5C9D50F6BEBE",
"status": "01",
"successTime": 1715757366244,
"supefinaOrderId": "202405150301469d1e0b38e7fdc46",
"transactionType": "01"
}
Respuesta de notificación de callback
Después de que el comerciante reciba correctamente la notificación de callback, debe devolver la cadena especificada: SUCCESS
. Si no se devuelve o se devuelve otro contenido, se considerará que la notificación ha fallado. Por ejemplo:
public String test(){
return "SUCCESS";
}
Última actualización