es

WebCheckout

¿Qué es nuestro WebCheckout?

¿Cómo crear un link con valor fijo para el WebCheckout?

Inicialmente, tienes que crear una terminal seguido de esto tienes que crear un botón de pago  

Te diriges a nuestro menú en donde buscaras un apartado llamado "Links de pago"

En este apartado tendras dos opciones:

Crear links masivos

Esta función te permitirá crear links masivos para diferentes clientes en específico a partir de una plantilla de Excel 

Crear link de pago

Los links de pago te permitirán enviar un link para una persona específica (Llenando la información del pagador) o si se requiere para una persona no especifica esto gracias a que la información del pagador es opcional

Link generado

Una vez creado el link te aparecerá en la tabla mostrando la descripción, monto a pagar y la fecha de vencimiento y tendremos los links generados en los que tendrás 3 opciones

¿Cómo crear un link con valor dinamico para el WebCheckout?

Inicialmente, tienes que crear una terminal seguido de esto tienes que crear un botón de pago  

Te diriges a nuestro menú en donde buscaras un apartado llamado "Links de pago express"

Seleccionas la opción crear link de pago abierto.

se abrirá un modal, y habrá una opción llamada "¿Va a ser un monto fijo?" Selecciona "no" y ahora el monto del WebCheckout será seleccionado por los clientes

BOTÓN DE PAGO

< form method="Post" action="https://merchant.paymentsway.co/cartaspago/redirect">
                      <input name="merchant_id" type="hidden"  value="0">
                      <input name="form_id" type="hidden"  value="0">
                      <input name="terminal_id" type="hidden"  value="0">
                      <input name="order_number" type="hidden"  value="0">
                      <input name="amount" type="hidden"  value="0">
                      <input name="currency" type="hidden"  value="cop">
                      <input name="order_description" type="hidden"  value="Test de compra">
                      <input name="client_email" type="hidden" value="user@example.com">
                      <input name="client_phone" type="hidden" value="3000000000">
                      <input name="client_firstname" type="hidden" value="pepito perez">
                      <input name="client_lastname" type="hidden" value="ramirez ramirez">
                      <input name="client_doctype" type="hidden" value="4">
                      <input name="client_numdoc" type="hidden" value="1234567890">
                      <input name="response_url" type="hidden" value="http://www.test.com/response">
                      <input name="Submit" type="submit"  value="Enviar">
</form>

Parámetros mínimos a enviar en el formulario:

CampoTipoDescripcionObligatorio

checksum

String

Si

merchant_id

Numérico

Es el número identificador del comercio en el sistema , este número lo encontrarás en la sección "Mis credenciale".

Si

terminal_id

Numérico

Id de la terminal

Si

form_id

Numérico

Es el número identificador del boton de pago que encontrara con el identificado "ID" en cada tarjeta de cada botón de pago.

Si

plan_id

Numérico

Plan al cual sera asociado el pago, usado para cobros recurrentes.

No

additional_data

Alfa numérico

Información adicional del pago

No

order_number

Alfa numérico

Es la referencia de la venta o pedido. Deber ser único por cada transacción que se envía al sistema.

Si

amount

Numérico

Es el monto total de la transacción.

Si

currency

Alfa numérico

La moneda respectiva en la que se realiza el pago. El proceso de conciliación se hace en pesos a la tasa representativa del día. Ej. COP

Si

order_description

Alfa numérico

Es la descripción de la venta.

Si

client_email

Alfa numérico

Es el correo electrónico del cliente.

Si

response_url

Alfa numérico

Url de respuesta para el cliente.

No

client_phone

Numérico

Es el número de celular de contacto del cliente.

Si

client_firstname

Alfa numérico

Es el primer nombre del cliente.

Si

client_lastname

Alfa numérico

Son los apellidos del cliente.

Si

client_doctype

Alfa numérico

Es el tipo de documento del cliente.

Si

client_numdoc

Numérico

Es el numéro de documento del cliente.

Si

Tipo de documento del cliente

Este campo se debe generar con su id correspondiente dependiedo de la descripción para el tipo de documento de la siguiente manera:

Currency

Este campo se debe generar con su value correspondiente dependiedo de la descripción del tipo de moneda de la siguiente manera:

Modo de uso

Una vez copiado el código en su pagina web o E-commerce usted podrá visualizar el siguiente botón: ((Recuerde que el botón tendrá los estilos que usted desee implementar en su pagina Web o E-commerce).)

Modificando el atributo   <name=”currency”>  dentro   <form>  usted podrá cambiar la moneda con la cual se efectuará su pago.

BOTÓN DE PAGOS ABIERTOS

<form method="post " action="https://merchant.paymentsway.co/cartaspago/redirect">
                      <input name="merchant_id" type="hidden"  value="0" >
                      <input name="form_id" type="hidden"  value="0" >
                      <input name="terminal_id" type="hidden"  value="0" >
                      <input name="order_number" type="hidden"  value="1254>"
                      <input name="amount" type="hidden"  value="0" >
                      <input name="currency" type="hidden"  value="cop" >
                      <input name="type_method" type="hidden"  value="0" >
                      <input name="amount_1" type="hidden"  value="10000" >
                      <input name="amount_2" type="hidden"  value="20000" >
                      <input name="amount_3" type="hidden"  value="30000" >
                      <input name="amount_4" type="hidden"  value="40000" >
                      <input name="min_amount" type="hidden"  value="10000" >
                      <input name="max_amount" type="hidden"  value="40000" >
                      <input name="client_email" type="hidden" value="user@example.com" >
                      <input name="client_phone" type="hidden" value="3000000000" >
                      <input name="client_firstname" type="hidden" value="pepito perez" >
                      <input name="client_lastname" type="hidden" value="ramirez ramirez" >
                      <input name="client_doctype" type="hidden" value="4" >
                      <input name="client_numdoc" type="hidden" value="1234567890" >
                      <input name="response_url" type="hidden" value="http://www.test.com/response" >
                      <input name="Submit" type="submit"  value="Enviar" >
</ form>

Parámetros mínimos a enviar en el formulario:

CampoTipoDescripcionObligatorio

additional_data

Alfa numérico

Url de respuesta para el cliente.

Si

merchant_id

Numérico

Es el número identificador del comercio en el sistema , este número lo encontrarás en la sección "Mis credenciale".

Si

form_id

Numérico

Es el número identificador del boton de pago que encontrara con el identificado "ID" en cada tarjeta de cada botón de pago.

Si

order_number

Alfa numérico

Es la referencia de la venta o pedido. Deber ser único por cada transacción que se envía al sistema.

Si

amount

Numérico

Es el monto total de la transacción.

Si

currency

Alfa numérico

En el tipo de botón abierto solo se podrán realizar pagos en COP.

Si

type_method

Numérico

Es el número que identifica al botón de pago como "abierto" (Siempre su valor debe ser 2).

Si

amount_1

Numérico

Es el primer valor a sugerir dentro del botón de pago abierto (Opcional).

Si

amount_2

Numérico

Es el segundo valor a sugerir dentro del botón de pago abierto (Opcional).

Si

amount_3

Numérico

Es el tercer valor a sugerir dentro del botón de pago abierto (Opcional).

Si

amount_4

Numérico

Es el cuarto valor a sugerir dentro del botón de pago abierto (Opcional).

Si

min_amount

Numérico

