Referencia Técnica / Integración Cadenas Comerciales

Cómo empezar la integración

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 pagar una referencia PayCash basta con solicitarlo a través del método makepayment. Este método responderá con la autorización del pago y un identificador, el cual servirá para que el establecimiento confirme a través del método confirmpayment que recibió la autorización del pago exitosamente. En algunos escenarios el establecimiento pudiera realizar una búsqueda previa al pago para conocer el estado en que se encuentra la referencia, haciendo uso del método searchreference.

3.- Posterior al pago de la referencia PayCash, se pueden consultar los pagos realizados a una referencia o de todas las referencias pagadas en una fecha específica a través del método searchpayment.

4.- También como parte de la integración, es necesario enviar un archivo con las transacciones exitosas realizadas el día anterior, con el propósito de hacer la conciliación de estas operaciones y el pago de las comisiones correspondientes al establecimiento. El archivo se deposita en un SFTP del establecimiento o de PayCash.

Nota: El uso del método reversepayment está reservado para temas de timeout durante la solicitud o confirmación de pago en los métodos makepayment y confirmpayment.

Servicios con confirmación de pago

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.


/authre

Ejemplos de uso y SDK

curl -X GET\
          -H "Accept: application/json"\
          "https://sb-pais.paycashglobal.com/v1/authre?expirationdate=&unique="
import io.swagger.client.*;
          import io.swagger.client.auth.*;
          import io.swagger.client.model.*;
          import io.swagger.client.api.AuthreApi;

          import java.io.File;
          import java.util.*;

          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();
                  }
              }
          }
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();
                  }
              }
          }
String *key = key_example; // Unique key to business partner , from PayCash Global.
          String *expirationdate = expirationdate_example; // Token expiration date. (optional)
          Boolean *unique = true; // Token type "unique". PENDIENTE (optional)

          AuthreApi *apiInstance = [[AuthreApi alloc] init];

          // Get auth token
          [apiInstance getTokenWith:key
              expirationdate:expirationdate
              unique:unique
                        completionHandler: ^(array[RespAuther] output, NSError* error) {
                                      if (output) {
                                          NSLog(@"%@", output);
                                      }
                                      if (error) {
                                          NSLog(@"Error: %@", error);
                                      }
                                  }];
          
var PayCashGlobalCadenas = require('pay_cash_global_cadenas');

          var api = new PayCashGlobalCadenas.AuthreApi()
          var key = key_example; // {{String}} Unique key to business partner , from PayCash Global.
          var opts = { 
            'expirationdate': expirationdate_example, // {{String}} Token expiration date.
            'unique': true // {{Boolean}} Token type "unique". PENDIENTE
          };
          var callback = function(error, data, response) {
            if (error) {
              console.error(error);
            } else {
              console.log('API called Successfuly. Returned data: ' + data);
            }
          };
          api.getToken(key, opts, callback);
          
using System;
          using System.Diagnostics;
          using IO.Swagger.Api;
          using IO.Swagger.Client;
          using IO.Swagger.Model;

          namespace Example
          {
              public class getTokenExample
              {
                  public void main()
                  {

                      var apiInstance = new AuthreApi();
                      var key = key_example;  // String | Unique key to business partner , from PayCash Global.
                      var expirationdate = expirationdate_example;  // String | Token expiration date. (optional) 
                      var unique = true;  // Boolean | Token type "unique". PENDIENTE (optional) 

                      try
                      {
                          // Get auth token
                          array[RespAuther] result = apiInstance.getToken(key, expirationdate, unique);
                          Debug.WriteLine(result);
                      }
                      catch (Exception e)
                      {
                          Debug.Print("Exception when calling AuthreApi.getToken: " + e.Message );
                      }
                  }
              }
          }
          
<?php
          require_once(__DIR__ . '/vendor/autoload.php');

          $api_instance = new Swagger\Client\ApiAuthreApi();
          $key = key_example; // String | Unique key to business partner , from PayCash Global.
          $expirationdate = expirationdate_example; // String | Token expiration date.
          $unique = true; // Boolean | Token type "unique". PENDIENTE

          try {
              $result = $api_instance->getToken($key, $expirationdate, $unique);
              print_r($result);
          } catch (Exception $e) {
              echo 'Exception when calling AuthreApi->getToken: ', $e->getMessage(), PHP_EOL;
          }
          ?>
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";
          }
from __future__ import print_statement
          import time
          import swagger_client
          from swagger_client.rest import ApiException
          from pprint import pprint

          # create an instance of the API class
          api_instance = swagger_client.AuthreApi()
          key = key_example # String | Unique key to business partner , from PayCash Global.
          expirationdate = expirationdate_example # String | Token expiration date. (optional)
          unique = true # Boolean | Token type "unique". PENDIENTE (optional)

          try: 
              # Get auth token
              api_response = api_instance.get_token(key, expirationdate=expirationdate, unique=unique)
              pprint(api_response)
          except ApiException as e:
              print("Exception when calling AuthreApi->getToken: %s\n" % e)

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
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

