Referencia Técnica

Documentación técnica API y SDK

Versión: 1.0.0

Esta guía proporciona una descripción técnica de la API para gestionar referencias PayCash. Todos los métodos están completamente documentados y las respuestas de la API están en formato JSON estándar. PayCash proporciona un entorno sandbox y una plataforma productiva, solicite sus credenciales para integrar PayCash a su plataforma.

Cómo Iniciar

Proceso de Integración
  1. Solicita tu API Key y URL de integración
  2. Desarrolla en ambiente sandbox, esta es la guía para hacerlo
  3. Cuando estés listo validarémos y certificarémos tu integración, al finalizar recibirás tu API Key y URL del ambiente productivo
  4. Implementemos en producción tu desarrollo
  5. Listo para recibir pagos en efectivo con PayCash
Modo de Uso
  1. Autenticarse como usuario de la plataforma PayCash haciendo uso del método authre. Es necesario contar con tu API Key para solicitar un token, el cual será usado en el resto de los métodos involucrados
  2. Para generar una referencia PayCash basta con solicitarlo a través del método reference. Este método responderá con la referencia PayCash. Utilice el método searchreference para conocer las caracteristicas de la referencia PayCash. Si por alguna razón necesita cancelar la referencia, haga uso del método cancel, unicamente si la referencia no tiene pagos.
  3. Utilice método payments para consultar los pagos realizados a las referencias PayCash.

Consumo de API'S

Obtener Token /authre

Para realizar peticiones a la API de PayCash, es necesario contar con tu llave privada, con esta llave podrás obtener un token, el cual es requerido al momento de hacer la solicitud de alguno de los métodos contenidos en este documento. Esta llave privada es configurada para ser utilizada ya sea en modo sandbox o producción. Asegúrate de nunca compartir tu llave privada con nadie, ya que podrían tener accesos a tu cuenta PayCash.

Al hacer la solicitud del token se valida que la llave privada exista, este vigente y corresponda al ambiente sandbox o productivo.

GET /authre
Ejemplos de Uso y SDK

curl --location --request GET 'https://sb-api-pais-emisor.paycashglobal.com/v1/authre?key='
#Es necesario reemplazar 'pais' por tu país en la URL

//Este ejemplo requiere de la librería OkHttp para JAVA
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
Request request = new Request.Builder()
  .url("https://sb-api-pais-emisor.paycashglobal.com/v1/authre?key=") //Es necesario reemplazar 'pais' por tu país en la URL
  .method("GET", null)
  .build();
Response response = client.newCall(request).execute();

import io.swagger.client.api.AuthreApi;

public class AuthreApiExample {

    public static void main(String[] args) {
        AuthreApi apiInstance = new AuthreApi();
        String key = key_example; // String | Unique key to business partner , from PayCash Global.
        String expirationdate = expirationdate_example; // String | Token expiration date.
        Boolean unique = true; // Boolean | Token type "unique". PENDIENTE
        try {
            array[RespAuther] result = apiInstance.getToken(key, expirationdate, unique);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling AuthreApi#getToken");
            e.printStackTrace();
        }
    }
}

//Este ejemplo requiere de la librería NSURLSession para Obj-C
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sb-api-pais-emisor.paycashglobal.com/v1/authre?key="] //Es necesario reemplazar 'pais' por tu país en la URL
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];

[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

var requestOptions = {
  method: 'GET',
  redirect: 'follow'
};

fetch("https://sb-api-pais-emisor.paycashglobal.com/v1/authre?key=", requestOptions) //Es necesario reemplazar 'pais' por tu país en la URL
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

//Este ejemplo requiere de la librería RestSharp para C#
var client = new RestClient("https://sb-api-pais-emisor.paycashglobal.com/v1/authre?key="); //Es necesario reemplazar 'pais' por tu país en la URL
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

<?php
//Este ejemplo requiere de la librería cURL para PHP
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sb-api-pais-emisor.paycashglobal.com/v1/authre?key=', //Es necesario reemplazar 'pais' por tu país en la URL
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

use Data::Dumper;
use WWW::SwaggerClient::Configuration;
use WWW::SwaggerClient::AuthreApi;

my $api_instance = WWW::SwaggerClient::AuthreApi->new();
my $key = key_example; # String | Unique key to business partner , from PayCash Global.
my $expirationdate = expirationdate_example; # String | Token expiration date.
my $unique = true; # Boolean | Token type "unique". PENDIENTE

eval { 
    my $result = $api_instance->getToken(key => $key, expirationdate => $expirationdate, unique => $unique);
    print Dumper($result);
};
if ($@) {
    warn "Exception when calling AuthreApi->getToken: $@\n";
}

#Este ejemplo requiere de la librería http.client para Python
import http.client

conn = http.client.HTTPSConnection("sb-api-pais-emisor.paycashglobal.com") #Es necesario reemplazar 'pais' por tu país en la URL
payload = ''
headers = {}
conn.request("GET", "/v1/authre?key=", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Parámetros

Header

Nombre Descripción
key*
String Clave única para el socio comercial, de PayCash Global.
Obligatorio

Query

Nombre Descripción
expirationdate
String (yyyy/mm/dd) Fecha de expiración del token.
unique
Boolean Tipo de token "unique".
Respuestas

Status: 200 - Successful Process

Schema

{ "required" : [ "Authorization", "ErrorCode", "ErrorMessage", "ExpiresIn" ], "type" : "object", "properties" : { "Authorization" : { "type" : "string", "description": "Token obtenido al momento de autenticarse. Resultado de ejecutar el método para obtener el token (authre).", "format" : "jwt", "example" : "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0.jTSg06LqsFTxGHYRUvZJ8xHn_pBQh-0KxsMu8Mx7c2ZDuUC7faj7PxQCW6WXO2J6HWI0WtqutHbBso0q86D9EC0OpcSWOud1.Y6k6dD_V0QZhBArpQQGGmA.u4dD0O0isMVt9lMRSC5qXQPhOWptZNy_qfgJKqwBZ0NxcsLFoF09Su_jm5KSUkwkNynO23bWZHWrl7owve65k_dSUszGaBYEAsFAYf_GVub18BbLE2TOi3kUt6KDmg0WstbCBJUKIcToQ7mB96DU4AiSQ-xgl6Nl8u3WvZxqXyquk1AayNFHvQ2JnrpyK8AMlWTcrjWf9j6cXwbcjlupSnjB6aLDU1-is0wpOxXJFa9wB-QWy62XQ24SOos4lz7DrSXaBQZDQEzDJdKyWn2iSYXrQ28d7uT7h_Cnbb0xmQuUF1acHRzW2GqJAQwSCJQxMBmiEv9HXGCS4E7_dnkbxv4PSxvGH5ZjBkJIAKAypNYmnHBBANhB7wQxcecz_zRFosAw01L46MQ1VVTnseyoKqsQNE4xJe-5N9cKT6sTptw.JRKHSTluO2XeCge1adNFCOJ-eVIO95WJhd7o51oNT8U" }, "ExpiresIn" : { "type" : "string", "description": "Fecha de expiración del token", "example" : "6/30/2071 2:36:51 PM" }, "ErrorCode" : { "type" : "string", "description": "Código de error. Si el resultado de la operación es exitosa regresa un 0, de otro modo regresa un valor diferente a 0.", "example" : "0" }, "ErrorMessage" : { "type" : "string", "description" : "Mensaje descriptivo del resultado de la operación solicitada.", "example" : "Operacion Exitosa." } } }

Status: 400 - Internal Server Error

Crear Referencia /reference

Use este método para crear una referencia PayCash.

Al usar este método considerar que las referencias PayCash pueden ser:

  1. De monto fijo o de monto abierto
  2. Con o sin fecha de vencimiento
  3. De pago único o recurrente
  4. Que los anteriores atributos se pueden combinar
POST /reference
Ejemplos de Uso y SDK

curl --location --request POST 'https://sb-api-pais-emisor.paycashglobal.com/v1/reference' \ #Es necesario reemplazar 'pais' por tu país en la URL
--header 'Authorization: ' \
--header 'Content-Type: application/json' \
--data-raw '{
    "Amount":"",
    "ExpirationDate":"",
    "Value":"",
    "Type":""
}'
 
//Este ejemplo requiere de la librería OkHttp para JAVA
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"Amount\":\"\",\r\n    \"ExpirationDate\":\"\",\r\n    \"Value\":\"\",\r\n    \"Type\":\"\"\r\n}");
Request request = new Request.Builder()
  .url("https://sb-api-pais-emisor.paycashglobal.com/v1/reference") //Es necesario reemplazar 'pais' por tu país en la URL
  .method("POST", body)
  .addHeader("Authorization", "")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
 