Es el valor mínimo por el cual se podrá realizar el pago.

Si

max_amount

Numérico

Es el valor máximo por el cual se podrá realizar el pago.

Si

order_description

Alfa numérico

Es la descripción de la venta.

Si

client_email

Alfa numérico

Es el correo electrónico del cliente.

Si

response_url

Alfa numérico

Url de respuesta para el cliente.

No

client_phone

Numérico

Es el número de celular de contacto del cliente.

Si

client_firstname

Alfa numérico

Es el primer nombre del cliente.

Si

client_lastname

Alfa numérico

Son los apellidos del cliente.

Si

client_doctype

Alfa numérico

Es el tipo de documento del cliente.

Si

client_numdoc

Numérico

Es el numéro de documento del cliente.

Si

Tipo de documento del cliente

Este campo se debe generar con su id correspondiente dependiedo de la descripción para el tipo de documento de la siguiente manera:

Currency

Este campo se debe generar con su value correspondiente dependiedo de la descripción del tipo de moneda de la siguiente manera:

MODO DE USO

Una vez copiado el código en su pagina web o E-commerce usted podrá visualizar el siguiente botón: (Recuerde que el botón tendrá los estilos que usted desee implementar en su pagina Web o E-commerce).

Haciendo clic en el botón enviar, usted será re direccionado a la pasarela de pagos abiertos, la cual se visualizará de la siguiente manera:

Para escoger los montos a pagar usted encontrará dos maneras de hacerlo:

WIDGET

NOTA:

Para el correcto uso del widget se tiene que dejar primeramente el script que haga el llamado a los recursos y luego el llamado del checkout

Acepte pagos en su sitio web en minutos, utilizando nuestra opción de Checkout; Permita que sus clientes completen un pago sin salir de su sitio web, simplemente incluyendo una etiqueta   <script>  dentro su página web. Para el uso del widget, inicialmente agregue en su documento lo siguiente:

  1. En la parte del   <head>   agregaremos el siguiente css
  2.   <link rel="stylesheet" href="https://merchant.paymentsway.co/assetsWidget/css/index.css " />
  3. Agregamos el siguiente script hasta el final del   <body>  , para que pueda cargar correctamente el script
  4.   <script src="https://merchant.paymentsway.co/assetsWidget/js/index.js">  </script>
  5. Una vez agregados los hipervinculos y definido el espacio donde se visualizará nuestro widget, usted deberá anexar el siguiente código:
    •   <div id="payment-widget" >  </div>
  6. Creara en su proyecto un  <script>  en el   <body>  . Es importante que se haga el llamado .Una vez creada la etiqueta, pondra la implementación del widget con el siguiente codigo
const checkout = new widgetCheckout({
    merchant_id : 'su Merchant id' ,
    form_id : 'su form id',
    terminal_id : 'su terminal id',
    order_number : 'su order number',
    amount : 'finalPrice',
    currency : 'COP',
    order_description : 'Test de compra',
    apikey : Apikey,
    ip : '192.158.1.38',
    additionalData : {...},
});

Parámetros a enviar en el widget:

CampoTipoDescripcionObligatorio

merchant_id

Alfa numérico

Es el número identificador del comercio en el sistema , este número lo encontrarás en la sección "Mis credenciale".

Si

form_id

Alfa numérico

Es la referencia de la venta o pedido. Deber ser único por cada transacción que se envía al sistema.

Si

order_number

Alfa numérico

Codigo de aletorio.

Si

amount

Alfa numérico

Este campo se debe generar con su value correspondiente dependiedo de la descripción del tipo de moneda.

Si

order_description

Alfa numérico

Descripción de la compra.

Si

apikey

Alfa numérico

La llave de seguridad aparece en el dashboard de la consola.

Si

additionalData

Objeto

Este campo te permite enviar cualquier información adicional, este es opcional.

Si

redirect

String

Este campo te permite enviar una URL de respuesta, cuando el usuario realice el pago pueda ir a una URL configurada en este parámetro, este es opcional.

Si

person

Object

Este objeto te permite enviar la información del cliente.

const checkout = new widgetCheckout({
        ...InformacionDelComercio,
        name : 'Nombre del cliente' ,
        lastName : 'Apellido del cliente',
        email : 'Correo electrónico del cliente',
        identification : 'Identificación del cliente',
        identificationType : Tipo de identificación,
        sameData : 'Booleano que identifica si la información del usuario es la misma, haciendo que sea mas rapido el proceso de compra',
    });

no

Tipos de identificación que se pueden enviar en el widget

Nombre de la identificaciónValor
Pasaporte1
Cédula de ciudadanía4
Cédula de extranjería5

Metodos

Actualizar monto de la transacción
const checkout = new widgetCheckout({
                    ...InformacionDelComercio,
                    name : 'Nombre del cliente' ,
                    lastName : 'Apellido del cliente',
                    email : 'Correo electrónico del cliente',
                    identification : 'Identificación del cliente',
                    identificationType : Tipo de identificación,
                });

al definir la variable que inicializa el widget, vas a poder tener un metodo para actualizar. En este caso llamamos la variable checkout

checkout.updateAmount(10000)

¿Como obtener los datos para la implementación del widget?

  1. Para obtener los datos, tendremos que ingresar a la consola de PaymentsWay, usted deber ingresar con su usuario y contraseña.
  2. Estando en la consola, usted dará click en el botón "Botones de pago"
  3. Seleccionara el botón de pago que haga referencia a su comercio y a la función que desea cumplir
  4. Una vez seleccionado el botón de pago de su comercio, al instante se abrirá una ventana en la cual usted podrá encontrar la información completa de su botón.
    • Ubicaremos en el código el espacio  <merchant_id>  y copiaremos lo que esta dentro de las comillas del  <value="70">  (El número a copiar será el cual le indique la información de su botón de pago ya creado) a nuestro script y lo pegaremos en  <merchant_id> 
    • Ubicaremos en el código el espacio  <form_id>  y copiaremos lo que esta dentro de las comillas del  <value="123">  (El número a copiar será el cual le indique la información de su botón de pago ya creado) a nuestro script y lo pegaremos en  <form_id> 
    • Ubicaremos en el código el espacio  <terminal_id>  y copiaremos lo que esta dentro de las comillas del  <value="103">  (El número a copiar será el cual le indique la información de su botón de pago ya creado) a nuestro script y lo pegaremos en  <terminal_id> 
    • Para el  <order_number>  recomendamos implementar un algoritmo para crear el mismo, esto debido a que no puede haber dos order_number con el mismo nombre
    • generateRandomString = (num) => {
          const characters =
              'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
          let result1 = Math.random().toString(36).substring(num);
          return result1;
      };
    • Para el  amount  se pondra el monto a pagar segun requiera su comercio. (Tenga en cuenta que puede ser cambiado de acuerdo a su necesidad)
    •  currency  Este hará referencia al tipo de moneda con la cual usted recibira el dinero de su comercio ("COP", "USD", "EUR").
    • En  order_description  usted podra poner la descripción correspondiente a su comercio.
    • Para obtener la información de su  apikey  usted se redireccionara a la parte del inicio de la consola, en donde encontrara un espacio unico con la información del apikey.

MODO DE USO

Una vez implementado el WIDGET a su comercio, usted lo podrá visualizar con un botón de la siguiente manera:

A continuación, le explicaremos el paso a paso de lo que vera al realizar pagos.