Status: 400 - Internal Server Error.


Buscar una referencia / searchreference

Use este método para buscar una referencia PayCash y conocer algunos de sus atributos.

Este es un método de uso opcional, su uso depende de la manera de operar del establecimiento, es decir, no es obligado realizar la búsqueda de una referencia PayCash para proceder con el pago de la misma.


/cc/searchreference

Ejemplos de uso y SDK

curl -X GET\
          -H "Accept: application/json"\
          "https://sb-pais.paycashglobal.com/v1/cc/searchreference?Reference="
import io.swagger.client.*;
          import io.swagger.client.auth.*;
          import io.swagger.client.model.*;
          import io.swagger.client.api.CadenaCCApi;

          import java.io.File;
          import java.util.*;

          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 reference = reference_example; // String | Reference to search
                  try {
                      array[RespSearchRefCC] result = apiInstance.searchReference(authorization, reference);
                      System.out.println(result);
                  } catch (ApiException e) {
                      System.err.println("Exception when calling CadenaCCApi#searchReference");
                      e.printStackTrace();
                  }
              }
          }
import io.swagger.client.api.CadenaCCApi;

          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 reference = reference_example; // String | Reference to search
                  try {
                      array[RespSearchRefCC] result = apiInstance.searchReference(authorization, reference);
                      System.out.println(result);
                  } catch (ApiException e) {
                      System.err.println("Exception when calling CadenaCCApi#searchReference");
                      e.printStackTrace();
                  }
              }
          }
String *authorization = authorization_example; // Token to business partner , from PayCash Global.
          String *reference = reference_example; // Reference to search

          CadenaCCApi *apiInstance = [[CadenaCCApi alloc] init];

          // Search process for an existing reference.
          [apiInstance searchReferenceWith:authorization
              reference:reference
                        completionHandler: ^(array[RespSearchRefCC] output, NSError* error) {
                                      if (output) {
                                          NSLog(@"%@", output);
                                      }
                                      if (error) {
                                          NSLog(@"Error: %@", error);
                                      }
                                  }];
          
var PayCashGlobalCadenas = require('pay_cash_global_cadenas');

          var api = new PayCashGlobalCadenas.CadenaCCApi()
          var authorization = authorization_example; // {{String}} Token to business partner , from PayCash Global.
          var reference = reference_example; // {{String}} Reference to search

          var callback = function(error, data, response) {
            if (error) {
              console.error(error);
            } else {
              console.log('API called Successfuly. Returned data: ' + data);
            }
          };
          api.searchReference(authorization, reference, callback);
          
using System;
          using System.Diagnostics;
          using IO.Swagger.Api;
          using IO.Swagger.Client;
          using IO.Swagger.Model;

          namespace Example
          {
              public class searchReferenceExample
              {
                  public void main()
                  {

                      var apiInstance = new CadenaCCApi();
                      var authorization = authorization_example;  // String | Token to business partner , from PayCash Global.
                      var reference = reference_example;  // String | Reference to search

                      try
                      {
                          // Search process for an existing reference.
                          array[RespSearchRefCC] result = apiInstance.searchReference(authorization, reference);
                          Debug.WriteLine(result);
                      }
                      catch (Exception e)
                      {
                          Debug.Print("Exception when calling CadenaCCApi.searchReference: " + e.Message );
                      }
                  }
              }
          }
          
<?php
          require_once(__DIR__ . '/vendor/autoload.php');

          $api_instance = new Swagger\Client\ApiCadenaCCApi();
          $authorization = authorization_example; // String | Token to business partner , from PayCash Global.
          $reference = reference_example; // String | Reference to search

          try {
              $result = $api_instance->searchReference($authorization, $reference);
              print_r($result);
          } catch (Exception $e) {
              echo 'Exception when calling CadenaCCApi->searchReference: ', $e->getMessage(), PHP_EOL;
          }
          ?>
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 $reference = reference_example; # String | Reference to search

          eval { 
              my $result = $api_instance->searchReference(authorization => $authorization, reference => $reference);
              print Dumper($result);
          };
          if ($@) {
              warn "Exception when calling CadenaCCApi->searchReference: $@\n";
          }
from __future__ import print_statement
          import time
          import swagger_client
          from swagger_client.rest import ApiException
          from pprint import pprint

          # create an instance of the API class
          api_instance = swagger_client.CadenaCCApi()
          authorization = authorization_example # String | Token to business partner , from PayCash Global.
          reference = reference_example # String | Reference to search

          try: 
              # Search process for an existing reference.
              api_response = api_instance.search_reference(authorization, reference)
              pprint(api_response)
          except ApiException as e:
              print("Exception when calling CadenaCCApi->searchReference: %s\n" % e)

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
Reference*
String
Es la referencia PayCash a buscar.
Obligado

