Objetivo
Niveles de Servicio y alcance
Diagrama de Flujo
Autenticación
Dispersiones SPEI
Notificaciones CEP
Cambio de Estado
Autenticación Consulta
Consulta Transacciones por Emisor
Consulta de Transacciones por Usuario
Consulta de Saldo
Especificaciones y complementos
Regresar
Este documento describe como crear una conexión con La Plataforma Tecnológica de CLUBPAGO que permita procesar en línea tus pagos recibidos en los puntos de venta afiliados a CLUBPAGO.
Definiciones y abreviaciones utilizadas
| Abreviación | Descripción |
| JSON | (acrónimo de JavaScript Object Notation, «notación de objeto de JavaScript») es un formato de texto sencillo para el intercambio de datos |
| Mensajería | Modelo de comunicación, Mensaje es la información dirigida de un emisor a un receptor. Donde ambos conocen la estructura y los conceptos de la información |
| PDV | Punto de Venta |
| Timeout | El tiempo estipulado de espera máxima para la respuesta entre emisor y receptor |
| EMISOR | Es el proveedor de servicio que requiere el pago |
| Cliente | Es el cliente final o usuario del servicio del Emisor. Es el que acude al PDV y realiza el pago |
| Referencia | Identificador de pago que presenta el Cliente al realizar su pago |
| URL | Uniform Resource Locator, es la dirección específica que se asigna a cada uno de los recursos disponibles en la red con la finalidad de que estos puedan ser localizados o identificados. |
| HTTPS | Protocolo de conectividad seguro utilizado para la Mensajería |
| SPEI | Sistema de Pagos Electrónicos Interbancarios para pagos entre cuentas de bancos en México. |
NIVELES DE SERVICIO
| Disponibilidad de servicio plataforma CLUBPAGO | 99% |
|
Tiempo de espera máxima por respuesta al EMISOR o Proveedor |
15 segundos |
| Tiempo compromiso de procesamiento de un pago, desde la captura de referencia, hasta concluir con recepción de pago | 30 segundos |
Alcance
Con la utilización de nuestra herramienta tecnológica GENERADOR DE REFERENCIAS y API en línea tu plataforma realiza la generación de referencia de retiro para que tus clientes pueden disponer de efectivo en las cadenas comerciales autorizadas.
Con este conector también podrás enviar dispersiones por SPEI (Transferencias electrónicas). Previamente se proporcionará una Cuenta Clabe para el fondeo de la cuenta de dispersión. EL Emisor vía API enviará solicitud de dispersión al conector de CLUBPAGO, solicitud que será procesada por CLUBPAGO y posteriormente enviará respuesta al Emisor.
DIAGRAMA DE FLUJO SPEI
1.- Dispersiones por SPEI
1.- Emisor envía la solicitud de dispersión..
2.- ClubPago recibe solicitud y procesa la dispersión.
3.- Procesador de dispersiones ejecuta la transferencia electrónica y envía respuesta a ClubPago.
4.- Club Pago recibe respuesta del procesador y envía notificación al Emisor.
SERVICIOS WEB A IMPLEMENTAR POR EL EMISOR
La Plataforma CLUBPAGO podrá solicitar los siguientes SERVICIOS WEB, los cuales serán llamados por HTTPS
1. Dispersión por SPEI
2.- Notificaciones CEP
3.- Notifiaciones de Cambio de Estado
4.- Servicios de Consulta
SERVICIO DE AUTENTICACIÓN
AUTENTICACIÓN PARA EL EMISOR
CLUBPAGO entregará un TOKEN que funcionará como identificador Único para el EMISOR. Este TOKEN es de longitud variable y se forma de letras y números
Método: Post
https://qa.clubpago.site/plat/apiDispersiones/token
Parámetros
| Nombre | Tipo | Descripción | Obligatorio |
| User | Alfanúmerico | Usuario del sistema | SI |
| Pswd | Alfanúmerico | Contraseña | SI |
Petición enviada por CLUBPAGO
El Emisor llamará a este servicio mediante un método HTTP POST, utilizando las reglas de autenticación de CLUBPAGO. El contenido de la petición será de tipo application/json, codificado en UTF-8
Ejemplo de Solicitud :
var options = new RestClientOptions("") { MaxTimeout = -1, }; var client = new RestClient(options); var request = new RestRequest("https://qa.clubpago.site/Plat/apiDispersiones/token", Method.Post); request.AddHeader("Content-Type", "application/json"); var body = @"{" + "\n" + @" ""User"": ""Disper""," + "\n" + @" ""Pswd"": ""Disper Disperf/8sx$%#!""" + "\n" + @"}"; request.AddStringBody(body, DataFormat.Json); RestResponse response = await client.ExecuteAsync(request); Console.WriteLine(response.Content);
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/Plat/apiDispersiones/token")
.header("Content-Type", "application/json")
.body("{\n\t\"User\": \"Disper\",\n\t\"Pswd\": \"DisperDisperf/8sx$%#!\"\n}")
.asString();
<?php
$curl = curl_init();
curl_setopt_array($curl, array( CURLOPT_URL => 'https://qa.clubpago.site/Plat/apiDispersiones/token', CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"User": "Disper",
"Pswd": "DisperDisperf/8sx$%#!"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
curl --location 'https://qa.clubpago.site/Plat/apiDispersiones/token' \
--header 'Content-Type: application/json' \
--data '{
"User": "Disper",
"Pswd": "Disper Disperf/8sx$%#!"
}'
Ejemplo de Respuesta
{
” Message “: “Token generado exitosamente”,
” Token “:” eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiNjM3OWZj Ni01NDNlLTRhZmMtOWZhYy01NjgxN
GY1MzdkZmIiLCJVc2VySWQiOiIyNDQiLCJFbWlzb3JJZCI6IjYyOCIsIlVzZXJOYW1lIjoiRW1pOTUwSEIiLCJu
YmYiOjE3NzAxMzczMDEsImV4cCI6MTc3MDI0MTcwMSwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbH
VicGFn by5teCJ9.GXm1avm0tMKcaVpfXSOohB9nu4y0BB4mqzAhGhOhIS4”,
“Expiration”: “00260103012505307001”,
}
SERVICIO DE DISPERSIÓN POR SPEI
El servicio de dispersión será llamado por el EMISOR cuando un cliente solicite dispersión por SPEI, el conector de CLUBPAGO recibe la solicitud y la procesa al recibir la respuesta del procesador de dispersiones recibe la respuesta y envía la notificación al EMISOR.
CLUBPAGO entregará un TOKEN que funcionará como identificador Único para el EMISOR. Este TOKEN es de longitud variable y se forma de letras y números
Método: Post
https://qa.clubpago.site/Plat/apiDispersiones/EnviaDispersion
Parámetros
| Nombre | Tipo | Descripción | Obligatorio |
| NombreCliente | Alfabético | Nombre del beneficiario | SI |
| Monto | Numérico | Monto a transferir | SI |
| Clabe/Tarjeta | Numérico | Clabe Interbancaria o Tarjeta Crédito o Débito | SI |
| IdBanco | Numérico | Identificador del banco | SI |
| Telefono | Numérico | Número de teléfono | SI |
| Correo | Alfabético | Correo Electrónico | SI |
| IdExterno | Alfabético | Identificador de transacción único | NO |
Nota: Para obtener IdBanco lo puedes consultar desde la siguiente dirección: https://www.banxico.org.mx/cep-scl/listaInstituciones.do
Ejemplo
| Id | Banco |
| 40062 | AFIRME |
| 40127 | AZTECA |
| 40072 | BANORTE |
| 40012 | BBVA MEXICO |
| 40021 | HSBC |
| 40036 | INBURSA |
| 40014 | SANTANDER |
| 90646 | STP |
Respuesta del servicio
El servicio espera una respuesta HTTP 200 OK, con un cuerpo de tipo application/json con los siguientes campos:
| Nombre | Tipo | Descripción | Obligatorio |
| Code | Numérico | 2 | El código de respuesta indicando el resultado de la autorización. |
| Response | Alfanumérico | 255 | Una descripción del error, en caso de una autorización fallida. Esto solo es usado por CLUBPAGO para revisión de posibles errores. |
| TransactionID | Numérico | 16 | Id de la transacción enviada por CLUBPAGO. |
| FolioAuth | Numérico | 10 | Un número que identifique el pago, en caso de una autorización exitosa. |
| ClaveRastreo | Numérico | 30 | Identificador único de transacción bancaria SPEI |
Códigos de Respuesta
El servicio autorizador debe de regresar un código indicando el resultado de la autorización:
| CÓDIGO | DESCRIPCIÓN | CAUSA |
| 00 | Solicitud de dispersión exitosa. | La información de la solicitud de dispersión es correcta. |
| 700 | Servicio de dispersión no disponible | Plataforma de dispersiones no disponible |
| 701 | Nombre del cliente necesario. | No se ingresó el nombre del beneficiario. |
| 702 | Monto debe ser mayor a 0. | No se ingresó el monto de la dispersión. |
| 703 | La cuenta clabe es requerida. | No se ingresó la cuenta clabe del beneficiario. |
| 704 | Id de banco inválido. | No se ingresó el número de Id del banco del beneficiario. |
| 705 | Teléfono necesario. | No se ingresó el número de teléfono del beneficiario. |
| 706 | Sin configuración para realizar dispersión | No existe configuración en plataforma de dispersiones |
| 707 | Monto fuera de los rangos configurados. | El monto de la dispersión esta fuera del rango configurado enplataforma ClubPago. |
| 708 | Cuenta clabe no pertenece a banco seleccionado. | La cuenta Clabe pertenece a otra institución bancaria. |
| 709 | Dígito verificador incorrecto de clabe. | Error en el digito verificador no coincide con la cuenta clabe. |
| 710 | Cuenta clabe debe ser de 18 dígitos. | Se ingresó Cuenta Clabe con error en la longitud de los dígitos. |
| 711 | Dispersión fallida. | Se presenta problema en la dispersión. |
| 712 | Servicio de dispersión no habilitado. | El Emisor o el servicio de dispersión se encuentra deshabilitado. |
| 713 | Correo electrónico del cliente necesario | El campo correo electrónico es obligatorio. |
| 714 | Devuelto-retorno | La dispersión fue devuelta. |
| 715 | Devuelto-tipo de operación errónea | Error en el tipo de operación. |
| 716 | Devuelto-excede el límite de saldo autorizado de la cuenta | Excedió el límite del saldo autorizado. |
| 717 | Devuelto-cuenta inexistente | La cuenta no existe. |
| 718 | Devuelto-excede el límite de abonos permitidos en el mes en la cuenta | Excedió el límite de transacciones al mes para esa cuenta. |
| 719 | Excede la longitud del campo beneficiario (40) | Ingresó más de 40 caracteres en el campo beneficiario. |
| 720 | La tarjeta debe ser de 16 dígitos | No se ingresaron 16 dígitos de tarjeta. |
| 721 | Tarjeta no pertenece a banco seleccionado | Error al ingresar Id de banco. |
| 722 | Digito verificador incorrecto de la tarjeta | Error en dígito verificador. |
| 723 | El emisor no cuenta con saldo para retiros | Sin saldo para dispersar. |
| 724 | No se pudo obtener el listado de transacciones | No se pudo realizar la consulta. |
| 725 | Devuelto-cuenta bloqueada | Se rechazó por cuenta está bloqueada. |
| 726 | Devuelto-falta información mandatorio para completar el pago | Se rechazó por falta de información obligatoria. |
| 727 | La operación supera el límite permitido | El monto de la operación supero el límite autorizado. |
| 728 | Operación previamente enviada | Transacción duplicada. |
| 729 | Origen no soportado | IP no autorizada para él envió de solicitud de dispersión. |
| 730 | Devuelto cuenta cancelada | Se rechazó por cuenta cancelada. |
| 731 | Devuelto cuenta no pertenece al participante receptor | Se rechazó porque la cuenta no pertenece al beneficiario. |
| 732 | Devuelto tipo de cuenta no corresponde | Se rechazó porque la cuenta que se ingresó es diferente a la que pertenece (tarjeta /cuenta). |
Ejemplo de Solicitud Dispersión:
var options = new RestClientOptions("https://qa.clubpago.site")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/Plat//apiDispersiones/EnviaDispersion", Method.Post);
request.AddHeader("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY");
request.AddHeader("Content-Type", "application/json");
var body = @"{" + "\n" +
@" ""NombreCliente"": ""Angel Maldonado Prueba""," + "\n" +
@" ""Monto"":100," + "\n" +
@" ""Clabe"":""012060015789314962""," + "\n" +
@" ""IdBanco"": 40012," + "\n" +
@" ""Telefono"":""8712627115""," + "\n" +
@" ""Correo"": ""amaldonado@clubpago.mx""," + "\n" +
@" ""Concepto"":""Envío de dinero""," + "\n" +
@" ""IdExterno"":""1130""" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/Plat//apiDispersiones/EnviaDispersion")
.header("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY")
.header("Content-Type", "application/json")
.body("{\n\t\"NombreCliente\": \"Angel Maldonado Prueba\",\n \"Monto\":100,\n \"Clabe\":\"012060015789314962\",\n \"IdBanco\": 40012,\n \"Telefono\":\"8712627115\",\n\t\"Correo\": \"amaldonado@clubpago.mx\",\n \"Concepto\":\"Envío de dinero\",\n \"IdExterno\":\"1130\"\n}")
.asString();
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://qa.clubpago.site/Plat//apiDispersiones/EnviaDispersion', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'{ "NombreCliente": "Angel Maldonado Prueba", "Monto":100, "Clabe":"012060015789314962", "IdBanco": 40012, "Telefono":"8712627115", "Correo": "amaldonado@clubpago.mx", "Concepto":"Envío de dinero", "IdExterno":"1130" }', CURLOPT_HTTPHEADER => array( 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY', 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
curl --location 'https://qa.clubpago.site/Plat//apiDispersiones/EnviaDispersion' \
--header 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY' \
--header 'Content-Type: application/json' \
--data-raw '{
"NombreCliente": "Angel Maldonado Prueba",
"Monto":100,
"Clabe":"012060015789314962",
"IdBanco": 40012,
"Telefono":"8712627115",
"Correo": "amaldonado@clubpago.mx",
"Concepto":"Envío de dinero",
"IdExterno":"1130"
}'
Ejemplo de Respuesta Dispersión:
Dispersión Tarjeta
El servicio de dispersión será llamado por el EMISOR cuando un cliente solicite dispersión por SPEI con tarjeta , el conector de CLUBPAGO recibe la solicitud y la procesa al recibir la respuesta del procesador de dispersiones recibe la respuesta y envía la notificación al EMISOR.
La estructura de la solicitud será la siguiente:
Método: Post
https://qa.clubpago.site/Plat/apiDispersiones/EnviaDispersionTarjeta
Ejemplo de Solicitud Dispersión Tarjeta:
var options = new RestClientOptions("https://qa.clubpago.site")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/Plat//apiDispersiones/EnviaDispersion", Method.Post);
request.AddHeader("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY");
request.AddHeader("Content-Type", "application/json");
var body = @"{" + "\n" +
@" ""NombreCliente"": ""Angel Maldonado Prueba""," + "\n" +
@" ""Monto"":100," + "\n" +
@" ""Clabe"":""012060015789314962""," + "\n" +
@" ""IdBanco"": 40012," + "\n" +
@" ""Telefono"":""8712627115""," + "\n" +
@" ""Correo"": ""amaldonado@clubpago.mx""," + "\n" +
@" ""Concepto"":""Envío de dinero""," + "\n" +
@" ""IdExterno"":""1130""" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/Plat//apiDispersiones/EnviaDispersion")
.header("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY")
.header("Content-Type", "application/json")
.body("{\n\t\"NombreCliente\": \"Angel Maldonado Prueba\",\n \"Monto\":100,\n \"Clabe\":\"012060015789314962\",\n \"IdBanco\": 40012,\n \"Telefono\":\"8712627115\",\n\t\"Correo\": \"amaldonado@clubpago.mx\",\n \"Concepto\":\"Envío de dinero\",\n \"IdExterno\":\"1130\"\n}")
.asString();
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://qa.clubpago.site/Plat//apiDispersiones/EnviaDispersion', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'{ "NombreCliente": "Angel Maldonado Prueba", "Monto":100, "Clabe":"012060015789314962", "IdBanco": 40012, "Telefono":"8712627115", "Correo": "amaldonado@clubpago.mx", "Concepto":"Envío de dinero", "IdExterno":"1130" }', CURLOPT_HTTPHEADER => array( 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY', 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
curl --location 'https://qa.clubpago.site/Plat//apiDispersiones/EnviaDispersion' \
--header 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY' \
--header 'Content-Type: application/json' \
--data-raw '{
"NombreCliente": "Angel Maldonado Prueba",
"Monto":100,
"Clabe":"012060015789314962",
"IdBanco": 40012,
"Telefono":"8712627115",
"Correo": "amaldonado@clubpago.mx",
"Concepto":"Envío de dinero",
"IdExterno":"1130"
}'
Ejemplo de Respuesta Dispersión Tarjeta:
SERVICIO DE NOTIFICACIONES CEP
ClubPago proporciona el Servicio de Notificaciones CEP para que el emisor pueda validar el CEP de la transacción realizada, esto únicamente en operaciones de $0.01.
El servicio de notificaciones de CEP será llamado por ClubPago y notificado al WEBHOOK que el
Emisor proporcione a ClubPago.
La estructura de la solicitud será la siguiente:
El cuerpo de la petición contendrá un objeto JSON con las siguientes propiedades:
Parámetros
| Nombre | Tipo | Descripción | Obligatorio |
| rfcCepgo | Alfabético | RFC del beneficiario | SI |
| urlCEP | Numérico | URL del CEP | SI |
| nombreCep | Alfabético | Nombre del beneficiario | SI |
| empresa | Alfabético | Nombre de la empresa validadora | SI |
| Fecha de Operación | Numérico | Fecha de Operación | SI |
| Sello | Alfabético | Firma Electrónica emitida por Banxico | SI |
| Clave Rastreo | Alfabético | Clave de Rastreo | SI |
| Cuenta Beneficiario | Alfabético | Cuenta del beneficiario | SI |
Ejemplo de WEBHOOK solicitud:
Metódo POST:
https://webhook.site/e8f59c0c-4805-46f4-b69f-0b29baee0ec6
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://webhook.site/0dd9c237-af02-4203-b27e-1a4d02b6f680")
.header("X-Origin", "TmpNd04yVXhaV1poTlRBMVl6STVPREpqTURG")
.header("User-Agent", "CPAPI_AGNT_V1")
.header("Content-Type", "application/json")
.body("{\r\n \"rfcCep\": \"JIGE990426515\",\r\n \"urlCEP\": \"https://www.banxico.org.mx/cep/go?i=90646&s=20210302&d=LB2S5j3JuJ7pKCRn5f00YuUEVz%2FkspOOejm%2Fxl7kFGgafeqGzIA8yJxAWol5%2FusgfeN1pIUfRAJGjg%2BB9hQPRlW6ahS8CXZxfK2qRNN375A%3D\",\r\n \"nombreCep\": \"ELIZABETH JIMENEZ GARCIA\",\r\n \"empresa\": \"CPAGODISPER\",\r\n \"fechaOperacion\": \"20260309\",\r\n \"sello\": \"fc/Kvtr0RBMZBQ4fvTlEbrGGsjHexATgNfb3dQxBiUvFxK7QSTFs1agKQ7iEXgal3N6GXxrZ5OMakkVPrc4esyI9iLv91m+P6uXKwTpoomdN2IxDo+hRbBqzOK88DhVN7+B3kB+6fhitGWwSQzJTYInvXn0x1+2qhGv2ZpAGnJUtIW9yYr2xuSrFs2M9J7bg7PAmvPOJfZh1GoLC3dXOFcaBsRSyA7kvFVXrFWZ6HnlI9y/iH1XlZzqmWwOwzzf3vuNsz1lWfW0rhLymxqTiwAmftP/QxvnOTm/gWiTd5LPjK6NRPXVeDipQJTz9pKSXVSKnrhTylyAdssGY+JqsEg==\",\r\n \"claveRastreo\": \"56DAE3E33942B1B727256B7B\",\r\n \"cuentaBeneficiario\": \"127180016376644864\"\r\n}")
.asString();
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/Plat//apiDispersiones/EnviaDispersion")
.header("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY")
.header("Content-Type", "application/json")
.body("{\n\t\"NombreCliente\": \"Angel Maldonado Prueba\",\n \"Monto\":100,\n \"Clabe\":\"012060015789314962\",\n \"IdBanco\": 40012,\n \"Telefono\":\"8712627115\",\n\t\"Correo\": \"amaldonado@clubpago.mx\",\n \"Concepto\":\"Envío de dinero\",\n \"IdExterno\":\"1130\"\n}")
.asString();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://webhook.site/0dd9c237-af02-4203-b27e-1a4d02b6f680',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"rfcCep": "JIGE990426515",
"urlCEP": "https://www.banxico.org.mx/cep/go?i=90646&s=20210302&d=LB2S5j3JuJ7pKCRn5f00YuUEVz%2FkspOOejm%2Fxl7kFGgafeqGzIA8yJxAWol5%2FusgfeN1pIUfRAJGjg%2BB9hQPRlW6ahS8CXZxfK2qRNN375A%3D",
"nombreCep": "ELIZABETH JIMENEZ GARCIA",
"empresa": "CPAGODISPER",
"fechaOperacion": "20260309",
"sello": "fc/Kvtr0RBMZBQ4fvTlEbrGGsjHexATgNfb3dQxBiUvFxK7QSTFs1agKQ7iEXgal3N6GXxrZ5OMakkVPrc4esyI9iLv91m+P6uXKwTpoomdN2IxDo+hRbBqzOK88DhVN7+B3kB+6fhitGWwSQzJTYInvXn0x1+2qhGv2ZpAGnJUtIW9yYr2xuSrFs2M9J7bg7PAmvPOJfZh1GoLC3dXOFcaBsRSyA7kvFVXrFWZ6HnlI9y/iH1XlZzqmWwOwzzf3vuNsz1lWfW0rhLymxqTiwAmftP/QxvnOTm/gWiTd5LPjK6NRPXVeDipQJTz9pKSXVSKnrhTylyAdssGY+JqsEg==",
"claveRastreo": "56DAE3E33942B1B727256B7B",
"cuentaBeneficiario": "127180016376644864"
}',
CURLOPT_HTTPHEADER => array(
'X-Origin: TmpNd04yVXhaV1poTlRBMVl6STVPREpqTURG',
'User-Agent: CPAPI_AGNT_V1',
'Content-Type: application/json'
),));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
curl --location 'https://webhook.site/0dd9c237-af02-4203-b27e-1a4d02b6f680' \
--header 'X-Origin: TmpNd04yVXhaV1poTlRBMVl6STVPREpqTURG' \
--header 'User-Agent: CPAPI_AGNT_V1' \
--header 'Content-Type: application/json' \
--data '{
"rfcCep": "JIGE990426515",
"urlCEP": "https://www.banxico.org.mx/cep/go?i=90646&s=20210302&d=LB2S5j3JuJ7pKCRn5f00YuUEVz%2FkspOOejm%2Fxl7kFGgafeqGzIA8yJxAWol5%2FusgfeN1pIUfRAJGjg%2BB9hQPRlW6ahS8CXZxfK2qRNN375A%3D",
"nombreCep": "ELIZABETH JIMENEZ GARCIA",
"empresa": "CPAGODISPER",
"fechaOperacion": "20260309",
"sello": "fc/Kvtr0RBMZBQ4fvTlEbrGGsjHexATgNfb3dQxBiUvFxK7QSTFs1agKQ7iEXgal3N6GXxrZ5OMakkVPrc4esyI9iLv91m+P6uXKwTpoomdN2IxDo+hRbBqzOK88DhVN7+B3kB+6fhitGWwSQzJTYInvXn0x1+2qhGv2ZpAGnJUtIW9yYr2xuSrFs2M9J7bg7PAmvPOJfZh1GoLC3dXOFcaBsRSyA7kvFVXrFWZ6HnlI9y/iH1XlZzqmWwOwzzf3vuNsz1lWfW0rhLymxqTiwAmftP/QxvnOTm/gWiTd5LPjK6NRPXVeDipQJTz9pKSXVSKnrhTylyAdssGY+JqsEg==",
"claveRastreo": "56DAE3E33942B1B727256B7B",
"cuentaBeneficiario": "127180016376644864"
}'
Ejemplo de WEBHOOK respuesta:
7kFGgafeqGzIA8yJxAWol5%2FusgfeN1pIUfRAJGjg%2BB9hQPRlW6ahS8CXZxfK2qRNN375A%3D”,
SERVICIO DE CAMBIO DE ESTADO
ClubPago proporciona el Servicio de Notificaciones de Cambio Estado, para poder actualizar el cambio de estado de las dispersiones, el cual puede ser DEVUELTO o CANCELADO.
El servicio de notificaciones de estado será llamado por ClubPago y notificado al WEBHOOK que el Emisor proporcione a ClubPago.
La estructura de la solicitud será la siguiente:
El cuerpo de la petición contendrá un objeto JSON con las siguientes propiedades:
| Nombre | Tipo | Descripción | Obligatorio |
| IdDispersion | Numérico | Identificador de dispersión . | SI |
| ClaveRastreo | Alfabético | Clave de rastreo de la dispersión. | SI |
| Monto | Numérico | Monto de la dispersión | SI |
|
statusCambioEstado |
Alfabético | Devuelto/Cancelado. | SI |
Ejemplo de WEBHOOK
Metodo POST
https://webhook.site/e8f59c0c-4805-46f4-b69f-0b29baee0ec6
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://webhook.site/0dd9c237-af02-4203-b27e-1a4d02b6f680")
.header("X-Origin", "TmpNd04yVXhaV1poTlRBMVl6STVPREpqTURG")
.header("User-Agent", "CPAPI_AGNT_V1")
.header("Content-Type", "application/json")
.body("{\r\n \"rfcCep\": \"JIGE990426515\",\r\n \"urlCEP\": \"https://www.banxico.org.mx/cep/go?i=90646&s=20210302&d=LB2S5j3JuJ7pKCRn5f00YuUEVz%2FkspOOejm%2Fxl7kFGgafeqGzIA8yJxAWol5%2FusgfeN1pIUfRAJGjg%2BB9hQPRlW6ahS8CXZxfK2qRNN375A%3D\",\r\n \"nombreCep\": \"ELIZABETH JIMENEZ GARCIA\",\r\n \"empresa\": \"CPAGODISPER\",\r\n \"fechaOperacion\": \"20260309\",\r\n \"sello\": \"fc/Kvtr0RBMZBQ4fvTlEbrGGsjHexATgNfb3dQxBiUvFxK7QSTFs1agKQ7iEXgal3N6GXxrZ5OMakkVPrc4esyI9iLv91m+P6uXKwTpoomdN2IxDo+hRbBqzOK88DhVN7+B3kB+6fhitGWwSQzJTYInvXn0x1+2qhGv2ZpAGnJUtIW9yYr2xuSrFs2M9J7bg7PAmvPOJfZh1GoLC3dXOFcaBsRSyA7kvFVXrFWZ6HnlI9y/iH1XlZzqmWwOwzzf3vuNsz1lWfW0rhLymxqTiwAmftP/QxvnOTm/gWiTd5LPjK6NRPXVeDipQJTz9pKSXVSKnrhTylyAdssGY+JqsEg==\",\r\n \"claveRastreo\": \"56DAE3E33942B1B727256B7B\",\r\n \"cuentaBeneficiario\": \"127180016376644864\"\r\n}")
.asString();
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/Plat//apiDispersiones/EnviaDispersion")
.header("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMjMyZGEzMC1mNDE5LTRiYjgtODJkYS05NTc2OGVhMjhiMzMiLCJVc2VySWQiOiIzODkiLCJFbWlzb3JJZCI6IjY4MiIsIlVzZXJOYW1lIjoicWFwcnVlYmFzYW0iLCJuYmYiOjE3NzMwODUxMTAsImV4cCI6MTc3MzE4OTUxMCwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.s3B1nq5Um8LtlwUS_TsIQAfq8z9LuVZCYV335prUwhY")
.header("Content-Type", "application/json")
.body("{\n\t\"NombreCliente\": \"Angel Maldonado Prueba\",\n \"Monto\":100,\n \"Clabe\":\"012060015789314962\",\n \"IdBanco\": 40012,\n \"Telefono\":\"8712627115\",\n\t\"Correo\": \"amaldonado@clubpago.mx\",\n \"Concepto\":\"Envío de dinero\",\n \"IdExterno\":\"1130\"\n}")
.asString();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://webhook.site/0dd9c237-af02-4203-b27e-1a4d02b6f680',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"rfcCep": "JIGE990426515",
"urlCEP": "https://www.banxico.org.mx/cep/go?i=90646&s=20210302&d=LB2S5j3JuJ7pKCRn5f00YuUEVz%2FkspOOejm%2Fxl7kFGgafeqGzIA8yJxAWol5%2FusgfeN1pIUfRAJGjg%2BB9hQPRlW6ahS8CXZxfK2qRNN375A%3D",
"nombreCep": "ELIZABETH JIMENEZ GARCIA",
"empresa": "CPAGODISPER",
"fechaOperacion": "20260309",
"sello": "fc/Kvtr0RBMZBQ4fvTlEbrGGsjHexATgNfb3dQxBiUvFxK7QSTFs1agKQ7iEXgal3N6GXxrZ5OMakkVPrc4esyI9iLv91m+P6uXKwTpoomdN2IxDo+hRbBqzOK88DhVN7+B3kB+6fhitGWwSQzJTYInvXn0x1+2qhGv2ZpAGnJUtIW9yYr2xuSrFs2M9J7bg7PAmvPOJfZh1GoLC3dXOFcaBsRSyA7kvFVXrFWZ6HnlI9y/iH1XlZzqmWwOwzzf3vuNsz1lWfW0rhLymxqTiwAmftP/QxvnOTm/gWiTd5LPjK6NRPXVeDipQJTz9pKSXVSKnrhTylyAdssGY+JqsEg==",
"claveRastreo": "56DAE3E33942B1B727256B7B",
"cuentaBeneficiario": "127180016376644864"
}',
CURLOPT_HTTPHEADER => array(
'X-Origin: TmpNd04yVXhaV1poTlRBMVl6STVPREpqTURG',
'User-Agent: CPAPI_AGNT_V1',
'Content-Type: application/json'
),));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
curl --location 'https://webhook.site/0dd9c237-af02-4203-b27e-1a4d02b6f680' \
--header 'X-Origin: TmpNd04yVXhaV1poTlRBMVl6STVPREpqTURG' \
--header 'User-Agent: CPAPI_AGNT_V1' \
--header 'Content-Type: application/json' \
--data '{
"rfcCep": "JIGE990426515",
"urlCEP": "https://www.banxico.org.mx/cep/go?i=90646&s=20210302&d=LB2S5j3JuJ7pKCRn5f00YuUEVz%2FkspOOejm%2Fxl7kFGgafeqGzIA8yJxAWol5%2FusgfeN1pIUfRAJGjg%2BB9hQPRlW6ahS8CXZxfK2qRNN375A%3D",
"nombreCep": "ELIZABETH JIMENEZ GARCIA",
"empresa": "CPAGODISPER",
"fechaOperacion": "20260309",
"sello": "fc/Kvtr0RBMZBQ4fvTlEbrGGsjHexATgNfb3dQxBiUvFxK7QSTFs1agKQ7iEXgal3N6GXxrZ5OMakkVPrc4esyI9iLv91m+P6uXKwTpoomdN2IxDo+hRbBqzOK88DhVN7+B3kB+6fhitGWwSQzJTYInvXn0x1+2qhGv2ZpAGnJUtIW9yYr2xuSrFs2M9J7bg7PAmvPOJfZh1GoLC3dXOFcaBsRSyA7kvFVXrFWZ6HnlI9y/iH1XlZzqmWwOwzzf3vuNsz1lWfW0rhLymxqTiwAmftP/QxvnOTm/gWiTd5LPjK6NRPXVeDipQJTz9pKSXVSKnrhTylyAdssGY+JqsEg==",
"claveRastreo": "56DAE3E33942B1B727256B7B",
"cuentaBeneficiario": "127180016376644864"
}'
AUTENTICACIÓN SERVICIOS DE CONSULTA
El servicio de consulta por transacciones por emisor muestra la totalidad de transacciones exitosas por emisor en un rango de fechas. La estructura de la solicitud será la siguiente:
El cuerpo de la petición contendrá un objeto JSON con las siguientes propiedades:
| Nombre | Tipo | Descripción | Obligatorio |
| User | Alfanumérico | Nombre de Usuario | SI |
| PSW | Alfanumérico | Contraseña | SI |
Ejemplo
https://qa.clubpago.site/plat/apiDispersiones/ConsultaTransaccionesPorUsuario
Método POST :
var options = new RestClientOptions("")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("https://qa.clubpago.site/plat/apiConsulta/token", Method.Post);
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "n" +
@" ""User"": ""Emisorcppruebas"",
" + "n" +
@" ""Pswd"": ""Emisorcppruebas""
" + "n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/plat/apiConsulta/token")
.header("Content-Type", "application/json")
.body("{rnt"User": "Emisorcppruebas",rnt"Pswd": "Emisorcppruebas"rn}")
.asString();
<?php$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://qa.clubpago.site/plat/apiConsulta/token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"User": "Emisorcppruebas",
"Pswd": "Emisorcppruebas"
}',CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
curl --location 'https://qa.clubpago.site/plat/apiConsulta/token' --header 'Content-Type: application/json' --data '{ "User": "Emisorcppruebas", "Pswd": "Emisorcppruebas" }'
Respuesta
{
” Message “: “Token generado exitosamente”,
” Token “:” eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiNjM3OWZj Ni01NDNlLTRhZmMtOWZhYy01NjgxNGY1MzdkZmIiLCJVc2VySWQiOiIyNDQiLCJFbWlzb3JJZCI6IjYyOCIsIlVzZXJOYW1lIjoiRW1pOTUwSEIiLCJuYmYiOjE3NzAxMzczMDEsImV4cCI6MTc3MDI0MTcwMSwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.GXm1avm0tMKcaV1V3h7FP5nZRNzsFS4iQrJfAES2RypsLBXLZE”,
“Expiration”: “00260103012505307001”,
}
SERVICIO DE CONSULTA TRANSACCIONES POR EMISOR
El servicio de consulta por transacciones por emisor muestra la totalidad de transacciones exitosas por emisor en un rango de fechas. La estructura de la solicitud será la siguiente:
El cuerpo de la petición contendrá un objeto JSON con las siguientes propiedades:
Parámetros
| Nombre | Tipo | Descripción | Obligatorio |
| DtDesde | Fecha | Fecha Desde | SI |
| DtHasta | Fecha | Fecha Hasta | SI |
Método POST
https://qa.clubpago.site/plat/apiDispersiones/ConsultaTransaccionesPorEmisor
Ejemplo de Solicitud :
var options = new RestClientOptions("")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("https://qa.clubpago.site/plat/apiConsulta/token", Method.Post);
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "n" +
@" ""User"": ""Emisorcppruebas"",
" + "n" +
@" ""Pswd"": ""Emisorcppruebas""
" + "n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/plat/apiConsulta/token")
.header("Content-Type", "application/json")
.body("{rnt"User": "Emisorcppruebas",rnt"Pswd": "Emisorcppruebas"rn}")
.asString();
<?php$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://qa.clubpago.site/plat/apiConsulta/token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"User": "Emisorcppruebas",
"Pswd": "Emisorcppruebas"
}',CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
curl --location 'https://qa.clubpago.site/plat/apiConsulta/token' --header 'Content-Type: application/json' --data '{ "User": "Emisorcppruebas", "Pswd": "Emisorcppruebas" }'
SERVICIO DE CONSULTA TRANSACCIONES POR USUARIO
El servicio de consulta por transacciones por emisor usuario muestra la totalidad de transacciones exitosas por emisor en un rango de fechas. La estructura de la solicitud será la siguiente:
El cuerpo de la petición contendrá un objeto JSON con las siguientes propiedades:
Parámetros
| Nombre | Tipo | Descripción | Obligatorio |
| DtDesde | Fecha | Fecha Desde | SI |
| DtHasta | Fecha | Fecha Hasta | SI |
Ejemplo:
Método POST
https://qa.clubpago.site/plat/apiDispersiones/ConsultaTransaccionesPorUsuario
Ejemplo de Solicitud :
var options = new RestClientOptions("")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("https://qa.clubpago.site/plat/apiConsulta/token", Method.Post);
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "n" +
@" ""User"": ""Emisorcppruebas"",
" + "n" +
@" ""Pswd"": ""Emisorcppruebas""
" + "n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/plat/apiConsulta/token")
.header("Content-Type", "application/json")
.body("{rnt"User": "Emisorcppruebas",rnt"Pswd": "Emisorcppruebas"rn}")
.asString();
<?php$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://qa.clubpago.site/plat/apiConsulta/token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"User": "Emisorcppruebas",
"Pswd": "Emisorcppruebas"
}',CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
curl --location 'https://qa.clubpago.site/plat/apiConsulta/token' --header 'Content-Type: application/json' --data '{ "User": "Emisorcppruebas", "Pswd": "Emisorcppruebas" }'
Ejemplo de Respuesta :
SERVICIO DE CONSULTA DE SALDO
El servicio de consulta de saldo muestra el saldo disponible para realizar dispersiones. La estructura de la
solicitud será la siguiente
El cuerpo de la petición contendrá un objeto JSON con las siguientes propiedades:
No requeiere paráetros
Ejemplo:
Método POST
https://qa.clubpago.site/plat/apiDispersiones/ConsultaSaldo
Ejemplo de Respuesta :
ESPECIFICACIONES A CONSIDERAR
Tiempo de comunicación entre CLUBPAGO y el Servicio
Comunicación HTTPS
Errores en el servicio autorizador
-
- En el caso del servicio de autorización, se considerará la transacción como rechazada
y no se aceptará el pago. - En el caso de cancelación, CLUBPAGO solo registrará el evento y continuará con la
operación de cancelación. Es decir, realizará reintentos cada 15 minutos, hasta que
obtenga una RESPUESTA EXITOSA DEL EMISOR
- En el caso del servicio de autorización, se considerará la transacción como rechazada
Tiempo de cancelación
Una vez autorizada una transacción, ésta podría ser cancelada de manera automática
dentro de los 10 minutos siguientes, por lo que su aplicación debe tomar esto en cuenta e implementar funciones para cubrir esta posibilidad.
Para pagos por transferencia Bancaria y pago con tarjeta la cancelación no aplica, ya que se confirma como exitosa o fallida.
Recomendación para desarrollo de la aplicación del EMISOR
Una vez instalado POSTMAN, es necesario abrirlo e instalar el plugin Jetpack de Postman para poder crear las pruebas y lanzarlas conjuntamente.
En el Anexo A de este documento encontrará una guía de cómo utilizar POSTMAN para construir su aplicación que interactúe con CLUBPAGO
Contacto para dudas
| Nivel | Nombre | Correo | Teléfono |
| Nivel 1 | Ángel Maldonado Chagoya | amaldonado@clubpago.mx | 871 478 0520 |
| Nivel 2 | Marco Galván Torres | it@rpmmx.net | 871 478 0520 |
ANEXO A
GUIA EMULADOR CLUBPAGO API CON POSTMAN
https://www.postman.com/downloads/
Tenemos disponible un Emulador de Emisor que contiene la estructura básica, de ejemplo, que tienes que programar para poder implementar CLUBPAGO API y una colección de solicitudes para importar en POSTMAN.
https://github.com/clubpago/ClubPagoAP
Complementos a esta funcionalidad
CLUBPAGO cuenta con un Sandbox (Ambiente de pruebas) que te ayudará a probar tu INTEGRACION DE PROVEEDORES O EMISORES DE PAGO. Solicita tus accesos y el Documento de Guía de uso del Sanbox de la Plataforma Tecnológica de CLUBPAGO.