import io.swagger.client.api.EmisorApi;

public class EmisorApiExample {

  public static void main(String[] args) {
      EmisorApi apiInstance = new EmisorApi();
      String authorization = authorization_example; // String | Token to business partner , from PayCash Global.
      BodyCreateRef body = ; // BodyCreateRef | por definir
      try {
          array[RespCreateRef] result = apiInstance.referenceCreate(authorization, body);
          System.out.println(result);
      } catch (ApiException e) {
          System.err.println("Exception when calling EmisorApi#referenceCreate");
          e.printStackTrace();
      }
  }
}

//Este ejemplo requiere de la librería NSURLSession para Obj-C
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sb-api-pais-emisor.paycashglobal.com/v1/reference"] //Es necesario reemplazar 'pais' por tu país en la URL
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"",
  @"Content-Type": @"application/json"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\r\n    \"Amount\":\"\",\r\n    \"ExpirationDate\":\"\",\r\n    \"Value\":\"\",\r\n    \"Type\":\"\"\r\n}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

var myHeaders = new Headers();
myHeaders.append("Authorization", "");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "Amount": "",
  "ExpirationDate": "",
  "Value": "",
  "Type": ""
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://sb-api-pais-emisor.paycashglobal.com/v1/reference", requestOptions) //Es necesario reemplazar 'pais' por tu país en la URL
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
 