Respuestas

Status: 200 - Successful Process

Status: 400 - Internal Server Error.


Pagar una referencia / makepayment

Use este método para pagar una referencia PayCash.

Al momento de solicitar el pago de la referencia PayCash, el método valida lo siguiente:

1.- Que la referencia exista.

2.- Que la referencia este vigente.

3.- Que el monto a pagar sea mayor a cero y menor al permitido por el establecimiento.

4.- Que en referencias de monto fijo, el monto debe de ser el correspondiente al especificado en la referencia.

5.- Que una referencia única ya pagada no puede volverse a pagar.

6.- Que no se permite el pago de una referencia de un emisor inactivo.

7.- Que la comisión que se le cobra al cliente final debe de corresponder a lo acordado con el establecimiento.

8.- Que la secuencia de pago no se esté pagando mas de 1 vez en la misma sucursal, el mismo día.


/cc/makepayment

Ejemplos de uso y SDK

curl -X POST\
          -H "Accept: application/json"\
          -H "Content-Type: application/json"\
          "https://sb-pais.paycashglobal.com/v1/cc/makepayment"
import io.swagger.client.*;
          import io.swagger.client.auth.*;
          import io.swagger.client.model.*;
          import io.swagger.client.api.CadenaCCApi;

          import java.io.File;
          import java.util.*;

          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.
                  BodyMakePayment body = ; // BodyMakePayment | 
                  try {
                      array[RespMakePayment] result = apiInstance.makePayment(authorization, body);
                      System.out.println(result);
                  } catch (ApiException e) {
                      System.err.println("Exception when calling CadenaCCApi#makePayment");
                      e.printStackTrace();
                  }
              }
          }
import io.swagger.client.api.CadenaCCApi;

          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.
                  BodyMakePayment body = ; // BodyMakePayment | 
                  try {
                      array[RespMakePayment] result = apiInstance.makePayment(authorization, body);
                      System.out.println(result);
                  } catch (ApiException e) {
                      System.err.println("Exception when calling CadenaCCApi#makePayment");
                      e.printStackTrace();
                  }
              }
          }
String *authorization = authorization_example; // Token to business partner , from PayCash Global.
          BodyMakePayment *body = ; //  (optional)

          CadenaCCApi *apiInstance = [[CadenaCCApi alloc] init];

          // Referral payment process.
          [apiInstance makePaymentWith:authorization
              body:body
                        completionHandler: ^(array[RespMakePayment] output, NSError* error) {
                                      if (output) {
                                          NSLog(@"%@", output);
                                      }
                                      if (error) {
                                          NSLog(@"Error: %@", error);
                                      }
                                  }];
          
var PayCashGlobalCadenas = require('pay_cash_global_cadenas');

          var api = new PayCashGlobalCadenas.CadenaCCApi()
          var authorization = authorization_example; // {{String}} Token to business partner , from PayCash Global.
          var opts = { 
            'body':  // {{BodyMakePayment}} 
          };
          var callback = function(error, data, response) {
            if (error) {
              console.error(error);
            } else {
              console.log('API called Successfuly. Returned data: ' + data);
            }
          };
          api.makePayment(authorization, opts, callback);
          
using System;
          using System.Diagnostics;
          using IO.Swagger.Api;
          using IO.Swagger.Client;
          using IO.Swagger.Model;

          namespace Example
          {
              public class makePaymentExample
              {
                  public void main()
                  {

                      var apiInstance = new CadenaCCApi();
                      var authorization = authorization_example;  // String | Token to business partner , from PayCash Global.
                      var body = new BodyMakePayment(); // BodyMakePayment |  (optional) 

                      try
                      {
                          // Referral payment process.
                          array[RespMakePayment] result = apiInstance.makePayment(authorization, body);
                          Debug.WriteLine(result);
                      }
                      catch (Exception e)
                      {
                          Debug.Print("Exception when calling CadenaCCApi.makePayment: " + e.Message );
                      }
                  }
              }
          }
          
<?php
          require_once(__DIR__ . '/vendor/autoload.php');

          $api_instance = new Swagger\Client\ApiCadenaCCApi();
          $authorization = authorization_example; // String | Token to business partner , from PayCash Global.
          $body = ; // BodyMakePayment | 

          try {
              $result = $api_instance->makePayment($authorization, $body);
              print_r($result);
          } catch (Exception $e) {
              echo 'Exception when calling CadenaCCApi->makePayment: ', $e->getMessage(), PHP_EOL;
          }
          ?>
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 $body = WWW::SwaggerClient::Object::BodyMakePayment->new(); # BodyMakePayment | 

          eval { 
              my $result = $api_instance->makePayment(authorization => $authorization, body => $body);
              print Dumper($result);
          };
          if ($@) {
              warn "Exception when calling CadenaCCApi->makePayment: $@\n";
          }
