Objetivo

Conector Generador de Referencias

Retiros en EFectivo

Autenticación

Generar Referencia ClubPago

Este documento describe como desarrollar un conector de tu plataforma o aplicación administrativo con La Plataforma Tecnológica de CLUBPAGO para que puedas utilizar nuestras HERRAMIENTAS del CONECTOR: SERVICIO DE GENERADOR DE REFERENCIAS DE RETIROS.

CLUBPAGO ofrece la opción a los Emisores que sus clientes puedan hacer retiros en efectivo de su saldo a favor, en cadenas autorizadas.

Niveles de Servicio

Disponibilidad de servicio
Plataforma CLUBPAGO
99%
Tiempo de respuesta máxima
de conector CLUBPAGO
5 segundos

Alacence

Al desarrollar este conector con GENERADOR DE REFERENCIAS con CLUBPAGO te permitirá, reducir tu tiempo y costo de tu desarrollo para implementar el servicio de recibir tus pagos por CLUBPAGO. TE AYUDAMOS a que tu implementación de Retiros en Efectivo por CLUBPAGO sea fácil, rápido, simple.

PARA RETIRAR SALDO EN EFECTIVO DE TUS CLIENTES POR CLUBPAGO EN CADENAS

Permitirá crear una Referencia CLUBPAGO RETIROS que permita identificar plenamente el retiro, el emisor tendrá un saldo Retiros que deberá ser PREPAGO. Es decir, el Emisor realizará transferencias bancarias a la CLABE que le asigne CLUBPAGO.

Esta CLABE es única para cada Emisor, lo que le permite a CLUBPAGO que al recibir una trasferencia identificar que es un depósito del Emisor, y se le deberá sumar a su saldo de Retiros.

En la plataforma se debe habilitar la opción Checkbox Retiros ClubPago al Emisor y se solicitarán los siguientes datos:

Correo de notificación deposito al fondo
Saldo mínimo en la bolsa