NOTA:

Solo las personas que tengan una URL autorizada pueden insertar la carta de pago, en llegado caso que necesites insertarla en tu sitio comunícate con:

¿Cómo crear una carta de pago?

Inicialmente, tienes que crear una terminal seguido de esto tienes que dirigirte a nuestro menú en donde buscaras un apartado llamado "Botones de pago". Una vez estés en la página. Selecciona el botón "Crear Botón de pago"

seleccionas después la opción "carta de pago" y podras crear tu carta de pago

¿Cómo usar una carta de pago?

Una vez creada la carta de pago, tendrás el listado de todas las cartas de pago y botones de pago que se hayan creado, podrás identificar que es una carta de pago de un botón de pago con el atributo de la tarjeta "Carta de pago". Podrás dar clic a la tarjeta y se abrirá un modal en el que puedes editar la carta de pago, adicional a esto hay dos botones 

Introducción

A continuación, usted encontrará una guía con el paso a paso de como Incluir el plugin PaymentsWay con WooCommerce y lograr una integración satisfactoria con su Ecommerce. Ofrezca a sus clientes la posibilidad de generar pagos en línea de manera segura y confiable mediante la pasarela de pago PaymentsWay. Para mas información puede consultar: PaymentsWay

Moneda

Para el correcto uso del plugin, usted debe utilizar una de las siguientes monedas: COP, USD y EUR.

Requisitos

  1. Para el correcto ACCESO a la consola de PaymentsWay, usted deber ingresar con su usuario y contraseña.
  2. Acceso a administrador wordpress
  3. Suba el plugin, Instale y active.
  4. Diríjase al apartado de wordpress y seleccione ajustes.
  5. Accedemos al apartado de pagos
  6. Activamos PaymentsWay como pasarela de transacciones y guardamos cambios, una vez guardados los cambios Acedemos al apartado de configuración.
  7. Ubique en configuración el campo obligatorio ID MERCHANT
    • Ubique en la pasarela el campo obligatorio ID MERCHANT
  8. Ubique en configuración el campo obligatorio ID TERMINAL
    • Ubique en la pasarela el campo obligatorio ID TERMINAL
  9. Ubique en configuración el campo obligatorio ID BOTON DE PAGO
    • Ubique en la pasarela ID BOTON DE PAGO
  10. Ubique en configuración el campo obligatorio APIKEY
    • Ubique en la pasarela APIKEY
  11. Ubique en configuración el campo obligatorio URL de retorno al ecommerce
  12. Diríjase a su respectiva página de tienda.
  13. Nos fijamos en la Url de nuestra tienda, tendran que copiar la URL completa de la página de destino
  14. Por último, guardamos los cambios desde el administrador de wordpress

Introducción

A continuación, usted encontrará una guía con el paso a paso de como Incluir el plugin PaymentsWay con PrestaShop y lograr una integración satisfactoria con su Ecommerce. Ofrezca a sus clientes la posibilidad de generar pagos en línea de manera segura y confiable mediante la pasarela de pago PaymentsWay. Para mas información puede consultar: PaymentsWay

Moneda

Para el correcto uso del plugin, usted debe utilizar una de las siguientes monedas: COP, USD y EUR.

Requisitos

Instalación

Paso 1: Subir el Plugin
  1. Navega hasta la sección "Módulos" y selecciona "Administrador de Módulos" en tu panel de Prestashop.
  2. Haz clic en "Subir un módulo" y elige el archivo .zip del plugin Payments Way.
  3. Una vez cargado el archivo, espera a que el proceso de instalación se complete automáticamente.
Paso 2: Configuración de la Pasarela de Pagos
  1. En el mismo panel de Módulos, localiza el plugin Payments Way y selecciona "Configurar".
  2. Ingresa las claves de acceso y demás información requerida para la pasarela de pagos en los campos correspondientes.
  3. Verifica que todos los datos sean correctos y, a continuación, haz clic en "Guardar" para aplicar los cambios.
Paso 3: Ajuste de Preferencias de Pago
  1. Dirígete a "Pagos" y luego a "Preferencias" en el menú principal de Prestashop.
  2. Dentro de Preferencias, ajusta todas las opciones relacionadas con los pagos, incluyendo restricciones por moneda, grupos de usuarios, países y transportadoras.
  3. Después de configurar cada opción, asegúrate de guardar los cambios para que se apliquen correctamente.

Introducción

Instalación

  1. Ingresamos a nuestro panel de control con el usuario y contraseña de cPanel.

  2. Dentro de cPanel nos dirigimos al administrador de archivos.

  3. Dentro del administrador de archivos, buscamos nuestra carpeta raíz donde está instalado Magento.

  4. En la carpeta raíz de Magento, ingresamos a la carpeta "app". Luego, subimos el archivo .zip del plugin "plugin-magento-paymentsway" y lo descomprimimos. Esto creará una nueva carpeta llamada "code", completando la instalación del plugin.

Configuración

  1. Ingresamos al administrador de nuestro ambiente de Magento.

  2. Dentro del administrador de Magento, nos dirigimos a stores/configuration.

  3. En el menú lateral izquierdo, vamos a la sección sales/Payments Way Configuration.

  4. En la sección de Payments Way Configuration, agregamos los datos correspondientes a nuestra terminal, formulario, merchant, apikey y response url de nuestro comercio de Payments Way.

POST Crear link de pago con redirección

      https://merchant.paymentsway.co/link-de-pago/create

Headers

Para consumir el servicio "" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

Cuerpo de la petición

{
    "form_id" : "",
    "terminal_id" :  "" ,
    "order_number" : "ORD-456789",
    "amount" : 55000,
    "currency" : "COP",
    "merchant_id" : 7890,
    "order_description" : "Compra de productos",
    "client_email" : "cliente@example.com",
    "client_phone" : "5555555555",
    "client_firstname" : "Juan",
    "client_lastname" : "Pérez",
    "client_numdoc" : "123456789",
    "response_url" : "https://example.com/response",
    "additional_data" : {
        "CualquierCosa" : "ValorAleatorio"
    }
    }
    