from __future__ import print_statement
          import time
          import swagger_client
          from swagger_client.rest import ApiException
          from pprint import pprint

          # create an instance of the API class
          api_instance = swagger_client.CadenaCCApi()
          authorization = authorization_example # String | Token to business partner , from PayCash Global.
          body =  # BodyMakePayment |  (optional)

          try: 
              # Referral payment process.
              api_response = api_instance.make_payment(authorization, body=body)
              pprint(api_response)
          except ApiException as e:
              print("Exception when calling CadenaCCApi->makePayment: %s\n" % e)

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
Body
Nombre Descripción
body

Respuestas

Status: 200 - Successful Process

Status: 400 - Internal Server Error.




Confirmación del pago / confirmpayment

Use este método para confirmar que se recibió la respuesta de la solicitud de pago de la referencia PayCash.

Cuando se acuerda confirmar los pagos, este método es obligatorio o la operación no será considerada como exitosa. Es decir, pagar una referencia PayCash es en dos pasos, la solicitud del pago a través del método makePayment y la confirmación de que se recibió la autorización del pago con el método confirmPayment.


/cc/confirmpayment

Ejemplos de uso y SDK

curl -X POST\
          -H "Accept: application/json"\
          -H "Content-Type: application/json"\
          "https://sb-pais.paycashglobal.com/v1/cc/confirmpayment"
import io.swagger.client.*;
          import io.swagger.client.auth.*;
          import io.swagger.client.model.*;
          import io.swagger.client.api.CadenaCCApi;

          import java.io.File;
          import java.util.*;

          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.
                  BodyCancelPayment body = ; // BodyCancelPayment | 
                  try {
                      array[RespConfirmPayment] result = apiInstance.confirmPayment(authorization, body);
                      System.out.println(result);
                  } catch (ApiException e) {
                      System.err.println("Exception when calling CadenaCCApi#confirmPayment");
                      e.printStackTrace();
                  }
              }
          }
import io.swagger.client.api.CadenaCCApi;

          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.
                  BodyCancelPayment body = ; // BodyCancelPayment | 
                  try {
                      array[RespConfirmPayment] result = apiInstance.confirmPayment(authorization, body);
                      System.out.println(result);
                  } catch (ApiException e) {
                      System.err.println("Exception when calling CadenaCCApi#confirmPayment");
                      e.printStackTrace();
                  }
              }
          }
String *authorization = authorization_example; // Token to business partner , from PayCash Global.
          BodyCancelPayment *body = ; //  (optional)

          CadenaCCApi *apiInstance = [[CadenaCCApi alloc] init];

          // Confirmation process of a payment, in the stipulated time.
          [apiInstance confirmPaymentWith:authorization
              body:body
                        completionHandler: ^(array[RespConfirmPayment] output, NSError* error) {
                                      if (output) {
                                          NSLog(@"%@", output);
                                      }
                                      if (error) {
                                          NSLog(@"Error: %@", error);
                                      }
                                  }];
          
var PayCashGlobalCadenas = require('pay_cash_global_cadenas');

          var api = new PayCashGlobalCadenas.CadenaCCApi()
          var authorization = authorization_example; // {{String}} Token to business partner , from PayCash Global.
          var opts = { 
            'body':  // {{BodyCancelPayment}} 
          };
          var callback = function(error, data, response) {
            if (error) {
              console.error(error);
            } else {
              console.log('API called Successfuly. Returned data: ' + data);
            }
          };
          api.confirmPayment(authorization, opts, callback);
          
using System;
          using System.Diagnostics;
          using IO.Swagger.Api;
          using IO.Swagger.Client;
          using IO.Swagger.Model;

          namespace Example
          {
              public class confirmPaymentExample
              {
                  public void main()
                  {

                      var apiInstance = new CadenaCCApi();
                      var authorization = authorization_example;  // String | Token to business partner , from PayCash Global.
                      var body = new BodyCancelPayment(); // BodyCancelPayment |  (optional) 

                      try
                      {
                          // Confirmation process of a payment, in the stipulated time.
                          array[RespConfirmPayment] result = apiInstance.confirmPayment(authorization, body);
                          Debug.WriteLine(result);
                      }
                      catch (Exception e)
                      {
                          Debug.Print("Exception when calling CadenaCCApi.confirmPayment: " + e.Message );
                      }
                  }
              }
          }
          
<?php
          require_once(__DIR__ . '/vendor/autoload.php');

          $api_instance = new Swagger\Client\ApiCadenaCCApi();
          $authorization = authorization_example; // String | Token to business partner , from PayCash Global.
          $body = ; // BodyCancelPayment | 

          try {
              $result = $api_instance->confirmPayment($authorization, $body);
              print_r($result);
          } catch (Exception $e) {
              echo 'Exception when calling CadenaCCApi->confirmPayment: ', $e->getMessage(), PHP_EOL;
          }
          ?>
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 $body = WWW::SwaggerClient::Object::BodyCancelPayment->new(); # BodyCancelPayment | 

          eval { 
              my $result = $api_instance->confirmPayment(authorization => $authorization, body => $body);
              print Dumper($result);
          };
          if ($@) {
              warn "Exception when calling CadenaCCApi->confirmPayment: $@\n";
          }