Cobros al Emisor:

    Porcentaje de comisión IVA Incluido

    Comisión en dinero IVA incluido

    Cargo Extra IVA incluido.

    Límites de cantidades permitidas a retirar en cadena:

      Monto mínimo.

      Monto Máximo

      Habilitar la opción CheckBox Se Reserva el saldo, es opcional en caso de que el Emisor así lo desee.
      Tiempo de vigencia del retiro (HH:MM)

      Una vez documentada dicha información y se guarda en la plataforma de ClubPago, se genera una Clabe única para hacer depósitos a su saldo a favor.

      CONECTOR DE SERVICIO DE GENERADOR DE REFERENCIAS DE CLUBPAGO

      Este Servicio te ayudará a reducir tu inversión de desarrollo tecnológico al contar con acceso a Herramientas que facilitaran emitir tus Referencias en código de barras e inclusive emitir el formato de pago y así acortar el tiempo de arrancar TU PROYECTO de recibir pagos en por CLUBPAGO
      Además si deseas recibir pagos por SPEI, con esta herramienta podrá obtener una CLABE
      que es única para tu cliente o pago. Y también generar link para cobro con tarjeta

      El GENERADOR DE REFERENCIAS te ofrece 3 métodos/endpoints:

      1.- GENERADOR DE REFERENCIA: Te genera tu referencia acorde a las especificaciones definidas para tu empresa
      2.- GENERADOR CODIGO DE BARRAS: Te genera tu referencia en texto y código de Barras
      3.- GENERADOR FORMATO DE PAGO: Te emite tu formato de pago completo que contiene datos cliente, referencia en texto y código de barras, cadenas donde poder pagar e instrucciones de como efectuar el pago.

       a.ClubPago Retiros conforma su referencia como a continuación se describirá
      b. Prefijo: Número fijo que identifica el servicio CLUBPAGO Retiros
      c. Identificador: Debe ser un dato numérico único que identifica plenamente a
      su cliente.
      d. Dígito Verificador (DV). El DV es de un solo 1 digito y busca ser un código de control que evite capturas incorrectas cuando por cualquier razón no se utiliza un lector de código de barras si no que se teclea. Gracias a este DV se pueden detectar errores del cajero en el tecleo. La generación del dígito verificador deberá ser en Mod10. *La generación del dígito verificador deberá ser en Mod10 Aquí su algoritmo de generación.
      e. Ejemplos

       

      1. “LA EMPRESA” requiere generar una referencia para identificar el cliente y/o retiro. Su id de identificación de su cliente y orden de pago es de 6 dígitos

       

      Campo Descripción Formato Columna Tipo
      PREFIJO Número fijo para identificar el servicio retiros ALFANUMÉRICO (555) 1 al 3 Obligatorio
      EMISOR Número Identificador proporcionado
      por CLUBPAGO
      ALFANUMÉRICO (370 4 al 6 Obligatorio
      IDENTIFICADOR Número de identificación del cliente. Numérico 12 dígitos. 7 al 18 Obligatorio
      DV Digito Verificador Numérico 1 digito 19 Obligatorio

      Identificador de Empresa: 370
      No. De cuenta: 12234 de 5 dígitos y sea autocompleta con 7 ceros a la izquierda
      Se obtiene el DV acorde a Mod10 algoritmo:
      https://es.wikipedia.org/wiki/Algoritmo_de_Luhn
      Referencia Generada: 5553700000000122349

      AUTENTICACIÓN PARA EL EMISOR

      Para utilizar este conector GENERADOR DE REFERNCIAS, lo primero es hacer un proceso de Autenticación.
      Se requiere conectarte por la siguiente URL AMBIENTE DE PRUEBAS:

      https://qa.clubpago.site/auth/api/auth

      Utilizar el método Http.Post

      Recibe un JSON con la siguiente estructura:

      Nombre del Campo Tipo del Valor Descripción
      user Alfanumérico Usuario
      pswd Alfanumérico Contraseña

      Ejemplo de Solicitud :

      {
        "User":"YODIS",
        "Pswd":"Yodis123$"
      }

      var options = new RestClientOptions("")
      {
      MaxTimeout = -1,
      };
      var client = new RestClient(options);
      var request = new RestRequest("https://qa.clubpago.site/auth/api/auth", Method.Post);
      request.AddHeader("Content-Type", "application/json");
      var body = @"{
      " + "n" +
      @" ""User"": ""YODIS"",
      " + "n" +
      @" ""Pswd"": ""Yodis123$""
      " + "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/auth/api/auth")
      .header("Content-Type", "application/json")
      .body("{rn "User": "YODIS"Pswd": "Yodis123$"rn}")
      .asString();

       

      <?php
      
      $curl = curl_init();
      
      curl_setopt_array($curl, array(
      CURLOPT_URL => 'https://qa.clubpago.site/auth/api/auth',
      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": "YODIS",
      "Pswd": "Yodis123$"
      }',
      CURLOPT_HTTPHEADER => array(
      'Content-Type: application/json'
      ),
      ));
      
      $response = curl_exec($curl);
      
      curl_close($curl);
      echo $response;
      curl --location 'https://qa.clubpago.site/auth/api/auth' 
      --header 'Content-Type: application/json' 
      --data '{
      "User": "YODIS",
      "Pswd": "Yodis123$"
      }'

      La autenticación de 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. Entrega un JSON con la siguiente estructura:

      Nombre del Campo Tipo del Valor Descripción
      Message Alfanumérico Mensaje (Exito, Error, etc)
      Token Alfanumérico Serie de caracteres que contiene la información para la autenticación.
      Expiration Fecha Fecha de vigencia del Token

      Ejemplo de Respuesta Exitosa :

      {
      “Message”: “Exito”,
      “Token”:      “eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9… “,
      “Expiration”: “2020-05-20T00:29:34.2612771-05:00”
      }

      Ejemplo de Respuesta Faliida:

      {
      “Message”: “Datos Incorrectos”,
      “Token”: “”,
      “Expiration”: “0001-01-01T00:00:00”
      }

      GENERACIÓN DE REFERENCIAS DE CLUBPAGO

      El servicio de GENERACION DE REFERENCIAS se realiza en la siguiente URL base:

      OBTENER REFERENCIA
      A continuación, se describe como solicitar EL SERVICIO Utilizar el método Http.Post

      A continuación, las URLs para cada método:

      Para obtener una Referencia:

      https://qa.clubpago.site/referencegenerator/svc/generator/referenciaRetiroEfe

       

      Se debe incluir el Token en el Header Authorization de la siguiente manera:

      Key Value Descripción
      Authorization {{TOKEN}} Método de autenticación de usuarios

      En caso de que el Token no se incluya en el header, o sea inválido, o sin vigencia, la solicitud recibirá un Error Http.Unauthorized 401. En caso de que el Token ya no tenga vigencia, tienes que autenticarte nuevamente para obtener otro Token y repetir la operación.

      En el método de GENERACIÓN DE REFERENCIAS, solicita la misma información por estandarización, siendo obligatorios: Descripción, Monto y cuenta o identificación de tu operación. Aquí EL MONTO lo solicitará mayor de cero.

      Recibe un JSON con la siguiente estructura:

      Nombre del Campo Tipo del Valor Descripción
      Description Alfanumérico Descripción de la Referencia
      Monto Numérico incluye decimales Monto a pagar
      Cuenta Numérico Cuenta o Cliente
      Correo Alfanumérico OPCIONAL Correo del Cliente
      Nombre Alfanumérico OPCIONAL Nombre del cliente
      Celular Alfanumérico OPCIONAL Número de Teléfono
      Imagen Falso/Verdadero URL

      ExpirationDate tiene la condición que si las especificaciones de la referencia lo incluye, previamente acordadas en contrato, es obligatoria cuando no es necesaria se manda un “null”

      Monto No acepta números decimales

      Responde un JSON con la siguiente estructura:

      Ejemplo de Solicitud :

      {
      "Descripcion": "Prueba Generacion Referncia",
      "Monto": 50000,
      "Cuenta": "987654321303",
      "Correo": "rcarranza@rpm-mx.net",
      "Nombre": "Ricardo Carranza Martínez",
      "Celular":"8714658101",
      "Imagen": "www.ejemplo.com"
      }

      var options = new RestClientOptions("")
      {
      MaxTimeout = -1,
      };
      var client = new RestClient(options);
      var request = new RestRequest("https://qa.clubpago.site/referencegenerator/svc/generator/reference", Method.Post);
      request.AddHeader("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IldFRE9PWCIsIkVtaXNvcklkIjoiMzc2IiwianRpIjoiNGE5YThmMWYtOTNhZC00OTlkLWI2NWMtYTk2ZDI2YTFkMjVlIiwiVXNlcklkIjoiMzgyIiwiSXNBZG1pbiI6IkZhbHNlIiwiVXNlck5hbWUiOiJXRURPT1giLCJuYmYiOjE3NzI0OTM3NjksImV4cCI6MTc3MjUzNjk2OSwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.6k-uOkjiipoQOQTNvXD7gckfggBTOnwstPpFyKe95YM");
      request.AddHeader("Content-Type", "application/json");
      var body = @"{
      " + "n" +
      @"""Description"": ""Test"",
      " + "n" +
      @"""Amount"": 10000,
      " + "n" +
      @"""Account"": ""1234561"",
      " + "n" +
      @"""CustomerEmail"": ""qa_it@clubpago.mx"",
      " + "n" +
      @"""CustomerName"": ""Ricardo Carranza"",
      " + "n" +
      @"""ExpirationDate"": ""2024-12-30"",
      " + "n" +
      @"""RequestClabe"": 1,
      " + "n" +
      @"""RequestPayTD"": 0
      " + "n" +
      Unirest.setTimeouts(0, 0);
      HttpResponse<String> response = Unirest.post("https://qa.clubpago.site/referencegenerator/svc/generator/reference")
      .header("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IldFRE9PWCIsIkVtaXNvcklkIjoiMzc2IiwianRpIjoiNGE5YThmMWYtOTNhZC00OTlkLWI2NWMtYTk2ZDI2YTFkMjVlIiwiVXNlcklkIjoiMzgyIiwiSXNBZG1pbiI6IkZhbHNlIiwiVXNlck5hbWUiOiJXRURPT1giLCJuYmYiOjE3NzI0OTM3NjksImV4cCI6MTc3MjUzNjk2OSwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.6k-uOkjiipoQOQTNvXD7gckfggBTOnwstPpFyKe95YM")
      .header("Content-Type", "application/json")
      .body("{rn"Description": "Test",rn"Amount": 10000,rn"Account": "1234561",rn"CustomerEmail": "qa_it@clubpago.mx",rn"CustomerName": "Ricardo Carranza",rn"ExpirationDate": "2024-12-30",rn"RequestClabe": 1,rn"RequestPayTD": 0rn}")
      .asString();
      <?php$curl = curl_init();curl_setopt_array($curl, array(
      CURLOPT_URL => 'https://qa.clubpago.site/referencegenerator/svc/generator/reference',
      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 =>'{
      "Description": "Test",
      "Amount": 10000,
      "Account": "1234561",
      "CustomerEmail": "qa_it@clubpago.mx",
      "CustomerName": "Ricardo Carranza",
      "ExpirationDate": "2024-12-30",
      "RequestClabe": 1,
      "RequestPayTD": 0
      }',
      
      CURLOPT_HTTPHEADER => array(
      'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IldFRE9PWCIsIkVtaXNvcklkIjoiMzc2IiwianRpIjoiNGE5YThmMWYtOTNhZC00OTlkLWI2NWMtYTk2ZDI2YTFkMjVlIiwiVXNlcklkIjoiMzgyIiwiSXNBZG1pbiI6IkZhbHNlIiwiVXNlck5hbWUiOiJXRURPT1giLCJuYmYiOjE3NzI0OTM3NjksImV4cCI6MTc3MjUzNjk2OSwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.6k-uOkjiipoQOQTNvXD7gckfggBTOnwstPpFyKe95YM',
      'Content-Type: application/json'
      ),
      ));
       $response = curl_exec($curl); 
      curl_close($curl);
      echo $response;
      curl --location 'https://qa.clubpago.site/referencegenerator/svc/generator/reference' 
      --header 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IldFRE9PWCIsIkVtaXNvcklkIjoiMzc2IiwianRpIjoiNGE5YThmMWYtOTNhZC00OTlkLWI2NWMtYTk2ZDI2YTFkMjVlIiwiVXNlcklkIjoiMzgyIiwiSXNBZG1pbiI6IkZhbHNlIiwiVXNlck5hbWUiOiJXRURPT1giLCJuYmYiOjE3NzI0OTM3NjksImV4cCI6MTc3MjUzNjk2OSwiaXNzIjoiY2x1YnBhZ28ubXgiLCJhdWQiOiJjbHVicGFnby5teCJ9.6k-uOkjiipoQOQTNvXD7gckfggBTOnwstPpFyKe95YM'
      --header 'Content-Type: application/json'
      --data-raw '{
      "Description": "Test",
      "Amount": 10000,
      "Account": "1234561",
      "CustomerEmail": "qa_it@clubpago.mx",
      "CustomerName": "Ricardo Carranza",
      "ExpirationDate": "2024-12-30",
      "RequestClabe": 1,
      "RequestPayTD": 0
      }'

      Ejemplo de Respuesta Exitosa :

      {
        “Error”:false,
        “Message”:“Exito”,
        “Reference”:“5553719876543213035”,
        “ExpirationDate”:null
      }

      Ejemplo de Respuesta Fallida :

      {
        “Error”:true,
        “Message”:“No habilitado para generar referencias de retiro”,
        “Reference”:null,
        “ExpirationDate”:null
      }