Ejemplo de la petición

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

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

    fetch("https://merchant.paymentsway.co/link-de-pago/create", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

Errores

Si la petición presenta algún error, el API retornará un status 400 con el siguiente formato json

    {
        "error" : true ,
        "data" : "",
    }
    

POST Crear link de pago

      https://merchant.paymentsway.co/cartaspago/returnUrl

Headers

Para consumir el servicio "" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

Cuerpo de la petición

{
    "form_id" : "",
    "terminal_id" :  "" ,
    "order_number" : "ORD-456789",
    "amount" : 55000,
    "currency" : "COP",
    "merchant_id" : 7890,
    "order_description" : "Compra de productos",
    "client_email" : "cliente@example.com",
    "client_phone" : "5555555555",
    "client_firstname" : "Juan",
    "client_lastname" : "Pérez",
    "client_numdoc" : "123456789",
    "response_url" : "https://example.com/response",
    "additional_data" : {
        "CualquierCosa" : "ValorAleatorio"
    }
    }
    

Ejemplo de la petición

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

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

    fetch("https://merchant.paymentsway.co/link-de-pago/create", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

Errores

Si la petición presenta algún error, el API retornará un status 400 con el siguiente formato json

    {
        "error" : true ,
        "data" : "",
    }
    

Checksum

Para garantizar la integridad de los datos enviados y recibidos en las transacciones, le recomendamos el uso de un checksum. este checksum se puede utilizar en la api de link de pago y link de pago redirección

El checksum se genera a partir de los siguientes datos:

La generación del checksum se realiza con el algoritmo sha256

Ejemplo de uso

const createChecksum = (idForm, idMerchant, apikey, amount, externalOrder) =>
sha256(`${idForm};${apikey};${idMerchant};${amount};${externalOrder}`).toString();

const result = createChecksum(
    '1',
    '2',
    'YzZhNj0NjM1YzRhNWE5NmAS0sa2Sg=',
    '1',
    '1'
);

console.log(result);
                

GET Obtener Tipos Identificación

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

  https://serviceregister.paymentsway.co/ClientAPI/ObtenerTiposIdentificacion

Headers

Para consumir el servicio "obtener tipos identificación" necesitaremos en el   header   de la petición su   Api_key  

Ejemplo de la petición

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

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/ObtenerTiposIdentificacion", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

GET Obtener Tipos de estados

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

  https://serviceregister.paymentsway.co/ClientAPI/GetAllTransactionStatuses

Headers

Para consumir el servicio "obtener tipos de respuestas" necesitaremos en el   header   de la petición su   Api_key  

Ejemplo de la petición

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

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/GetAllTransactionStatuses", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

POST Crear Persona

 https://serviceregister.paymentsway.co/ClientAPI/CrearPersona

Parametrización

CampoTipoDescripciónRequerido
firstnamestringNombre del cliente.Si
lastnamestringApellidos del clienteSi
ididentificationtypestringTipo de identificación del cliente se obtiene del endpoint (Obtener Tipos Identificación).Si
identificationstringIdentificación del clienteSi
emailstringEmail del clienteSi
phonestringCelular del cliente.Si
citystringCiudad del cliente.No
addressstringDirección del cliente.No
zipcodestringCódigo postal del clienteNo

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("x-api-key", "Api_key");

var cuerpo = {
    {
        "firstname" : "Nombre",
        "lastname" : "Apellidos",
        "ididentificationtype" : "4",
        "identification" : "10000000",
        "email" : "correo@Prueba.com",
        "phone" : "30900000",
        "state" : "",
        "city" : "",
        "address" : "",
        "zipcode" : "",
    }
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/CrearPersona", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Posibles estados

200 || 500

GET Obtener Transacción

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

  https://serviceregister.paymentsway.co/ClientAPI/ObtenerTransaccionByExternalOrder?external_order=asdasda-a26f-4153-9c6e-ff242d752b02

Headers

Para consumir el servicio "obtener transacción" necesitaremos en el   header   de la petición su   Api_key  

Ejemplo de la petición

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

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/ObtenerTransaccionByExternalOrder?external_order=(external order)", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

POST Obtener Persona Por Documento

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

 https://serviceregister.paymentsway.co/ClientAPI/ObtenerPersonaPorDocumento

Headers

Para consumir el servicio de "obtener persona por documento" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

CampoTipoDescripciónRequerido
nroDocumentointegerDocumento de la personaSi

Cuerpo de la peticion

Para consumir el servicio "obtener persona por documento" en el   body   de la petición colocara los siguientes datos:

{
        "nroDocumento" : 1012427594,
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("x-api-key", "Api_key");

var cuerpo = {
    "nroDocumento" : 1012427594,
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/ObtenerPersonaPorDocumento", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

POST Crear Transaccion Tarjeta de Crédito

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

 https://serviceregister.paymentsway.co/ClientAPI/CrearTransaccionTC

Headers

Para consumir el servicio de "crear transacción tarjeta de crédito" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

CampoTipoDescripciónRequerido
amountintegerValor del pagoSi
firstnamestringNomres del pagadorSi
lastnamestringApellidos del pagadorSi
card_identificationstringIdentificacion del pagadorSi
identification_typeIntegerTipo de identificacion del pagadorSi
card_holderstringNombre Completo como aparece en la TCSi
card_panstringNumero de la TCSi
card_panstringNumero de la TC sin espacios ni guionesSi
card_expiry_yearstringAño de expiracion de la TCSi
card_expiry_monthstringMes de expiracion de la TCSi
card_cvvstringCVV de la TCSi
url_okstringCVV de la TCNo
url_kostringCVV de la TCNo
descriptionstringDescripción brebe de la ordenSi
installmentsintegerNumero de CuotasSi
external_orderstringIdentificador unico del lado del comercioSi
dynamic_descriptorstringDescripción brebe de la ordenSi
terminal_idintegerId de la terminalSi
form_idintegerId del formularioSi
ipstringNumero de IP del pagadorSi
additionalDataObjectObjeto con informacion adicional que se retornara en el webhookSi
autorizacionDatosbooleanIndica si el pagador autoriza el uso de datos para tokenizar su tarjetaSi

Cuerpo de la peticion

Para consumir el servicio "crear transacción tarjeta de credito" en el   body   de la petición colocara los siguientes datos:

{
        "amount" : 300000,
        "firstname" : "",
        "lastname" : "",
        "card_identification" : "",
        "identification_type" : 4,
        "card_holder" : "PEPITO PEREZ PA",
        "card_pan" : "411111111111",
        "card_expiry_year" : "26",
        "card_expiry_month" : "06",
        "card_cvv" : "123",
        "url_ok" : "https://mysite.com/payment/success",
        "url_ko" : "https://mysite.com/payment/error",
        "description" : "order's description test",
        "installments" : 3,
        "external_order" : "trc231566" ,
        "dynamic_descriptor" : "Prueba PayLands",
        "terminal_id" : 34,
        "form_id" : 34,
        "ip" : "192.168.0.1",
        "additionalData" : {
            "CualquierCosa" : "Cualquiecosa"   
        },
        "autorizacionDatos" : true
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("x-api-key", "Api_key");

var cuerpo = {
    "amount" : 300000,
    "firstname" : "",
    "lastname" : "",
    "card_identification" : "",
    "identification_type" : 4,
    "card_holder" : "PEPITO PEREZ PA",
    "card_pan" : "411111111111",
    "card_expiry_year" : "26",
    "card_expiry_month" : "06",
    "card_cvv" : "123",
    "url_ok" : "https://mysite.com/payment/success",
    "url_ko" : "https://mysite.com/payment/error",
    "description" : "order's description test",
    "installments" : 3,
    "external_order" : "trc231566" ,
    "dynamic_descriptor" : "Prueba PayLands",
    "terminal_id" : 34,
    "form_id" : 34,
    "ip" : "192.168.0.1",
    "additionalData" : {
        "CualquierCosa" : "Cualquiecosa"   
    },
    "autorizacionDatos" : true
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/CrearTransaccionTC", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

POST Reversar Transaccion

 https://serviceregister.paymentsway.co/ClientAPI/ReversarTransaccion

idTransaction, Identificador de la transaccion de PaymentsWay, se obtiene al recibir la respuesta de "Crear Transaccion tarjeta de credito"

Headers

Para consumir el servicio de "reversar transacción" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

Cuerpo de la peticion

Para consumir el servicio "reversar transacción" en el   body   de la petición colocara el siguiente dato

{
        "idTransaction" : 1360,
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("Authorization", "Api_key");
 
var cuerpo = {
    "idTransaction" : 1360,
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/ReversarTransaccion", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Para poder tokenizar una tarjeta de crédito primero debes crear una persona, al crear la persona te retorna un ID este deberás pasarlo al siguiente endpoint.

POST Tokenizar Persona

 https://serviceregister.paymentsway.co/ClientAPI/TokenizarDatosPersona

Headers

Para consumir el servicio necesitaremos en el   header   de la petición su   Api_key  

Parametrización

Cuerpo de la peticion

{
                    "documento" : "10000000",
                    "identification_type" : 4,
                    "idperson" : 8,
                    "url" : "url.com",
                    "form_id" : 368,
                    "amount" : "100",
                    "external_order" : "Test_02",
                    "ip" : "127.0.0.1",
                    "additionalData" : "",
                    "currencycode" : "COP",
                    "description" : "Some Desc",
                    "installments" : 1
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("Authorization", "Api_key");
 
var cuerpo = {
    "documento" : "10000000",
    "identification_type" : 4,
    "idperson" : 8,
    "url" : "url.com",
    "form_id" : 368,
    "amount" : "100",
    "external_order" : "Test_02",
    "ip" : "127.0.0.1",
    "additionalData" : "",
    "currencycode" : "COP",
    "description" : "Some Desc",
    "installments" : 1
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/TokenizarDatosPersona", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Integracion del emebed

NOTA:

Tienes que aprobar la url para poder utilizar el embed, si no llegas a hacerlo esto no te aparecerá el embed. Para contactarte y aprobar la url puedes hacerlo a este correo: tecnologia@paymentsway.co

Una vez enviada la petición te retornará un objeto que tiene dentro un "data", tendrás que copiar el token generado en donde tendrás que concatenar la variable en la siguiente URL: "https://merchant.paymentsway.co/tokenizacion/?p=" un código de ejemplo de como podrías hacerlo:

<body	>
    <embed id="embed"  type="" width="500px" height="320px"	>
    </body	>
    <script defer>
        const token = 'El token generado'
        document.getElementById('embed').src = `https://merchant.paymentsway.co/tokenizacion/?p=${token}`
    </script>
                  

Cuando el usuario realice la transacción se podra acceder a una varibale llamada finishTransaction en   true   esta inicialmente no estara definida a menos que el integrado la asigne como un   let   en   false  

Transacciones aprobadas

Cuando una transacción es aprobada podrá identificarla con los siguientes códigos o con las siguientes descripciones

CodigoDescripción
00Aprobada
08Aprobada, solicitar más información
11Aprobada, vip
76Aprobada, (Privado)
77Aprobada, pendiente identificación (firma del comp)
78Aprobada a ciegas
79Aprobada, transacción administrativa
80Aprobada por boletín de seguridad
81Aprobada por el establecimiento

Transacciones declinadas

Cuando una transacción es declinada podrá identificarla con los siguientes códigos o con las siguientes descripciones

CodigoDescripción
01Negada, comuniquese con su entidad
02Negada, comuniquese con su entidad
03Negada, comercio inválido
04Negada, retener tarjeta
05Negada, puede ser tarjeta bloqueada o timeout
06Negada, no se pudo procesar la transacción
07Negada, retener tarjeta
09Negada, transacción duplicada
12Negada, transacción inválida
13Negada, monto inválido
14Negada, estado de la tarjeta inválido
15Negada, la institución no está en el IDF
16Negada, Numero cuotas invalidas
17Negada IAC inválido
30Negada, error en edición de mensaje
31Negada, el emisor no es soportado por el Sistema
33Negada, tarjeta vencida con orden de retención
34Negada, retener/capturar
35Negada, retener/capturar
36Negada, retener tarjeta
37Negada, tarjeta bloqueada retener/capturar
38Negada, número de intentos del PIN excedidos
39Negada, puede ser tarjeta bloqueada o timeout
41Negada, tarjeta robada o extraviada
43Negada, estado en archivo de tarjetahabientes (CAF
51Negada, no hay fondos suficientes
54Negada, tarjeta vencida
55Negada, PIN inválido
56Negada, no se encontro CAF
57Negada, transacción no permitida a esta tarjeta
58Negada, transacción Inválida
61Negada, excede el monto máximo
62Negada, tarjeta restringida
65Negada, límite de usos por período excedido
68Negada, TIMEOUT
70Negada, tarjeta vencida
71Negada, El tipo de cuenta no corresponde
75Negada, número de intentos de PIN excedidos
82Negada, no hay módulo de seguridad
83Negada, no hay cuenta para la tarjeta
84Negada, no existe el archivo de saldos PBF
85Negada, error en actualización de archivo de saldo
86Negada, tipo de autorización errado
87Negada, track 2 errado
88Negada, error en log de transacciones PTLF
89Negada, inválida la ruta de servicio
90Negada, no es posible autorizar
91Negada, no es posible autorizar
92Negada, puede ser tarjeta bloqueada o timeout
93Negada, no es posible autorizar
94Negada, transacción duplicada
96Negada, no se pudo procesar la transacción
97Negada, Número de documento inválido
98Negada, CVV2 inválido
N0Negada, no es posible autorizar
N1Negada, longitud del número de la tarjeta PAN invá
N2Negada, se llenó el archivo de preautorizaciones
N3Negada, límite de retiros en línea excedido
N4Negada, límite de retiros fuera de línea excedido
N5Negada, límite de crédito por retiro excedido
N6Negada, límite de retiros de crédito excedido
N7Negada, customer selected negative file reason
N8Negada, excede límite de piso
N9Negada, maximum number of refund credit
O0Negada, referral file full
O1Negada, NEG file problem
O2Negada, advances less than minimum
O3Negada, delinquent
O4Negada, over limit table
O5Negada, PIN required
O6Negada, mod 10 check
O7Negada, force post
O8Negada, bad PBF
O9Negada, NEG file problem
P0Negada, CAF problem
P1Negada, over daily limit
P2Negada, CAPF not found
P3Negada, advance less than minimum
P4Negada, number times used
P5Negada, delinquent
P6Negada, over limit table
P7Negada, advance less than minimum
P8Negada, administrative card needed
P9Negada, enter lesser amount
Q0Negada, invalid transaction date
Q1Negada, Fecha de vencimiento invalida
Q2Negada, invalid transaction code
Q3Negada, valor del avance menor que el mínimo
Q4Negada, excedido el número de usos por período
Q5Negada, delinquent
Q6Negada, tabla de límites excedida
Q7Negada, el valor excede al máximo
Q8Negada, no se encuentra la tarjeta administrativa
Q9Negada, la tarjeta administrativa no está permitida
R0Negada, transacción administrativa aprobada/en ven
R1Negada, transacción administrativa aprobada / fuer
R2Negada, transacción administrativa aprobada
R3Negada, la transacción Chargeback es aprobada
R4Negada, devolución/archivo de usuario actualizado
R5Negada, devolución/número de prefijo incorrecto
R6Negada, devolución/código de respuesta incorrecto
R7Negada, transacción administrativa no soportada
R8Negada, la tarjeta está en el archivo de negativos
S4Negada, PTLF full
S5Negada, devolución/aprobada, archivo del cliente n
S6Negada, devolución aprobada, archivo del cliente n
S7Negada, devolución aceptada, destino incorrecto
S8Negada, ADMIN file problem
S9Negada, unable to validate PIN; security module is
T1Negada, tarjeta de crédito inválida
T2Negada, fecha de transacción inválida
T3Negada, card not supported
T4Negada, amount over maximum
T5Negada, CAF status = 0 or 9
T6Negada, Bad UAF
T7Negada, límite diario excedido en el Cash back
T8Negada, el enlace esta caido
TONegada, time out

GET Obtener Listado de Bancos

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

 https://serviceregister.paymentsway.co/ClientAPI/ObtenerListadoBancos

Ejemplo de la petición

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

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/ObtenerListadoBancos", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

POST Crear Transacción PSE

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

 https://serviceregister.paymentsway.co/ClientAPI/CrearTransaccionPSE

Headers

Para consumir el servicio de "crear transacción PSE" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

CampoTipoDescripciónRequerido
amountintegerValor del pagoSi
PersonTypestringEnviar 0 para Persona Natural y 1 para Persona Juridica (En formato string)Si
identification_typeIntegerTipo de identificacion del pagadorSi
DocumentostringIdentificacion del pagadorSi
CorreostringEmail del pagadorSi
NombresstringNombres del pagadorSi
ApellidosstringApellidos del pagadorSi
CelularstringCelular del pagadorSi
DireccionstringDireccion del pagadorSi
external_orderstringIdentificador unico del lado del comercioSi
CodigoBancostringCodigo del Banco, se obtienen del servicio Obtener listado bancosSi
NombreBancostringNombre del Banco, se obtienen del servicio Obtener listado bancosSi
entityurlstringUrl de redireccion cuando el pago sea exitosoSi
terminal_idintegerId de la terminalSi
form_idintegerId del formularioSi
ipstringNumero de IP del pagadorSi
additionalDataObjectObjeto con informacion adicional que se retornara en el webhookNo

Cuerpo de la petición

Para consumir el servicio "crear transacción PSE" en el   body   de la petición colocara los siguientes datos:

{
        "amount" : 30000,
        "PersonType" : "0",
        "identification_type" : 4,
        "Documento" : "",
        "Correo" : "",
        "Nombres" : "Ana",
        "Apellidos" : "Perez",
        "Celular" : 3167225855,
        "Direccion" : "Calle 32 # 74 -31",
        "external_order" : "26",
        "CodigoBanco" : "10512",
        "NombreBanco" : "BANCO DAVIVIENDA",
        "entityurl" : "https://mysite.com/payment/success",
        "terminal_id" : 34
        "form_id" : 34
        "ip" : "192.168.0.1"
        "additionalData" : {
            "CualquierCosa" : "CualquierCosa"
        }
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("x-api-key", "Api_key");

var cuerpo = {
    "amount" : 30000,
    "PersonType" : "0",
    "identification_type" : 4,
    "Documento" : "",
    "Correo" : "",
    "Nombres" : "Ana",
    "Apellidos" : "Perez",
    "Celular" : 3167225855,
    "Direccion" : "Calle 32 # 74 -31",
    "external_order" : "26",
    "CodigoBanco" : "10512",
    "NombreBanco" : "BANCO DAVIVIENDA",
    "entityurl" : "https://mysite.com/payment/success",
    "terminal_id" : 34
    "form_id" : 34
    "ip" : "192.168.0.1"
    "additionalData" : {
        "CualquierCosa" : "CualquierCosa"
    }
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/CrearTransaccionPSE", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

GET Obtener Medios De Pago

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

  https://serviceregister.paymentsway.co/ClientAPI/ObtenerMediosDePago

Headers

Para consumir el servicio "obtener los medios de pago" necesitaremos en el   header   de la petición su   Api_key  

Ejemplo de la petición

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

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/ObtenerMediosDePago", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

POST Crear Transaccion Cash

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

 https://serviceregister.paymentsway.co/ClientAPI/CrearTransaccionCash

Headers

Para consumir el servicio de "crear transacción PSE" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

CampoTipoDescripciónRequerido
amountintegerValor del pagoSi
external_orderstringIdentificador unico del lado del comercioSi
descriptionstringDescripción brebe de la ordenSi
methodstringMetodo de pago, se optiene del servcicio Obtener Medios De PagoSi
ivaintegerIva sobre del pago (Si no aplica enviar 0)Si
user_identificationstringIdentificacion del pagadorSi
identification_typeStringTipo de identificacion del pagador, los posibles datos son
  • CC
  • CE
  • NIT
  • DNI
Si
user_namestringNombres del pagadorSi
user_last_namestringApellidos del pagadorSi
user_emailstringEmail del pagadorSi
user_phonestringCelular del pagadorSi
user_addressstringDireccion del pagadorSi
terminal_idintegerId de la terminalSi
form_idintegerId del formularioSi
ipstringNumero de IP del pagadorSi
additionalDataObjectObjeto con informacion adicional que se retornara en el webhookNo

Cuerpo de la peticion

Para consumir el servicio "crear transacción PSE" en el   body   de la petición colocara los siguientes datos:

{
    "amount" : 30000,
    "external_order" : 26,
    "description" : "any description test",
    "method" : "efecty",
    "iva" : 0,
    "user_identificatio" : "",
    "identification_type" : "CC",
    "user_name" : "Andres Camil",
    "user_last_name" : "Perez",
    "user_email" : "andres.ochoa0@gmail.com",
    "user_phone" : "3227358312",
    "user_address" : "cra 8b 17 15",
    "terminal_id" : 34,
    "form_id" : 34
    "ip" : "192.168.0.1"
    "additionalData" : {
        "CualquierCosa" : "CualquierCosa"
    }
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("x-api-key", "Api_key");

var cuerpo = {
    "amount" : 30000,
    "external_order" : 26,
    "description" : "any description test",
    "method" : "efecty",
    "iva" : 0,
    "user_identificatio" : "",
    "identification_type" : "CC",
    "user_name" : "Andres Camil",
    "user_last_name" : "Perez",
    "user_email" : "andres.ochoa0@gmail.com",
    "user_phone" : "3227358312",
    "user_address" : "cra 8b 17 15",
    "terminal_id" : 34,
    "form_id" : 34
    "ip" : "192.168.0.1"
    "additionalData" : {
        "CualquierCosa" : "CualquierCosa"
    }
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/CrearTransaccionCash", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

POST WebHook

NOTA:

Recuerde que para el correcto funcionamiento el webhook debe estar ejecutandose sobre SSL , no esta permitido implementaciones sin el uso de SSL.

EL WEBHOOK de notificaciones es el entorno que permite recibir la información de la notificación de la transacción y su estado. Este es un método de llamado asincrónico de tipo REST que recibe como parámetro de entrada un JSON que contiene el estado de ejecución de la transacción. La página de notificación permite actualizar las bases de datos de tu sistema; por esto, no debe incluir código HTML ya que nunca será visible al comprador. Cuando una transacción finaliza, es decir cuando es aprobada ,rechazada, cancelada o en espera (efectivo), nuestra plataforma envía las variables por medio del método HTTP POST.

Los posibles valores de status son:

 1 "Creada"
34 "Exitosa"
35 "Pendiente"
36 "Fallida"
38 "Cancelada"
39 "Reembolsada"
40 "Pendiente efectivo"

Como responder al webhook

Para el correcto uso del webhook tienes que enviar un status 200 únicamente cuando el estado de la transacción es exitosa (id 34) para el resto de estados debe ser respondido con un status 201

Campos que se envian en el WebHook

CampoTipoDescripcionMedio de pago

id

Numerico

Identificación unico generada.

Todos los metodos de pago

amount

Numerico

Cantidad cobrada al cliente.

Todos los metodos de pago

externalorder

Alfanumerico

Identificador de la orden generada por el comercio.

Todos los metodos de pago

Ip

Alfanumerico

Dirección IP del cliente.

Todos los metodos de pago

fullname

Alfanumerico

Nombre completo del cliente.

Todos los metodos de pago

additionaldata

JSON

Información adicional generada.

Todos los metodos de pago

idstatus

Object

Estado de la transacción. Contiene los siguientes campos:

  • id
  • name

Todos los metodos de pago

idperson

Object

Información del cliente. Contiene los siguientes campos:

  • id
  • firstname
  • lastname
  • identification
  • email
  • phone

Todos los metodos de pago

paymentmethod

Object

Información del método de pago. Contiene los siguientes campos:

  • id
  • nombre

Todos los metodos de pago

innerexception

Object

Causal de rechazo por PSE. Contiene los siguientes campos:

  • codigo
  • causal

PSE

Ejemplo del body

{
    "id" : Identificador interno,
    "amount" : Valor de la transaccion,
    "externalorder" : Identificador externo,
    "ip" : Ip del usuario pagador,
    "fullname" : nombres del pagador,
    "additionaldata" : Informacion adicional,
    "idstatus" : Datos del estado de la transaccion
        {
            "id" : Identificador de estado
            "nombre" : Nombre del estado
        }
    "idperson" : Datos del pagador
    {
        "id" : Identificador
        "firstname" : Nombres
        "lastname" : Apellidos
        "identification" : Numero de documento
        "email" : Correo electronico
        "phone" : Numero de telefono
    }
    "paymentmethod" : {
        "id" : id del metodo de pago
        "nombre" : Nombre del metodo de pago
    }
    "idmerchant" : Id merchant
}

{
    "id" : "822",
    "ammount" : 4000,
    "externalorder" : "12001",
    "ip" : "172.0.0.1",
    "fullname" : "",
    "additionaldata" : null,
    "idstatus" : 
        {
            "id" : 34
            "nombre" : "Exitosa"
        }
    "idperson" : 
    {
        "id" : "60"
        "firstname" : "Ejemplo nombre"
        "lastname" : "Ejemplo apellido"
        "identification" : "1200345601"
        "email" : ""
        "phone" : ""
    }
    "paymentmethod" :  {
        "id" : 2
        "nombre" : "PSE"
    }
    "idmerchant" : "1"
}
NOTA:

Únicamente en PSE y cuando el estado es Not_authorized se informará más detalladamente del inconveniente en el campo InnerException como se muestra en el siguiente codigo

                {
                    "id": 'id',
                    "amount": 100,
                    "externalorder": 'external',
                    "ip": '127.0.0.1',
                    "fullname": '',
                    "jsonresponse": '{"MESSAGE":"Información obtenida correctamente.","STATUS":true,"ID":"id","CODE":"code","PRICE":100,"DATA":{"returnCode":"SUCCESS","errorDetails":null,"trazabilityCode":"9999","ticketId":"ticketid","entityCode":"entity","financialInstitutionCode":"1","serviceCode":"1","transactionValue":"100.0","vatValue":"0.0","soliciteDate":"2023-09-18T00:00:00","bankProcessDate":"2023-09-18T14:33:43.117","transactionCycle":"4","transactionState":"NOT_AUTHORIZED","authorizationID":"00001","serviceNIT":"1","serviceName":"Nombre","userType":"person","paymentDescription":"","referenceNumber1":"","referenceNumber2":"CedulaDeCiudadania","referenceNumber3":"999","paymentOrigin":"3","paymentMode":"15","identificationType":"CedulaDeCiudadania","identificationNumber":"999","fullName":"nombre","cellphoneNumber":"","address":"kr","email":"email"}}',
                    "innerexception": { codigo: '00001', causal: 'CUENTA NO EXISTE' },
                    "additionaldata": {},
                    "idstatus": { "id": 36, "nombre": 'Fallida' },
                    "idperson": {
                        "id": '',
                        "firstname": '',
                        "lastname": '',
                        "identification": '',
                        "email": '',
                        "phone": ''
                    },
                    "paymentmethod": Services { id: 2, nombre: 'PSE' },
                    "idsubscripcion": null,
                    "idmerchant": ''
                }
                

INTRODUCCIÓN

Para usar PaymentsWay, necesita realizar un registro. Si no tiene una cuenta en PaymentsWay, puede registrarse para obtener sus credenciales e iniciar a integrar su negocio. Haz clic aquí.

REGISTRO A PaymentsWay

Si tienes dudas sobre el proceso de registro, aquí te explicamos, selecciona el tipo de registro que deseas realizar:

REGISTRO PARA PERSONA JURÍDICA

  1. Pre-registro : Completa el formulario de pre-registro con tu tipo y número de documento, nombres, apellidos, número de celular, correo electrónico y contraseña.
  2. Información de la empresa : Ingresa la información de tu empresa.
  3. Información del representante legal : Ingresa la información del representante legal y adjunta los documentos requeridos (frente y reverso de su documento de identidad).
  4. Información de accionistas: Proporciona información sobre los accionistas o junta directiva de la empresa.
  5. Ubicación: Ingresa la dirección de tu empresa.
  6. Información bancaria: Adjunta una certificación bancaria y el Registro Único Tributario (RUT) de la empresa.
  7. PEP: Declara si la empresa o sus accionistas son Personas Expuestas Políticamente.
  8. Cobertura transaccional: Selecciona la cobertura que necesitas.
  9. Anexos documentales: Adjunta los documentos requeridos (certificado de existencia y representación legal, RUT, etc.)
  10. Declaraciones: Lee y acepta las declaraciones.
  11. Aceptación de políticas : Lee y acepta las políticas de Paymentsway.

Al finalizar el último paso "Aceptación de políticas", podrás visualizar el contrato correspondiente a tu registro como persona jurídica, ya sea como "Agregador" o "Gateway", según tu elección previa.

Una vez aprobado por nuestra área de cumplimiento, podras usar los servicios de la pasarela de pagos PaymentsWay.

REGISTRO PARA PERSONA NATURAL

  1. Pre-registro: Completa el formulario de pre-registro con tu tipo y número de documento, nombres, apellidos, número de celular, correo electrónico y contraseña.
  2. Información general : Ingresa tu información personal y financiera.
  3. Información de tu negocio: Describe tu negocio y proporciona referencias comerciales.
  4. Ubicación: Ingresa la dirección de tu negocio.
  5. Información bancaria: Adjunta una certificación bancaria y tu Registro Único Tributario (RUT).
  6. PEP: Declara si eres una Persona Expuesta Políticamente.
  7. Cobertura transaccional: Selecciona la cobertura que necesitas.
  8. Anexos documentales: Adjunta los documentos requeridos (frente y reverso de tu documento de identidad).
  9. Declaraciones: Lee y acepta las declaraciones.
  10. Aceptación de políticas: Lee y acepta las políticas.

Al finalizar el último paso "Aceptación de políticas", podrás visualizar el contrato correspondiente a tu registro como persona natural.

Una vez aprobado por nuestra área de cumplimiento, podras usar los servicios de la pasarela de pagos PaymentsWay.

INTEGRACIONES

Con PaymentsWay tienes tres formas diferentes de integrar nuestra pasarela a su E-commerce o pagina web. A continuación encontrarás un resumen de cómo funciona cada uno:

WIDGET

Con solo unas pocas líneas de código, integre nuestro widget de pagos, permitiendo que sus clientes paguen sin salir de su sitio Web.

COMPLEMENTOS PARA CMS

La consola de PaymentsWay te permite También utilizar un formulario HTML normal para redirigir a sus clientes a nuestro Web Checkout seguro .

COMPLEMENTOS DE COMERCIO

Acepte pagos en su tienda online en segundos.


Ahora puede aceptar pagos en su tienda en línea, utilizando nuestros complementos de comercio electrónico.

Botones de pago

Para conocer mas sobre la creación de Botón de pagos, haz click aquí:

Paymerchant API

POST Crear Transaccion Tarjeta de Crédito

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

 https://serviceregister.paymentsway.co/ClientAPI/CrearTransaccionTC

Headers

Para consumir el servicio de "crear transacción tarjeta de crédito" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

CampoTipoDescripciónRequerido
amountintegerValor del pagoSi
firstnamestringNomres del pagadorSi
lastnamestringApellidos del pagadorSi
card_identificationstringIdentificacion del pagadorSi
identification_typeIntegerTipo de identificacion del pagadorSi
card_holderstringNombre Completo como aparece en la TCSi
card_panstringNumero de la TCSi
card_panstringNumero de la TC sin espacios ni guionesSi
card_expiry_yearstringAño de expiracion de la TCSi
card_expiry_monthstringMes de expiracion de la TCSi
card_cvvstringCVV de la TCSi
url_okstringCVV de la TCNo
url_kostringCVV de la TCNo
descriptionstringDescripción brebe de la ordenSi
installmentsintegerNumero de CuotasSi
external_orderstringIdentificador unico del lado del comercioSi
dynamic_descriptorstringDescripción brebe de la ordenSi
terminal_idintegerId de la terminalSi
form_idintegerId del formularioSi
ipstringNumero de IP del pagadorSi
additionalDataObjectObjeto con informacion adicional que se retornara en el webhookSi
autorizacionDatosbooleanIndica si el pagador autoriza el uso de datos para tokenizar su tarjetaSi

Cuerpo de la peticion

Para consumir el servicio "crear transacción tarjeta de credito" en el   body   de la petición colocara los siguientes datos:

{
        "amount" : 300000,
        "firstname" : "",
        "lastname" : "",
        "card_identification" : "",
        "identification_type" : 4,
        "card_holder" : "PEPITO PEREZ PA",
        "card_pan" : "411111111111",
        "card_expiry_year" : "26",
        "card_expiry_month" : "06",
        "card_cvv" : "123",
        "url_ok" : "https://mysite.com/payment/success",
        "url_ko" : "https://mysite.com/payment/error",
        "description" : "order's description test",
        "installments" : 3,
        "external_order" : "trc231566" ,
        "dynamic_descriptor" : "Prueba PayLands",
        "terminal_id" : 34,
        "form_id" : 34,
        "ip" : "192.168.0.1",
        "additionalData" : {
            "CualquierCosa" : "Cualquiecosa"   
        },
        "autorizacionDatos" : true
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("x-api-key", "Api_key");

var cuerpo = {
    "amount" : 300000,
    "firstname" : "",
    "lastname" : "",
    "card_identification" : "",
    "identification_type" : 4,
    "card_holder" : "PEPITO PEREZ PA",
    "card_pan" : "411111111111",
    "card_expiry_year" : "26",
    "card_expiry_month" : "06",
    "card_cvv" : "123",
    "url_ok" : "https://mysite.com/payment/success",
    "url_ko" : "https://mysite.com/payment/error",
    "description" : "order's description test",
    "installments" : 3,
    "external_order" : "trc231566" ,
    "dynamic_descriptor" : "Prueba PayLands",
    "terminal_id" : 34,
    "form_id" : 34,
    "ip" : "192.168.0.1",
    "additionalData" : {
        "CualquierCosa" : "Cualquiecosa"   
    },
    "autorizacionDatos" : true
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/CrearTransaccionTC", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

POST Tokenizar Tarjeta de Crédito

Recuerde que el API solo esta disponible para usuarios con certificación PCI y DSS.

 https://serviceregister.paymentsway.co/ClientAPI/TokenizarTarjeta

Headers

Para consumir el servicio de "tokenizar tarjeta de crédito" necesitaremos en el   header   de la petición su   Api_key  

Parametrización

CampoTipoDescripciónRequerido
firstnamestringNomres del pagadorSi
lastnamestringApellidos del pagadorSi
card_identificationstringIdentificacion del pagadorSi
identification_typeIntegerTipo de identificacion del pagadorSi
CorreostringEmail del PagadorNo
CelularstringCelular del PagadorNo
DireccionstringDireccion del PagadorNo
card_holderstringNombre Completo como aparece en la TCSi
card_panstringNumero de la TCSi
card_panstringNumero de la TC sin espacios ni guionesSi
card_expiry_yearstringAño de expiracion de la TCSi
card_expiry_monthstringMes de expiracion de la TCSi
card_cvvstringCVV de la TCSi
terminal_idintegerId de la terminalSi
autorizacionDatosbooleanIndica si el pagador autoriza el uso de datos para tokenizar su tarjetaSi

Cuerpo de la peticion

Para consumir el servicio "tokenizar tarjeta de credito" en el   body   de la petición colocara los siguientes datos:

{
        "firstname" : "",
        "lastname" : "",
        "card_identification" : "",
        "identification_type" : 4,
        "Correo" : "",
        "Celular" : "",
        "Direccion" : "Cra 80i n 56 50 Sur",
        "card_holder" : "PEPITO PEREZ PA",
        "card_pan" : "5567158043062926",
        "card_expiry_year" : "26",
        "card_expiry_month" : "06",
        "card_cvv" : "123",
        "terminal_id" : 77,
        "autorizacionDatos" : true
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("x-api-key", "Api_key");

var cuerpo = {
    "firstname" : "",
    "lastname" : "",
    "card_identification" : "",
    "identification_type" : 4,
    "Correo" : "",
    "Celular" : "",
    "Direccion" : "Cra 80i n 56 50 Sur",
    "card_holder" : "PEPITO PEREZ PA",
    "card_pan" : "5567158043062926",
    "card_expiry_year" : "26",
    "card_expiry_month" : "06",
    "card_cvv" : "123",
    "terminal_id" : 77,
    "autorizacionDatos" : true
}

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

fetch("https://serviceregister.paymentsway.co/ClientAPI/TokenizarTarjeta", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Botón de pago

Una vez seleccionado el botón de “Crear botón de pago”, diligenciaremos el formulario.

Botón de pago Abiertos

Con PaymentsWay usted tiene la posibilidad de crear un botón de pagos abiertos. Una vez seleccionado el botón de “Crear botón de pago”, diligenciará el formulario.

PayOuts

PayOuts Service proporciona los servicios de necesarios para realizar la carga de una dispersión, descarga del archivo para envío al banco y cargar la respuesta del banco, además proporciona un servicio de login que otorgara el token necesario para el consumo de los demás servicios. La especificación de este servicio, se puede encontrar en la siguiente dirección:

English

Español

TARJETAS CRÉDITO/DEBITO

PSE

EFECTIVO