from __future__ import print_statement
          import time
          import swagger_client
          from swagger_client.rest import ApiException
          from pprint import pprint

          # create an instance of the API class
          api_instance = swagger_client.CadenaCCApi()
          authorization = authorization_example # String | Token to business partner , from PayCash Global.
          body =  # BodyCancelPayment |  (optional)

          try: 
              # Confirmation process of a payment, in the stipulated time.
              api_response = api_instance.confirm_payment(authorization, body=body)
              pprint(api_response)
          except ApiException as e:
              print("Exception when calling CadenaCCApi->confirmPayment: %s\n" % e)

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
Body
Nombre Descripción
body

Respuestas

Status: 200 - Successful Process

Status: 400 - Internal Server Error.


Reverso de pago / reversepayment

Use este método para anular la solicitud de pago de una referencia PayCash.

El uso principal de este método aplica cuando no se recibe respuesta por temas de timeout u otra falla local.


/cc/reversepayment

Ejemplos de uso y SDK

curl -X POST\
-H "Accept: application/json"\
-H "Content-Type: application/json"\
"https://sb-pais.paycashglobal.com/v1/cc/reversepayment"
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CadenaCCApi;

import java.io.File;
import java.util.*;

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.
        BodyReversePaymentCC body = ; // BodyReversePaymentCC | 
        try {
            array[RespReversePaymentCC] result = apiInstance.reversePayment(authorization, body);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CadenaCCApi#reversePayment");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.api.CadenaCCApi;

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.
        BodyReversePaymentCC body = ; // BodyReversePaymentCC | 
        try {
            array[RespReversePaymentCC] result = apiInstance.reversePayment(authorization, body);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CadenaCCApi#reversePayment");
            e.printStackTrace();
        }
    }
}
String *authorization = authorization_example; // Token to business partner , from PayCash Global.
BodyReversePaymentCC *body = ; //  (optional)

CadenaCCApi *apiInstance = [[CadenaCCApi alloc] init];

// Process of reversing a payment of a reference, in the stipulated time.
[apiInstance reversePaymentWith:authorization
    body:body
              completionHandler: ^(array[RespReversePaymentCC] output, NSError* error) {
                            if (output) {
                                NSLog(@"%@", output);
                            }
                            if (error) {
                                NSLog(@"Error: %@", error);
                            }
                        }];
var PayCashGlobalCadenas = require('pay_cash_global_cadenas');

var api = new PayCashGlobalCadenas.CadenaCCApi()
var authorization = authorization_example; // {{String}} Token to business partner , from PayCash Global.
var opts = { 
  'body':  // {{BodyReversePaymentCC}} 
};
var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called Successfuly. Returned data: ' + data);
  }
};
api.reversePayment(authorization, opts, callback);
using System;
using System.Diagnostics;
using IO.Swagger.Api;
using IO.Swagger.Client;
using IO.Swagger.Model;

namespace Example
{
    public class reversePaymentExample
    {
        public void main()
        {

            var apiInstance = new CadenaCCApi();
            var authorization = authorization_example;  // String | Token to business partner , from PayCash Global.
            var body = new BodyReversePaymentCC(); // BodyReversePaymentCC |  (optional) 

            try
            {
                // Process of reversing a payment of a reference, in the stipulated time.
                array[RespReversePaymentCC] result = apiInstance.reversePayment(authorization, body);
                Debug.WriteLine(result);
            }
            catch (Exception e)
            {
                Debug.Print("Exception when calling CadenaCCApi.reversePayment: " + e.Message );
            }
        }
    }
}
<?php
require_once(__DIR__ . '/vendor/autoload.php');

$api_instance = new Swagger\Client\ApiCadenaCCApi();
$authorization = authorization_example; // String | Token to business partner , from PayCash Global.
$body = ; // BodyReversePaymentCC | 