//Este ejemplo requiere de la librería RestSharp para C#
var client = new RestClient("https://sb-api-pais-emisor.paycashglobal.com/v1/reference"); //Es necesario reemplazar 'pais' por tu país en la URL
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "");
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@"    ""Amount"":"""",
" + "\n" +
@"    ""ExpirationDate"":"""",
" + "\n" +
@"    ""Value"":"""",
" + "\n" +
@"    ""Type"":""""
" + "\n" +
@"}";
request.AddParameter("application/json", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
 
<?php
//Este ejemplo requiere de la librería cURL para PHP
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sb-api-pais-emisor.paycashglobal.com/v1/reference', //Es necesario reemplazar 'pais' por tu país en la URL
  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 =>'{
    "Amount":"",
    "ExpirationDate":"",
    "Value":"",
    "Type":""
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: ',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>
 
use Data::Dumper;
use WWW::SwaggerClient::Configuration;
use WWW::SwaggerClient::EmisorApi;

my $api_instance = WWW::SwaggerClient::EmisorApi->new();
my $authorization = authorization_example; # String | Token to business partner , from PayCash Global.
my $body = WWW::SwaggerClient::Object::BodyCreateRef->new(); # BodyCreateRef | por definir

eval { 
  my $result = $api_instance->referenceCreate(authorization => $authorization, body => $body);
  print Dumper($result);
};
if ($@) {
  warn "Exception when calling EmisorApi->referenceCreate: $@\n";
}
 
#Este ejemplo requiere de la librería http.client para Python
import http.client
import json

conn = http.client.HTTPSConnection("sb-api-pais-emisor.paycashglobal.com") #Es necesario reemplazar 'pais' por tu país en la URL
payload = json.dumps({
  "Amount": "",
  "ExpirationDate": "",
  "Value": "",
  "Type": ""
})
headers = {
  'Authorization': '',
  'Content-Type': 'application/json'
}
conn.request("POST", "/v1/reference", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Parámetros

Header

Nombre Descripción
authorization*
String Token obtenido al momento de autenticarse. Resultado de ejecutar el método para obtener el token (authre).
Obligatorio

Body

Nombre Descripción
body
{ "required" : [ "Amount", "ExpirationDate", "Type", "Value" ], "type" : "object", "properties" : { "Amount" : { "type" : "number", "description": "Monto del pago que debe de hacer el usuario. Tomar en cuenta que existe un monto máximo que se acuerda con el área comercial.Si la referencia PayCash es de monto abierto, el valor especificado sera 0.", "example" : 1000.50 }, "ExpirationDate" : { "type" : "string", "description": "Si la referencia tendrá fecha de vigencia, especificarla en el formato abajo mencionado.La fecha de vigencia tiene que ser mayor o igual al día en que se está generando la referencia.Si la referencia no tendrá fecha de vigencia, dejar el valor en blanco.", "example" : "2021-07-30" }, "Value" : { "type" : "string", "description": "Información de uso libre, de hasta 40 posiciones. Generalmente para asociar el id del cliente, numero de factura, orden de pago, etc.", "example" : "1234567890123456789012345678901234567890" }, "Type" : { "type" : "string", "description": "Tipo de referencia PayCash a crear. -De pago único. -De pago recurrente.", "example" : "true" } } }
Respuestas

Status: 200 - Successful Process

Schema

{ "required" : [ "ErrorCode", "ErrorMessage", "Reference" ], "type" : "object", "properties" : { "Reference" : { "type" : "string", "description" :"Referencia PayCash creada. En México la longitud de la referencia es de 13 posiciones, en otros países es de 16.", "example" : "7041621293386809" }, "ErrorCode" : { "type" : "string", "description": "Código de error. Si el resultado de la operación es exitosa regresa un 0, de otro modo regresa un valor diferente a 0.", "example" : "0" }, "ErrorMessage" : { "type" : "string", "description": "Mensaje descriptivo del resultado de la operación solicitada.", "example" : "Operacion Exitosa." } } }

Status: 400 - Internal Server Error

Buscar Referencia /search

Use este método para buscar una referencia PayCash.

Este método proporciona información general de la manera en la que se creó la referencia:

  1. Si es de monto fijo o abierto
  2. Con o sin fecha de vencimiento
  3. Si es de pago único o recurrente
  4. Monto, fecha de creación, si está activa o cancelada, etc.
GET /search
Ejemplos de Uso y SDK

curl --location --request GET 'https://sb-api-pais-emisor.paycashglobal.com/v1/search?reference=' \ #Es necesario reemplazar 'pais' por tu país en la URL
--header 'Authorization: '
 
//Este ejemplo requiere de la librería OkHttp para JAVA
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
Request request = new Request.Builder()
  .url("https://sb-api-pais-emisor.paycashglobal.com/v1/search?reference=") //Es necesario reemplazar 'pais' por tu país en la URL
  .method("GET", null)
  .addHeader("Authorization", "")
  .build();
Response response = client.newCall(request).execute();
 
import io.swagger.client.api.EmisorApi;

public class EmisorApiExample {

  public static void main(String[] args) {
      EmisorApi apiInstance = new EmisorApi();
      String authorization = authorization_example; // String | Token to business partner , from PayCash Global.
      String reference = reference_example; // String | Reference to cancel
      try {
          array[RespSearchRef] result = apiInstance.searchReference(authorization, reference);
          System.out.println(result);
      } catch (ApiException e) {
          System.err.println("Exception when calling EmisorApi#searchReference");
          e.printStackTrace();
      }
  }
}

//Este ejemplo requiere de la librería NSURLSession para Obj-C
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sb-api-pais-emisor.paycashglobal.com/v1/search?reference="] //Es necesario reemplazar 'pais' por tu país en la URL
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @""
};

[request setAllHTTPHeaderFields:headers];

[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

var myHeaders = new Headers();
myHeaders.append("Authorization", "");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://sb-api-pais-emisor.paycashglobal.com/v1/search?reference=", requestOptions) //Es necesario reemplazar 'pais' por tu país en la URL
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
 
//Este ejemplo requiere de la librería RestSharp para C#
var client = new RestClient("https://sb-api-pais-emisor.paycashglobal.com/v1/search?reference="); //Es necesario reemplazar 'pais' por tu país en la URL
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
 
<?php
//Este ejemplo requiere de la librería cURL para PHP
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sb-api-pais-emisor.paycashglobal.com/v1/search?reference=', //Es necesario reemplazar 'pais' por tu país en la URL
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: '
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>
 
use Data::Dumper;
use WWW::SwaggerClient::Configuration;
use WWW::SwaggerClient::EmisorApi;

my $api_instance = WWW::SwaggerClient::EmisorApi->new();
my $authorization = authorization_example; # String | Token to business partner , from PayCash Global.
my $reference = reference_example; # String | Reference to cancel

eval { 
  my $result = $api_instance->searchReference(authorization => $authorization, reference => $reference);
  print Dumper($result);
};
if ($@) {
  warn "Exception when calling EmisorApi->searchReference: $@\n";
}
 
#Este ejemplo requiere de la librería http.client para Python
import http.client

conn = http.client.HTTPSConnection("sb-api-pais-emisor.paycashglobal.com") #Es necesario reemplazar 'pais' por tu país en la URL
payload = ''
headers = {
  'Authorization': ''
}
conn.request("GET", "/v1/search?reference=", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Parámetros

Header

Nombre Descripción
authorization*
String Token obtenido al momento de autenticarse. Resultado de ejecutar el método para obtener el token (authre).
Obligatorio

Query

Nombre Descripción
Reference
String Es la referencia PayCash a buscar.
Respuestas

Status: 200 - Successful Process

Schema

[ { "paging": { "results": { "required": [ "Amount", "CreateDate", "ErrorCode", "ErrorMessage", "ExpirationDate", "Reference", "SenderId", "StatusName", "Type" ], "type": "object", "properties": { "Reference": { "type": "number", "description": "Referencia PayCash a buscar.", "example": 7041625086521565 }, "Type": { "type": "string", "description": "Existen dos Tipo de referencia Unica y Recurrente. Unica: Solo una vez se reliza el pago. Recurrente: Se puede pagar varias veces.", "example": "Unica" }, "SenderId": { "type": "number", "description": "Identificador del emisor.", "example": 18 }, "Amount": { "type": "number", "description": "Monto del pago que debe de hacer el usuario. Si el monto es 0 significa que es de pago abierto, en caso contrario es de monto fijo.", "example": 25.23 }, "CreateDate": { "type": "string", "description": "Fecha de creación de la referencia PayCash.", "example": "2021-05-05" }, "StatusName": { "type": "string", "description": "Estado de la referencia PayCash, puede ser Active o Cancelled.", "example": "Cancelled" }, "ExpirationDate": { "type": "string", "description": "Es la fecha de vencimiento de la referencia PayCash. En caso de estar vacío inidica que no tiene fecha de vencimiento.", "example": "2021-12-31" }, "ErrorCode": { "type": "string", "description": "Código de error. Si el resultado de la operación es exitosa regresa un 0, de otro modo regresa un valor diferente a 0.", "example": "0" }, "ErrorMessage": { "type": "string", "description": "Mensaje descriptivo del resultado de la operación solicitada.", "example": "Operacion Exitosa." } } } } } ]

Status: 400 - Internal Server Error

Cancelar Referencia /cancel

Use este método para cancelar una referencia creada.

Al usar este método se valida lo siguiente de la referencia:

  1. Que sea del emisor
  2. Que no esté pagada
  3. Que no esté previamente cancelada
POST /cancel
Ejemplos de Uso y SDK
 
curl --location --request POST 'https://sb-api-pais-emisor.paycashglobal.com/v1/cancel' \ #Es necesario reemplazar 'pais' por tu país en la URL
--header 'Authorization: ' \
--header 'Content-Type: application/json' \
--data-raw '{
    "Reference":""
}'
 
//Este ejemplo requiere de la librería OkHttp para JAVA
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"Reference\":\"\"\r\n}");
Request request = new Request.Builder()
  .url("https://sb-api-pais-emisor.paycashglobal.com/v1/cancel") //Es necesario reemplazar 'pais' por tu país en la URL
  .method("POST", body)
  .addHeader("Authorization", "")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
 
import io.swagger.client.api.EmisorApi;

public class EmisorApiExample {

    public static void main(String[] args) {
        EmisorApi apiInstance = new EmisorApi();
        String authorization = authorization_example; // String | Token to business partner , from PayCash Global.
        String reference = reference_example; // String | Reference to cancel
        try {
            array[RespCancelRef] result = apiInstance.referenceCancel(authorization, reference);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling EmisorApi#referenceCancel");
            e.printStackTrace();
        }
    }
}
 
//Este ejemplo requiere de la librería NSURLSession para Obj-C
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sb-api-pais-emisor.paycashglobal.com/v1/cancel"] //Es necesario reemplazar 'pais' por tu país en la URL
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"",
  @"Content-Type": @"application/json"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\r\n    \"Reference\":\"\"\r\n}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
 
var myHeaders = new Headers();
myHeaders.append("Authorization", "");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "Reference": ""
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://sb-api-pais-emisor.paycashglobal.com/v1/cancel", requestOptions) //Es necesario reemplazar 'pais' por tu país en la URL
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
 
//Este ejemplo requiere de la librería RestSharp para C#
var client = new RestClient("https://sb-api-pais-emisor.paycashglobal.com/v1/cancel"); //Es necesario reemplazar 'pais' por tu país en la URL
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "");
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@"    ""Reference"":""""
" + "\n" +
@"}";
request.AddParameter("application/json", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
 
<?php
//Este ejemplo requiere de la librería cURL para PHP
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sb-api-pais-emisor.paycashglobal.com/v1/cancel', //Es necesario reemplazar 'pais' por tu país en la URL
  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 =>'{
    "Reference":""
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: ',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>
 
use Data::Dumper;
use WWW::SwaggerClient::Configuration;
use WWW::SwaggerClient::EmisorApi;

my $api_instance = WWW::SwaggerClient::EmisorApi->new();
my $authorization = authorization_example; # String | Token to business partner , from PayCash Global.
my $reference = reference_example; # String | Reference to cancel

eval { 
    my $result = $api_instance->referenceCancel(authorization => $authorization, reference => $reference);
    print Dumper($result);
};
if ($@) {
    warn "Exception when calling EmisorApi->referenceCancel: $@\n";
}
 
#Este ejemplo requiere de la librería http.client para Python
import http.client
import json

conn = http.client.HTTPSConnection("sb-api-pais-emisor.paycashglobal.com") #Es necesario reemplazar 'pais' por tu país en la URL
payload = json.dumps({
  "Reference": ""
})
headers = {
  'Authorization': '',
  'Content-Type': 'application/json'
}
conn.request("POST", "/v1/cancel", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Parámetros

Header

Nombre Descripción
authorization*
String Token obtenido al momento de autenticarse. Resultado de ejecutar el método para obtener el token (authre).
Obligatorio

Body

Nombre Descripción
Reference
String Referencia PayCash a cancelar.
Respuestas

Status: 200 - Successful Process

Schema

{ "required" : [ "ErrorCode", "ErrorMessage", "Reference", "StatusName" ], "type" : "object", "properties" : { "Reference" : { "type" : "number", "description" : "Referencia PayCash a cancelar.", "example" : 7041625086521565 }, "StatusName" : { "type" : "string", "description" :"Estado de referencia.", "example" : "Cancelled" }, "ErrorCode" : { "type" : "string", "description": "Código de error. Si el resultado de la operación es exitosa regresa un 0, de otro modo regresa un valor diferente a 0.", "example" : "0" }, "ErrorMessage" : { "type" : "string", "description": "Mensaje descriptivo del resultado de la operación solicitada.", "example" : "Operacion Exitosa." } } }

Status: 400 - Internal Server Error

Consultar Pagos /payments

Consulta los pagos de referencias realizados en una fecha específica a partir de una hora.

Esté método generalmente es usado cuando el emisor está interesado en conocer si sus referencias ya fueron pagadas.
Queda del lado del emisor el implementar este mecanismo de búsqueda.
Para este escenario se recomienda solicitar la habilitación de la notificación de pago automatica a través de webHooks.

GET /payments
Ejemplos de Uso y SDK
 
curl --location --request GET 'https://sb-api-pais-emisor.paycashglobal.com/v1/payments?Date=&Hour=' \ #Es necesario reemplazar 'pais' por tu país en la URL
--header 'Authorization: '
 
//Este ejemplo requiere de la librería OkHttp para JAVA
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
Request request = new Request.Builder()
  .url("https://sb-api-pais-emisor.paycashglobal.com/v1/payments?Date=&Hour=") //Es necesario reemplazar 'pais' por tu país en la URL
  .method("GET", null)
  .addHeader("Authorization", "")
  .build();
Response response = client.newCall(request).execute();
 
import io.swagger.client.api.EmisorApi;
  
  public class EmisorApiExample {
      public static void main(String[] args) {
          EmisorApi apiInstance = new EmisorApi();
          String authorization = authorization_example; // String | Token to business partner , from PayCash Global.
          String Date = date_example; // String | Date to yyyy-mm-dd
          String Hour = hour_example; // String | Hour to HH:MM:ss
          try {
              array[RespSearchRef] result = apiInstance.Payments(authorization, Date,Hour);
              System.out.println(result);
          } catch (ApiException e) {
              System.err.println("Exception when calling EmisorApi#Payments");
              e.printStackTrace();
          }
      }
  }
 
//Este ejemplo requiere de la librería NSURLSession para Obj-C
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sb-api-pais-emisor.paycashglobal.com/v1/payments?Date=&Hour="] //Es necesario reemplazar 'pais' por tu país en la URL
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @""
};

[request setAllHTTPHeaderFields:headers];

[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
 
var myHeaders = new Headers();
myHeaders.append("Authorization", "");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://sb-api-pais-emisor.paycashglobal.com/v1/payments?Date=&Hour=", requestOptions) //Es necesario reemplazar 'pais' por tu país en la URL
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
 
//Este ejemplo requiere de la librería RestSharp para C#
var client = new RestClient("https://sb-api-pais-emisor.paycashglobal.com/v1/payments?Date=&Hour="); //Es necesario reemplazar 'pais' por tu país en la URL
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
 
<?php
//Este ejemplo requiere de la librería cURL para PHP
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sb-api-pais-emisor.paycashglobal.com/v1/payments?Date=&Hour=', //Es necesario reemplazar 'pais' por tu país en la URL
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: '
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
  ?>
 
use Data::Dumper;
  use WWW::SwaggerClient::Configuration;
  use WWW::SwaggerClient::EmisorApi;
  
  my $api_instance = WWW::SwaggerClient::EmisorApi->new();
  my $authorization = authorization_example; # String | Token to business partner , from PayCash Global.
  my $Date = date_example; # String | Date to yyyy-mm-dd
  my $Hour = date_example; # String | Hour to HH:MM:ss
  
  eval { 
      my $result = $api_instance->Payments(authorization => $authorization,Date => $date,Hour => $hour);
      print Dumper($result);
  };
  if ($@) {
      warn "Exception when calling EmisorApi->Payments: $@\n";
  }
 
#Este ejemplo requiere de la librería http.client para Python
import http.client

conn = http.client.HTTPSConnection("sb-api-pais-emisor.paycashglobal.com") #Es necesario reemplazar 'pais' por tu país en la URL
payload = ''
headers = {
  'Authorization': ''
}
conn.request("GET", "/v1/payments?Date=&Hour=", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Parámetros

Header

Nombre Descripción
authorization*
String Token obtenido al momento de autenticarse. Resultado de ejecutar el método para obtener el token (authre).
Obligado

Query

Nombre Descripción
Date
String Fecha en la que se desea consultar los pagos.
Formato: yyyy-mm-dd
Obligatorio
Hour
String Hora a partir de la cual se hace la consulta de pagos.
Formato: hh:mm:ss
Obligatorio
Respuestas

Status: 200 - Successful Process

Schema

{ "required" : [ "PaymentId", "Type", "SenderId", "Amount", "Commission", "Date", "Hour" , "Authorization", "Reference", "Status", "RefValue"], "type" : "object", "properties" : { "PaymentId" : { "type" : "number", "description" :"Es el número de identificador asignado a esta transacción. Este valor es único por cada pago realizado.", "example" : 7041625086521565 }, "Type" : { "type" : "number", "description": "Indica si la referencia es de pago único o recurrente. 1.- Referencia de pago único. 2.- Referencia de pago recurrente.", "example" : 2 }, "SenderId" : { "type" : "number", "description" :"Identificador del emisor.", "example" : 72 }, "Sequence" : { "type" : "string", "description" :"Es un identificador de la operación, es un dato interno del establecimiento. Deber ser único por sucursal y por día.", "example" : "1293226976" }, "Amount" : { "type" : "number", "description" :"Monto del pago.", "example" : 1221.55 }, "Commission" : { "type" : "number", "description" :"Es la comisión acordada a cobrar al usuario final por la transacción realizada.", "example" : 10.00 }, "Date" : { "type" : "string", "description": "Fecha en la que fue pagada la referencia.", "example" : "2020-10-23" }, "Hour" : { "type" : "string", "description": " Hora en la que fue pagada la referencia.", "example" : "15:47:26" }, "Authorization" : { "type" : "number", "description": "Es el código de autorización asociado al pago.", "example" : 100406056466644 }, "Reference" : { "type" : "number", "description":"Referencia PayCash.", "example" : 1004000427402 }, "Status" : { "type" : "number", "description": "Estatus del pago consultado. 0.- Pago consultado previamente. 1.- Pago consultado por primera vez.", "example" : 1 }, "RefValue" : { "type" : "number", "description": "Información establecida al momento de crear la referencia PayCash. Es una cadena que recibe datos alfanuméricos de hasta 40 posiciones.", "example" : 427402 } } }

Status: 400 - Internal Server Error

Obtener Token Puntos de Pago

Use este método para obtener el token que se utilizara en la consulta de puntos de pago.

GET /authre
Ejemplos de Uso y SDK
	 
	curl --location --request GET 'https://sb-api-geolocalizacion.paycashglobal.com/v1/authre?country=MEX&key=R347E5C4R3D3F3CT1V4'
	
	 
//Este ejemplo requiere de la librería OkHttp para JAVA
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://sb-api-geolocalizacion.paycashglobal.com/v1/authre?country=MEX&key=R347E5C4R3D3F3CT1V4")
  .method("GET", body)
  .build();
Response response = client.newCall(request).execute();
	
	 
	import io.swagger.client.api.EmisorApi;
		
		public class CadenaCCApiExample {
		  public static void main(String[] args) {
			CadenaCCApi apiInstance = new CadenaCCApi();
			  String authorization = authorization_example; // String | Token to business partner , from PayCash Global.
			  String Date = date_example; // String | Date to yyyy-mm-dd
			  String Hour = hour_example; // String | Hour to HH:MM:ss
			  try {
				  array[RespPaymentRef] result = apiInstance.Payments(authorization, Date,Hour);
				  System.out.println(result);
			  } catch (ApiException e) {
				  System.err.println("Exception when calling CadenaCCApi#Payments");
				  e.printStackTrace();
			  }
		  }
		}
	
	 
//Este ejemplo requiere de la librería NSURLSession para Obj-C
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sb-api-geolocalizacion.paycashglobal.com/v1/authre?country=MEX&key=R347E5C4R3D3F3CT1V4"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];

[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
	
	 
  var requestOptions = {
  method: 'GET',
  redirect: 'follow'
};

fetch("https://sb-api-geolocalizacion.paycashglobal.com/v1/authre?country=MEX&key=R347E5C4R3D3F3CT1V4", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
	
	 
//Este ejemplo requiere de la librería RestSharp para C#
var client = new RestClient("https://sb-api-geolocalizacion.paycashglobal.com/v1/authre?country=MEX&key=R347E5C4R3D3F3CT1V4");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
	
	 
<?php
//Este ejemplo requiere de la librería cURL para PHP
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sb-api-geolocalizacion.paycashglobal.com/v1/authre?country=MEX&key=R347E5C4R3D3F3CT1V4',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

?>
	
	 
	use Data::Dumper;
		use WWW::SwaggerClient::Configuration;
		use WWW::SwaggerClient::CadenaCCApi;
		
		my $api_instance = WWW::SwaggerClient::CadenaCCApi->new();
		my $authorization = authorization_example; # String | Token to business partner , from PayCash Global.
		my $Date = date_example; # String | Date to yyyy-mm-dd
		my $Hour = date_example; # String | Hour to HH:MM:ss
		
		eval { 
		  my $result = $api_instance->Payments(authorization => $authorization,Date => $date,Hour => $hour);
		  print Dumper($result);
		};
		if ($@) {
		  warn "Exception when calling CadenaCCApi->Payments: $@\n";
		}
	
	 
#Este ejemplo requiere de la librería http.client para Python
import http.client

conn = http.client.HTTPSConnection("sb-api-geolocalizacion.paycashglobal.com")
payload = ''
headers = {}
conn.request("GET", "/v1/authre?country=MEX&key=R347E5C4R3D3F3CT1V4", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
	
Parámetros

Header

Nombre Descripción
key*
String El API Key es un identificador único utilizado para autenticar al usuario. Es proporcionado por el equipo de PayCash.
Obligado
country*
String Es el identificador del país.
MEX - México
COL - Colombia
ECU - Ecuador
PAN - Panamá
GTM - Guatemala
PER - Perú
CRI - Costa Rica
NIC - Nicaragua
Obligado
Respuestas

Status: 200 - Successful Process

Schema

{ "Authorization": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIiwiY3R5IjoiSldUIn0.k5mhD9z7k9gfrVXwynDnJ7admGO86ftRQB7P21cPVk2_gfMaJlqB3MM97DkPQA4aHi_xG4omHK6Wmsnhapg1pugS7jHN7MUP.7kj7b6O_Pv8mZ9_hFgxM-w.I3UhgxvnCxMdQgyV0FoInprGwBcwDkbH6sioEEHVlup_q4HbJ3q9gwBKHkLT0ISVdo8iegmkgnnd_KkxULe-JdOnYoryekbtveqMdavwe2YOZbr8wGF4ae35krOP1LW3NbiYlly3SwwtI-72PanKox6gBbcUtHaA7gtOYlkzOABG-BXX-L5gzQ-d-htZcb_gr9F_IamUizKQYdoJlHr7p9gZ8g4ufuBvLeSgogFVhS32TYhjkem7M-SRxj92TxacyFZoYL-1kS4woZrRMgjv3j1t6mjCF8wKja2eCWVqkX9mI0ZH0Rr3mIHva1fOrFovz49eJ6HQPZu0xY_q08lInA4QvDclYv98q7_BMH3916eMovRxulF8nnfDfAY5HMWzO6QR_g2CmveHdjDAk7u8YJMfRsRLBLZ20p-gK9HqFjc.Pq20JSPi6YniYbahyGwadM8MMC7PBUXPI0O9yp3I_hU", "Expires_in": "8/22/2072 5:16:43 PM", "ErrorCode": "0", "ErrorMessage": "Operacion Exitosa." }
Consultar Puntos de Pago

Use el token y los parámetros (longitud y latitud) en formato json para ver las ubicaciones de pago alrededor de una coordenada específica.

POST /puntospago
Ejemplos de Uso y SDK
	 
curl --location --request POST 'https://sb-api-geolocalizacion.paycashglobal.com/v1/puntospago' \
--header 'Authorization: eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0.pm-lvV3b-BvyRr_ztiJ0RDCN6mhBTeMpMXGjfk6GYlYGLP-sXm2VNH32dRIZVd7n7aFSAbhuJ0Tbbgik01MJxvwfSjrJi3cr.q1tq7Aq0YF4mETAB0V8P5Q.XFqcyHhawzHZ_QGOfbr59xzFJc_2UZnV-7RjaW1rX4JvzyNGfin5w-bsFSJ5Hveh0-n475Ixx0CUpUIYn6XOlHGFUyvZre_QDH8WbbPzLYJ6ew-sXiFSzZ7HXyvpdHLWWNr1ji1Cb7ihNF4DCiSKti1oeDMh24yw1F9JmsOU2CeMKJZwUYhraPynjClN-Ib3nnNJUdG-5UB-uGEFsAa2gJOgNO1EHGYFXYEYbeorOVg3lvqzoEVTJaqKfqymLOXo8YmeohpuAHvXJwhPeCYdmiA6RBR43NAlPDU4Sm-wa2GPrlv63ksBZQUwq-sEWr_l1a92kZeSdwN4cLQcZ9DDAJcdTsfrErnivxRUfUDk-m8eSNkmUEok5Xa4nzO2MZY0G1fu4-aDGkJprA5SCdzavnS-c_6zhAL6nlmvsBFC0Lk.xQtGIczE0-OnosVYocpz85OJkTKL3XoE9ZVRvqNuw_A' \
--header 'Content-Type: application/json' \
--data-raw '{
    "latitude": 6.04042,
    "longitude": -72.63666
}'
	
	 
//Este ejemplo requiere de la librería OkHttp para JAVA
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"latitude\": 6.04042,\r\n    \"longitude\": -72.63666\r\n}");
Request request = new Request.Builder()
  .url("https://sb-api-geolocalizacion.paycashglobal.com/v1/puntospago")
  .method("POST", body)
  .addHeader("Authorization", "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0.pm-lvV3b-BvyRr_ztiJ0RDCN6mhBTeMpMXGjfk6GYlYGLP-sXm2VNH32dRIZVd7n7aFSAbhuJ0Tbbgik01MJxvwfSjrJi3cr.q1tq7Aq0YF4mETAB0V8P5Q.XFqcyHhawzHZ_QGOfbr59xzFJc_2UZnV-7RjaW1rX4JvzyNGfin5w-bsFSJ5Hveh0-n475Ixx0CUpUIYn6XOlHGFUyvZre_QDH8WbbPzLYJ6ew-sXiFSzZ7HXyvpdHLWWNr1ji1Cb7ihNF4DCiSKti1oeDMh24yw1F9JmsOU2CeMKJZwUYhraPynjClN-Ib3nnNJUdG-5UB-uGEFsAa2gJOgNO1EHGYFXYEYbeorOVg3lvqzoEVTJaqKfqymLOXo8YmeohpuAHvXJwhPeCYdmiA6RBR43NAlPDU4Sm-wa2GPrlv63ksBZQUwq-sEWr_l1a92kZeSdwN4cLQcZ9DDAJcdTsfrErnivxRUfUDk-m8eSNkmUEok5Xa4nzO2MZY0G1fu4-aDGkJprA5SCdzavnS-c_6zhAL6nlmvsBFC0Lk.xQtGIczE0-OnosVYocpz85OJkTKL3XoE9ZVRvqNuw_A")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
	
	 
	import io.swagger.client.api.EmisorApi;
		
		public class CadenaCCApiExample {
		  public static void main(String[] args) {
			CadenaCCApi apiInstance = new CadenaCCApi();
			  String authorization = authorization_example; // String | Token to business partner , from PayCash Global.
			  String Date = date_example; // String | Date to yyyy-mm-dd
			  String Hour = hour_example; // String | Hour to HH:MM:ss
			  try {
				  array[RespPaymentRef] result = apiInstance.Payments(authorization, Date,Hour);
				  System.out.println(result);
			  } catch (ApiException e) {
				  System.err.println("Exception when calling CadenaCCApi#Payments");
				  e.printStackTrace();
			  }
		  }
		}
	
	 
//Este ejemplo requiere de la librería NSURLSession para Obj-C
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sb-api-geolocalizacion.paycashglobal.com/v1/puntospago"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0.pm-lvV3b-BvyRr_ztiJ0RDCN6mhBTeMpMXGjfk6GYlYGLP-sXm2VNH32dRIZVd7n7aFSAbhuJ0Tbbgik01MJxvwfSjrJi3cr.q1tq7Aq0YF4mETAB0V8P5Q.XFqcyHhawzHZ_QGOfbr59xzFJc_2UZnV-7RjaW1rX4JvzyNGfin5w-bsFSJ5Hveh0-n475Ixx0CUpUIYn6XOlHGFUyvZre_QDH8WbbPzLYJ6ew-sXiFSzZ7HXyvpdHLWWNr1ji1Cb7ihNF4DCiSKti1oeDMh24yw1F9JmsOU2CeMKJZwUYhraPynjClN-Ib3nnNJUdG-5UB-uGEFsAa2gJOgNO1EHGYFXYEYbeorOVg3lvqzoEVTJaqKfqymLOXo8YmeohpuAHvXJwhPeCYdmiA6RBR43NAlPDU4Sm-wa2GPrlv63ksBZQUwq-sEWr_l1a92kZeSdwN4cLQcZ9DDAJcdTsfrErnivxRUfUDk-m8eSNkmUEok5Xa4nzO2MZY0G1fu4-aDGkJprA5SCdzavnS-c_6zhAL6nlmvsBFC0Lk.xQtGIczE0-OnosVYocpz85OJkTKL3XoE9ZVRvqNuw_A",
  @"Content-Type": @"application/json"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\r\n    \"latitude\": 6.04042,\r\n    \"longitude\": -72.63666\r\n}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
	
	 
var myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0.pm-lvV3b-BvyRr_ztiJ0RDCN6mhBTeMpMXGjfk6GYlYGLP-sXm2VNH32dRIZVd7n7aFSAbhuJ0Tbbgik01MJxvwfSjrJi3cr.q1tq7Aq0YF4mETAB0V8P5Q.XFqcyHhawzHZ_QGOfbr59xzFJc_2UZnV-7RjaW1rX4JvzyNGfin5w-bsFSJ5Hveh0-n475Ixx0CUpUIYn6XOlHGFUyvZre_QDH8WbbPzLYJ6ew-sXiFSzZ7HXyvpdHLWWNr1ji1Cb7ihNF4DCiSKti1oeDMh24yw1F9JmsOU2CeMKJZwUYhraPynjClN-Ib3nnNJUdG-5UB-uGEFsAa2gJOgNO1EHGYFXYEYbeorOVg3lvqzoEVTJaqKfqymLOXo8YmeohpuAHvXJwhPeCYdmiA6RBR43NAlPDU4Sm-wa2GPrlv63ksBZQUwq-sEWr_l1a92kZeSdwN4cLQcZ9DDAJcdTsfrErnivxRUfUDk-m8eSNkmUEok5Xa4nzO2MZY0G1fu4-aDGkJprA5SCdzavnS-c_6zhAL6nlmvsBFC0Lk.xQtGIczE0-OnosVYocpz85OJkTKL3XoE9ZVRvqNuw_A");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "latitude": 6.04042,
  "longitude": -72.63666
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://sb-api-geolocalizacion.paycashglobal.com/v1/puntospago", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
	
	 
//Este ejemplo requiere de la librería RestSharp para C#
var client = new RestClient("https://sb-api-geolocalizacion.paycashglobal.com/v1/puntospago");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0.pm-lvV3b-BvyRr_ztiJ0RDCN6mhBTeMpMXGjfk6GYlYGLP-sXm2VNH32dRIZVd7n7aFSAbhuJ0Tbbgik01MJxvwfSjrJi3cr.q1tq7Aq0YF4mETAB0V8P5Q.XFqcyHhawzHZ_QGOfbr59xzFJc_2UZnV-7RjaW1rX4JvzyNGfin5w-bsFSJ5Hveh0-n475Ixx0CUpUIYn6XOlHGFUyvZre_QDH8WbbPzLYJ6ew-sXiFSzZ7HXyvpdHLWWNr1ji1Cb7ihNF4DCiSKti1oeDMh24yw1F9JmsOU2CeMKJZwUYhraPynjClN-Ib3nnNJUdG-5UB-uGEFsAa2gJOgNO1EHGYFXYEYbeorOVg3lvqzoEVTJaqKfqymLOXo8YmeohpuAHvXJwhPeCYdmiA6RBR43NAlPDU4Sm-wa2GPrlv63ksBZQUwq-sEWr_l1a92kZeSdwN4cLQcZ9DDAJcdTsfrErnivxRUfUDk-m8eSNkmUEok5Xa4nzO2MZY0G1fu4-aDGkJprA5SCdzavnS-c_6zhAL6nlmvsBFC0Lk.xQtGIczE0-OnosVYocpz85OJkTKL3XoE9ZVRvqNuw_A");
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@"    ""latitude"": 6.04042,
" + "\n" +
@"    ""longitude"": -72.63666
" + "\n" +
@"}";
request.AddParameter("application/json", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
	
	 
<?php
//Este ejemplo requiere de la librería cURL para PHP
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sb-api-geolocalizacion.paycashglobal.com/v1/puntospago',
  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 =>'{
    "latitude": 6.04042,
    "longitude": -72.63666
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0.pm-lvV3b-BvyRr_ztiJ0RDCN6mhBTeMpMXGjfk6GYlYGLP-sXm2VNH32dRIZVd7n7aFSAbhuJ0Tbbgik01MJxvwfSjrJi3cr.q1tq7Aq0YF4mETAB0V8P5Q.XFqcyHhawzHZ_QGOfbr59xzFJc_2UZnV-7RjaW1rX4JvzyNGfin5w-bsFSJ5Hveh0-n475Ixx0CUpUIYn6XOlHGFUyvZre_QDH8WbbPzLYJ6ew-sXiFSzZ7HXyvpdHLWWNr1ji1Cb7ihNF4DCiSKti1oeDMh24yw1F9JmsOU2CeMKJZwUYhraPynjClN-Ib3nnNJUdG-5UB-uGEFsAa2gJOgNO1EHGYFXYEYbeorOVg3lvqzoEVTJaqKfqymLOXo8YmeohpuAHvXJwhPeCYdmiA6RBR43NAlPDU4Sm-wa2GPrlv63ksBZQUwq-sEWr_l1a92kZeSdwN4cLQcZ9DDAJcdTsfrErnivxRUfUDk-m8eSNkmUEok5Xa4nzO2MZY0G1fu4-aDGkJprA5SCdzavnS-c_6zhAL6nlmvsBFC0Lk.xQtGIczE0-OnosVYocpz85OJkTKL3XoE9ZVRvqNuw_A',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>
	
	 
	use Data::Dumper;
		use WWW::SwaggerClient::Configuration;
		use WWW::SwaggerClient::CadenaCCApi;
		
		my $api_instance = WWW::SwaggerClient::CadenaCCApi->new();
		my $authorization = authorization_example; # String | Token to business partner , from PayCash Global.
		my $Date = date_example; # String | Date to yyyy-mm-dd
		my $Hour = date_example; # String | Hour to HH:MM:ss
		
		eval { 
		  my $result = $api_instance->Payments(authorization => $authorization,Date => $date,Hour => $hour);
		  print Dumper($result);
		};
		if ($@) {
		  warn "Exception when calling CadenaCCApi->Payments: $@\n";
		}
	
	 
#Este ejemplo requiere de la librería http.client para Python
import http.client
import json

conn = http.client.HTTPSConnection("sb-api-geolocalizacion.paycashglobal.com")
payload = json.dumps({
  "latitude": 6.04042,
  "longitude": -72.63666
})
headers = {
  'Authorization': 'eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0.pm-lvV3b-BvyRr_ztiJ0RDCN6mhBTeMpMXGjfk6GYlYGLP-sXm2VNH32dRIZVd7n7aFSAbhuJ0Tbbgik01MJxvwfSjrJi3cr.q1tq7Aq0YF4mETAB0V8P5Q.XFqcyHhawzHZ_QGOfbr59xzFJc_2UZnV-7RjaW1rX4JvzyNGfin5w-bsFSJ5Hveh0-n475Ixx0CUpUIYn6XOlHGFUyvZre_QDH8WbbPzLYJ6ew-sXiFSzZ7HXyvpdHLWWNr1ji1Cb7ihNF4DCiSKti1oeDMh24yw1F9JmsOU2CeMKJZwUYhraPynjClN-Ib3nnNJUdG-5UB-uGEFsAa2gJOgNO1EHGYFXYEYbeorOVg3lvqzoEVTJaqKfqymLOXo8YmeohpuAHvXJwhPeCYdmiA6RBR43NAlPDU4Sm-wa2GPrlv63ksBZQUwq-sEWr_l1a92kZeSdwN4cLQcZ9DDAJcdTsfrErnivxRUfUDk-m8eSNkmUEok5Xa4nzO2MZY0G1fu4-aDGkJprA5SCdzavnS-c_6zhAL6nlmvsBFC0Lk.xQtGIczE0-OnosVYocpz85OJkTKL3XoE9ZVRvqNuw_A',
  'Content-Type': 'application/json'
}
conn.request("POST", "/v1/puntospago", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
	
Parámetros

Header

Nombre Descripción
authorization*
String Token obtenido al momento de autenticarse. Resultado de ejecutar el método para obtener el token (authre).
Obligado

Query

Nombre Descripción
Latitude
number Latitud en donde se encuentra el origen para la búsqueda de los puntos de pago.
Obligado
Longitude
number Longitud en donde se encuentra el origen para la búsqueda de los puntos de pago.
Obligado
Respuestas

Status: 200 - Successful Process

Schema

{ "ErrorCode": { type: "string", description: "Código de error. Si el resultado de la operación es exitosa regresa 0, de otro modo regresa un valor diferente a 0.", example: "0" }, "ErrorMessage": { type: "string", description: "Mensaje descriptivo de la operación solicitada.", example: "Operación Exitosa" }, "Total": { type: "number", description: "Número de registros localizados.", example: 1500 }, "Results": [ { "Brand": { type: "string", description: "Nombre del establecimiento.", example: "Cadena" }, "Address": { type: "string", description: "Dirección del establecimiento.", example: "Av. Siempre Viva 742" }, "Icon": { type: "string", description: "URL del logotipo deL establecimiento.", example: "https://paycash-storage.s3.amazonaws.com/Geolocalizacion/banorte.svg" }, "Lat": { type: "string", description: "Latitud de la dirección del establecimiento.", example: "37.123225" }, "Lng": { type: "string", description: "Longitud de la dirección del establecimiento.", example: "-123.022029" }, "Proximity": { type: "number", description: "Indica numéricamente cuál es el establecimiento más cercano con respecto al punto de origen.", example: 1 } } ] }

Códigos de Respuesta

API REST México
Propósito

Identificar los códigos de respuesta que existen para cada método.

La siguiente tabla muestra los códigos de respuesta que existen para cada método.

No. Método Código Mensaje de respuesta
1 Authre 0 Operacion Exitosa.
2 111 Error General. El acceso para generar el token es invalido.
3 111 Error General. Llave de usuario es invalida.
4 Cancel 0 Operacion Exitosa.
5 51 existe un pago confirmado, no se puede cancelar
6 61 la operacion no existe.
7 71 la operacion ha sido previamente cancelada.
8 Search 0 Operacion Exitosa.
9 102 Error General. AuthCode es invalido.
10 102 Error General. AuthCode Estatus invalido.
11 102 Error General. AuthCode type es invalido.
12 102 Error General. AuthCode ha expirado.
13 102 Error General. Referencia invalida.
14 102 Error General. Referencia no corresponde al Emisor.
15 102 Error General. El emisor indicado no es valido.
16 102 Error General. Estatus de emisor invalido.
17 Reference 0 Operacion Exitosa.
18 22 El emisor indicado no es valido.
19 23 Error en tipo de referencia, por favor verifique datos.
20 24 Error. No es posible generar la referencia.
21 25 Monto invalido, monto superior al maximo configurado.
22 Reversepayment SC 0 Operacion Exitosa.
23 0 El pago ya fue procesado.
24 50 Operacion invalida o previamente cancelada.
25 50 Tiempo maximo para reverso ha expirado.
26 61 La operacion no existe.
27 71 La operacion no existe.
28 API 101 Campo Tipo solo acepta valores true o false
29 101 Monto debe ser menor o igual a 999999999999.9999
30 101 Monto debe ser mayor o igual a 0
31 101 Monto es requerido
32 101 Fecha Vigencia Invalida ---> Fecha debe ser mas grande que la fecha actual!
33 150 Error Service.
API Rest LATAM
Propósito

Identificar los códigos de respuesta que existen para cada método.

La siguiente tabla muestra los códigos de respuesta que existen para cada método.

No. Método Código Mensaje de respuesta
1 Authre 0 Operacion Exitosa.
2 111 Error General. El acceso para generar el token es invalido.
3 111 Error General. Llave de usuario es invalida.
4 Reference 0 Operacion Exitosa.
5 101 Error General. AuthCode es invalido.
6 101 Error General. AuthCode Estatus invalido.
7 101 Error General. AuthCode type es invalido.
8 101 Error General. AuthCode ha expirado.
9 101 Error General. El emisor indicado no es valido.
10 101 Error General. Estatus de emisor invalido.
11 101 Error General. El pais indicado no es valido.
12 101 Error General. Estatus de pais invalido.
13 101 Error General. Parametro invalido.
14 101 Error General. Monto Invalido, Monto superior al maximo configurado.
15 101 Error General. Referencia Invalida o duplicada.
16 Search 0 Operacion Exitosa.
17 102 Error General. Authcode es invalido.
18 102 Error General. AuthCode Estatus invalido.
19 102 Error General. AuthCode type es invalido.
20 102 Error General. Referencia invalida.
21 102 Error General. Referencia invalida.
22 102 Error General. El emisor indicado no es valido.
23 102 Error General. Estatus del emisor invalido.
24 Cancel 0 Operacion Exitosa.
25 102 Error General. AuthCode es invalido.
26 102 Error General. AuthCode Estatus invalido.
27 102 Error General. AuthCode ha expirado.
28 102 Error General. Referencia invalida.
29 102 Error General. Referencia con Estatus no valido.
30 102 Error General. Referencia no corresponde al emisor.
31 102 Error General. El emisor indicado no es valido.
32 102 Error General. Estatus del emisor invalido.
33 102 Error General. Referencia previamente eliminada.
34 Payments 0 Operacion Exitosa.
35 105 Error General. AuthCode es invalido.
36 105 Error General. AuthCode Estatus invalido.
37 105 Error General. AuthCode type es invalido.
38 105 Error General. AuthCode ha expirado.
39 105 Error General. Comercio indicado no es valido.
40 105 Error General. Estatus de cadena invalido.
41 105 Error General. La operación no existe.
42 API 101 Campo Tipo solo acepta valores true o false
43 101 Monto debe ser mayor o igual a 0
44 101 Monto debe ser menor o igual a 999999999999.9999
45 101 Monto es requerido
46 101 Fecha Vigencia Invalida ---> Fecha debe ser mas grande que la fecha actual!
47 112 Error acceso
48 112 Expiro token
49 112 Exception
50 112 Token incorrecto
51 112 Token invalido
52 113 Error acceso
53 114 Error acceso
54 114 Fecha expiracion debe ser mayor a Fecha actual
55 150 Error Service.

Sugerencias, contacto, soporte o reporte de errores soporte@paycashglobal.com