try {
    $result = $api_instance->reversePayment($authorization, $body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling CadenaCCApi->reversePayment: ', $e->getMessage(), PHP_EOL;
}
?>
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 $body = WWW::SwaggerClient::Object::BodyReversePaymentCC->new(); # BodyReversePaymentCC | 

eval { 
    my $result = $api_instance->reversePayment(authorization => $authorization, body => $body);
    print Dumper($result);
};
if ($@) {
    warn "Exception when calling CadenaCCApi->reversePayment: $@\n";
}
from __future__ import print_statement
import time
import swagger_client
from swagger_client.rest import ApiException
from pprint import pprint

# create an instance of the API class
api_instance = swagger_client.CadenaCCApi()
authorization = authorization_example # String | Token to business partner , from PayCash Global.
body =  # BodyReversePaymentCC |  (optional)

try: 
    # Process of reversing a payment of a reference, in the stipulated time.
    api_response = api_instance.reverse_payment(authorization, body=body)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling CadenaCCApi->reversePayment: %s\n" % e)

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
Bodys
Nombre Descripción
body

Respuestas

Status: 200 - Successful Process

Status: 400 - Internal Server Error.





Buscar pagos / searchpayment

Método de búsqueda de un pago, realizado previamente. Envío en Parámetros de los datos válidos "Referencia", "Branch", "Secuencia" y "Cantidad".


/cc/searchpayment

Ejemplos de uso y SDK

curl -X GET\
-H "Accept: application/json"\
"https://sb-pais.paycashglobal.com/v1/cc/searchpayment?Reference=&Branch=&Sequence=&Amount="
import io.swagger.client.*;
import io.swagger.client.auth.*;
import io.swagger.client.model.*;
import io.swagger.client.api.CadenaCCApi;

import java.io.File;
import java.util.*;

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 reference = reference_example; // String | Reference to search
        String branch = branch_example; // String | Branch to search
        String sequence = sequence_example; // String | Sequence to search
        String amount = amount_example; // String | Amount to search
        try {
            array[RespSearchPayment] result = apiInstance.searchPayment(authorization, reference, branch, sequence, amount);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CadenaCCApi#searchPayment");
            e.printStackTrace();
        }
    }
}
import io.swagger.client.api.CadenaCCApi;

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 reference = reference_example; // String | Reference to search
        String branch = branch_example; // String | Branch to search
        String sequence = sequence_example; // String | Sequence to search
        String amount = amount_example; // String | Amount to search
        try {
            array[RespSearchPayment] result = apiInstance.searchPayment(authorization, reference, branch, sequence, amount);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling CadenaCCApi#searchPayment");
            e.printStackTrace();
        }
    }
}
String *authorization = authorization_example; // Token to business partner , from PayCash Global.
String *reference = reference_example; // Reference to search (optional)
String *branch = branch_example; // Branch to search (optional)
String *sequence = sequence_example; // Sequence to search (optional)
String *amount = amount_example; // Amount to search (optional)

CadenaCCApi *apiInstance = [[CadenaCCApi alloc] init];

// Search process for a payment, previously made.
[apiInstance searchPaymentWith:authorization
    reference:reference
    branch:branch
    sequence:sequence
    amount:amount
              completionHandler: ^(array[RespSearchPayment] output, NSError* error) {
                            if (output) {
                                NSLog(@"%@", output);
                            }
                            if (error) {
                                NSLog(@"Error: %@", error);
                            }
                        }];
var PayCashGlobalCadenas = require('pay_cash_global_cadenas');

var api = new PayCashGlobalCadenas.CadenaCCApi()
var authorization = authorization_example; // {{String}} Token to business partner , from PayCash Global.
var opts = { 
  'reference': reference_example, // {{String}} Reference to search
  'branch': branch_example, // {{String}} Branch to search
  'sequence': sequence_example, // {{String}} Sequence to search
  'amount': amount_example // {{String}} Amount to search
};
var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called Successfuly. Returned data: ' + data);
  }
};
api.searchPayment(authorization, opts, callback);
using System;
using System.Diagnostics;
using IO.Swagger.Api;
using IO.Swagger.Client;
using IO.Swagger.Model;

namespace Example
{
    public class searchPaymentExample
    {
        public void main()
        {

            var apiInstance = new CadenaCCApi();
            var authorization = authorization_example;  // String | Token to business partner , from PayCash Global.
            var reference = reference_example;  // String | Reference to search (optional) 
            var branch = branch_example;  // String | Branch to search (optional) 
            var sequence = sequence_example;  // String | Sequence to search (optional) 
            var amount = amount_example;  // String | Amount to search (optional) 

            try
            {
                // Search process for a payment, previously made.
                array[RespSearchPayment] result = apiInstance.searchPayment(authorization, reference, branch, sequence, amount);
                Debug.WriteLine(result);
            }
            catch (Exception e)
            {
                Debug.Print("Exception when calling CadenaCCApi.searchPayment: " + e.Message );
            }
        }
    }
}
<?php
require_once(__DIR__ . '/vendor/autoload.php');

$api_instance = new Swagger\Client\ApiCadenaCCApi();
$authorization = authorization_example; // String | Token to business partner , from PayCash Global.
$reference = reference_example; // String | Reference to search
$branch = branch_example; // String | Branch to search
$sequence = sequence_example; // String | Sequence to search
$amount = amount_example; // String | Amount to search

try {
    $result = $api_instance->searchPayment($authorization, $reference, $branch, $sequence, $amount);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling CadenaCCApi->searchPayment: ', $e->getMessage(), PHP_EOL;
}
?>
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 $reference = reference_example; # String | Reference to search
my $branch = branch_example; # String | Branch to search
my $sequence = sequence_example; # String | Sequence to search
my $amount = amount_example; # String | Amount to search

eval { 
    my $result = $api_instance->searchPayment(authorization => $authorization, reference => $reference, branch => $branch, sequence => $sequence, amount => $amount);
    print Dumper($result);
};
if ($@) {
    warn "Exception when calling CadenaCCApi->searchPayment: $@\n";
}
from __future__ import print_statement
import time
import swagger_client
from swagger_client.rest import ApiException
from pprint import pprint

# create an instance of the API class
api_instance = swagger_client.CadenaCCApi()
authorization = authorization_example # String | Token to business partner , from PayCash Global.
reference = reference_example # String | Reference to search (optional)
branch = branch_example # String | Branch to search (optional)
sequence = sequence_example # String | Sequence to search (optional)
amount = amount_example # String | Amount to search (optional)

try: 
    # Search process for a payment, previously made.
    api_response = api_instance.search_payment(authorization, reference=reference, branch=branch, sequence=sequence, amount=amount)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling CadenaCCApi->searchPayment: %s\n" % e)

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
Referencia
String
Referencia PayCash a buscar.
Branch
String
Sucursal a buscar.
Secuencia
String
Secuencia a buscar.
Cantidad
String
Monto a buscar.

Respuestas

Status: 200 - Successful Process

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 la cadena está interesado en conocer si sus referencias ya fueron pagadas.
Queda del lado delas cadenas 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.


/payments

Ejemplos de uso y SDK

curl -X GET\
    -H "Accept: application/json"\
    "https://sb-pais-Cadena.paycashglobal.com/v1/payments?Date=yyyy-mm-dd&Hour=HH:MM:ss"
import io.swagger.client.*;
    import io.swagger.client.auth.*;
    import io.swagger.client.model.*;
    import io.swagger.client.api.CadenaCCApi;
    
    import java.io.File;
    import java.util.*;
    
    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[RespPayments] result = apiInstance.Payments(authorization, Date,Hour);
              System.out.println(result);
          } catch (ApiException e) {
              System.err.println("Exception when calling CadenaCCApi#Payments");
              e.printStackTrace();
          }
      }
    }
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();
          }
      }
    }
String *authorization = authorization_example; // Token to business partner , from PayCash Global.
    String *Date = date_example; // Date to yyyy-mm-dd 
    String *Hour = hour_example; // Hour to HH:MM:ss 
    
    CadenaCCApi *apiInstance = [[CadenaCCApi alloc] init];
    
    // Search process for listing payments, previously made.
    [apiInstance Payments:authorization
      Date:date
      Hour:hour
                completionHandler: ^(array[RespPayments] output, NSError* error) {
                              if (output) {
                                  NSLog(@"%@", output);
                              }
                              if (error) {
                                  NSLog(@"Error: %@", error);
                              }
                          }];
    
var PayCashGlobalCadenas= require('pay_cash_global_Cadenas');
    
    var api = new PayCashGlobalCadenas.CadenaCCApi()
    var authorization = authorization_example; // {{String}} Token to business partner , from PayCash Global.
    var opts = { 
    'Date': date_example, // {{String}} Date to yyyy-mm-dd
    'Hour': hour_example // {{String}} Hour to HH:MM:ss 
    };
    var callback = function(error, data, response) {
    if (error) {
      console.error(error);
    } else {
      console.log('API called successfully. Returned data: ' + data);
    }
    };
    api.Payments(authorization, opts, callback);
    
using System;
    using System.Diagnostics;
    using IO.Swagger.Api;
    using IO.Swagger.Client;
    using IO.Swagger.Model;
    
    namespace Example
    {
      public class PaymentsExample
      {
          public void main()
          {
    
              var apiInstance = new CadenaCCApi();
              var authorization = authorization_example;  // String | Token to business partner , from PayCash Global.
              var Date = date_example;  // String | Date to yyyy-mm-dd
              var Hour = hour_example;  // String | Hour to HH:MM:ss  
              try
              {
                  // Search process for listing payments, previously made.
                  array[RespPayments] result = apiInstance.Payements(authorization, Date,Hour);
                  Debug.WriteLine(result);
              }
              catch (Exception e)
              {
                  Debug.Print("Exception when calling CadenaCCApi.Payemets: " + e.Message );
              }
          }
      }
    }
    
<?php
    require_once(__DIR__ . '/vendor/autoload.php');
    
    $api_instance = new Swagger\Client\ApiCadenaCCApi();
    $authorization = authorization_example; // String | Token to business partner , from PayCash Global.
    $Date = date_example; // String | Date  to yyyy-mm-dd
    $Hour = hour_example; // String | Hour  to HH:MM:ss 
    
    try {
      $result = $api_instance->Payments($authorization, $Date,$Hour);
      print_r($result);
    } catch (Exception $e) {
      echo 'Exception when calling CadenaCCApi->Payments: ', $e->getMessage(), PHP_EOL;
    }
    ?>
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";
    }
from __future__ import print_statement
    import time
    import swagger_client
    from swagger_client.rest import ApiException
    from pprint import pprint
    
    # create an instance of the API class
    api_instance = swagger_client.CadenaCCApi()
    authorization = authorization_example # String | Token to business partner , from PayCash Global
    Date = date_example # String | Date to yyyy-mm-dd
    Hour = hour_example # String | Date to HH:MM:ss
    
    try: 
      # Search process for listing payments, previously made
      api_response = api_instance.Payements(authorization, Date=Date,Hour=Hour)
      pprint(api_response)
    except ApiException as e:
      print("Exception when calling CadenaCCApi->Payments: %s\n" % e)

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
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

Responses

Status: 200 - Successful Process

Status: 400 - Internal Server Error.


Otros

Proceso de conciliación

Propósito

Identificar las diferencias que existen entre las transacciones reportadas entre las cadenas o receptores y las registradas con PayCash.
Una vez identificadas, proceder a investigar las causas/motivos de dichas diferencias para que estas puedan ser corregidas o aclaradas.

Las diferencias pueden ser de los siguientes tipos:

- La cadena no reporte transacciones que PayCash tiene registradas.
- La cadena reporte transacciones que PayCash no tiene registradas.

Nomenclatura
El nombre del archivo deberá estar formado de la siguiente manera:

No. Posición inicial Posición final Longitud Formato Comentarios
1 1 8 8 YYYYMMDD
Fecha de conciliación.
2 9 9 1 "_"
Separador "_".
3 10 12 3 "F3"
Valor constante "F3".
4 13 13 1 "_"
Separador "_".
5 14 18 5
Identificador de la cadena. Se justifica con ceros a la izquierda a 5 posiciones. Es un valor numérico.
6 19 19 1 "."
Separador del nombre del archivo y la extensión.
7 20 22 3 "txt"
Extensión del archivo. Sera un "txt".
Ejemplo: 20191110_F3_00456.txt

Significa que:

- El archivo corresponde a las operaciones del 10 de noviembre del 2019.

- El identificador de la cadena es 456.

Contenido
El contenido del archivo está formado por:
- Cabecera. Es la primera línea del archivo que contiene información de la cadena y el resumen de las operaciones realizadas.
- Detalle de operaciones. Se genera a partir de la segunda línea y cada línea contiene información particular de la operación realizada.
Cabecera
No. Contenido Formato Comentarios
1
Identificador de registro o línea de cabecera.
"F3"
Valor constante "F3".
2
Identificador de la cadena.
Valor numérico con el que se conoce a la cadena. Es proporcionado por PayCash a la cadena.
3
Fecha de las operaciones a conciliar.
DDMMYYYY
Fecha de la conciliación.
4
Cantidad de operaciones del día.
99999999999
Valor numérico que contiene el total de las operaciones realizadas en el día. Si no se realizaron operaciones el valor es 000.
5
Importe total de las operaciones del día.
99999999999
Valor numérico que contiene el importe total acumulado de las operaciones realizadas en el día. Se reporta con 2 decimales sin punto. Si no se realizaron operaciones el valor es 000.
Notas: - Cada dato debe estar separado por la barra vertical “|”.
Ejemplo: F3|456|10112019|450|1350000|20000


Detalle
No. Contenido Formato Obligatorio Comentarios
1
Identificador de la línea.
"REG" Si
Valor constante "REG".
2
Fecha de la operación.
DDMMYYYY Si
Fecha en la cual fue procesada la operación.
3
Hora de la operación.
HHMMSS Si
Hora en la cual fue procesada la operación.
4
Folio.
99999999999 Si
5
Autorización.
Si
Clave de autorización generada por el pago.
6
Sucursal.
No
Valor numérico que contiene el identificador de la sucursal en el que se realizó la operación.
7
Referencia.
9999999999999999 Si
Referencia PayCash pagada.
8
Importe.
99999999999 Si
Importe pagado de la referencia.
-Incluye 2 decimales sin punto.
9
Comisión.
99999999999 Si
Importe que la cadena cobra al cliente final por la operación.
-Incluye 2 decimales sin punto.
-Ejemplos:
-$3.60 = 360
-$100 = 10000
Notas:
- Cada dato debe estar separado por la barra vertical “|”.
- En caso de que no se hayan realizado operaciones la línea queda vacía, es decir, no se incluye.
Ejemplo:
REG|10112019|131246|123456789|5786545324|489|1298797864523158|10000|500

Consideraciones generales

- El archivo se genera todos los días.

- El archivo se deposita en un servidor SFTP. Puede ser de la cadena o de PayCash.

- El horario en el que se genera el archivo debe ser entre las 00:01 y las 04:00.

- Acordar un responsable para temas de diferencias y/o aclaraciones.