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.coltefinanciera.com.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:

CampoTipoDescripcion

merchant_id

Numérico

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

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.

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.

amount

Numérico

Es el monto total de la transacción.

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

order_description

Alfa numérico

Es la descripción de la venta.

client_email

Alfa numérico

Es el correo electrónico del cliente.

response_url

Alfa numérico

Url de respuesta para el cliente.

client_phone

Numérico

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

client_firstname

Alfa numérico

Es el primer nombre del cliente.

client_lastname

Alfa numérico

Son los apellidos del cliente.

client_doctype

Alfa numérico

Es el tipo de documento del cliente.

client_numdoc

Numérico

Es el numéro de documento del cliente.

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.coltefinanciera.com.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:

CampoTipoDescripcion

merchant_id

Numérico

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

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.

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.

amount

Numérico

Es el monto total de la transacción.

currency

Alfa numérico

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

type_method

Numérico

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

amount_1

Numérico

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

amount_2

Numérico

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

amount_3

Numérico

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

amount_4

Numérico

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

min_amount

Numérico

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

max_amount

Numérico

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

order_description

Alfa numérico

Es la descripción de la venta.

client_email

Alfa numérico

Es el correo electrónico del cliente.

response_url

Alfa numérico

Url de respuesta para el cliente.

client_phone

Numérico

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

client_firstname

Alfa numérico

Es el primer nombre del cliente.

client_lastname

Alfa numérico

Son los apellidos del cliente.

client_doctype

Alfa numérico

Es el tipo de documento del cliente.

client_numdoc

Numérico

Es el numéro de documento del cliente.

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.coltefinanciera.com.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.coltefinanciera.com.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 formulario:

CampoTipoDescripcionObligatorio

merchant_id

Alfa numérico

Es el número identificador del comercio en el sistema de PayWay, 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({
        name : 'Nombre del cliente' ,
        lastName : 'Apellido del cliente',
        email : 'Correo electrónico del cliente',
        identification : 'Identificación del cliente,
    });

no

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

  1. Para obtener los datos, tendremos que ingresar a la consola de Coltefinanciera, 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 Coltefinanciera 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 Coltefinanciera. Para mas información puede consultar: Coltefinanciera

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 Coltefinanciera, 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 Coltefinanciera 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 Coltefinanciera 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 Coltefinanciera. Para mas información puede consultar: Coltefinanciera

Moneda

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

Requisitos

Instalación

  1. Descargue el plugin Coltefinanciera.
  2. Añada el plugin al administrador de PrestaShop
  3. Suba el plugin, Instale y active.
  4. Diríjase al apartado de PrestaShop y seleccione ajustes.
  5. Ubique en configuración el campo obligatorio ID MERCHANT
    • UUbique en la pasarela el campo obligatorio ID MERCHAN
  6. Ubique en configuración el campo obligatorio ID TERMINAL.
    • Ubique en la pasarela el campo obligatorio ID MERCHANT
  7. Ubique en configuración el campo obligatorio ID TERMINAL
    • Ubique en la pasarela el campo obligatorio ID TERMINAL
  8. Ubique en configuración el campo obligatorio ID BOTON DE PAGO
    • Ubique en la pasarela ID BOTON DE PAGO
  9. Ubique en configuración el campo obligatorio APIKEY
    • Ubique en la pasarela APIKEY
  10. Ubique en configuración el campo obligatorio URL de retorno al E-commerce.
  11. Diríjase a su respectiva página de tienda.
  12. Nos fijamos en la Url de nuestra tienda.
  13. Por último, guardamos los cambios desde el administrador de PrestaShop.

POST Crear link de pago

  https://merchant.coltefinanciera.com.co/link-de-pago/create

Headers

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

Parametrización

CampoTipoDescripciónRequerido
form_idstring / numberForm idSi
terminal_idstring / numberterminal idSi
order_numberstringValor interno para identificar las transacciones, tiene que ser único.Si
amountstring / numberValor de la transacciónSi
currencystringTipo de moneda. Por ejemplo COPSi
merchant_idstringMerchant id.Si
order_descriptionstringDescripción de la compraSi
client_emailstringEmail del clienteNo
client_phonestringNumero del clienteNo
client_firstnamestringNombre del cliente.No
client_lastnamestringApellido del cliente.No
client_doctypestringTipo de documento del cliente .No
client_numdocstringIdentificacióndel cliente.No
response_urlstringUrl de direccionamiento cuando el cliente termina el proceso de pagoSi
aditional_dataObjectInformación adicional.Si

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.coltefinanciera.com.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" : "",
    }

GET Obtener Tipos Identificación

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

  https://serviceregister.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.co/ClientAPI/GetAllTransactionStatuses", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

POST Crear Persona

 https://serviceregister.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.co/ClientAPI/CrearTransaccionTC", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

POST Reversar Transaccion

 https://serviceregister.coltefinanciera.com.co/ClientAPI/ReversarTransaccion

idTransaction, Identificador de la transaccion de Coltefinanciera, 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.coltefinanciera.com.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.coltefinanciera.com.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" : 0000000000,
        "identification_type" : 4,
        "idperson" : 0,
        "url" : "URL DEL COMERCIO",
}

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("Authorization", "Api_key");
 
var cuerpo = {
    "documento" : 0000000000,
    "identification_type" : 4,
    "idperson" : 0,
    "url" : "URL DEL COMERCIO"
}

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

fetch("https://serviceregister.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.co/tokenizacion/?p=${token}`
    </script>
                  

Realizar transacción

POST Crear Transacción

             https://serviceregister.coltefinanciera.com.co/ClientAPI/CrearTransaccion

Una vez el ususario ingrese la tarjeta de credito en el embed, tendras que crear una transacción

Cuerpo de la peticion

{
    "form_id" : "",
    "terminal_id" : "",
    "idperson" : "",
    "amount" : "",
    "external_order" : "Indicador por comercio",
    "ip" : "",
    "additionalData" : "",
    "currencycode" : "COP",
}
            

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("Authorization", "Api_key");
 
var cuerpo = {
    "form_id" : "",
    "terminal_id" : "",
    "idperson" : "",
    "amount" : "",
    "external_order" : "Indicador por comercio",
    "ip" : "",
    "additionalData" : "",
    "currencycode" : "COP",
}

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

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

POST Crear Orden

Cuando creamos una transacción nos devuelve un id, este id lo tenemos que enviar en este endpoint

                 https://serviceregister.coltefinanciera.com.co/ClientAPI/CrearOrdenTransaccionTC

Cuerpo de la peticion

{
    "description" : "",
    "tran_id" : 100,
}
            

Ejemplo de la petición

var myHeaders =  new  Headers();
myHeaders.append ("Authorization", "Api_key");
 
var cuerpo = {
    "description" : "",
    "tran_id" : 100,
}

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

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

GET Traer Token Tarjeta

Traemos el token de la tarjeta del cliente

     https://serviceregister.coltefinanciera.com.co/ClientAPI/GetTarjetabiente

Cuerpo de la peticion

{
"documento" : 1000,
}

Ejemplo de la petición

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

var cuerpo = {
    "documento" : 1000,
}

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

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

POST Ejecutar Orden

Ejecutamos la transaccion con el siguiente endpoint

     https://serviceregister.coltefinanciera.com.co/ClientAPI/EjecutarOrdenTransaccionTC

Cuerpo de la peticion

{
    "orden" : "Obtenido del endpoint Crear Orden",
    "hash" : "Obtenido del endpoint Tokenizar Persona",
    "tran_id" : 1000 (Obtenido del endpoint Crear Transacción),
}

Ejemplo de la petición

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

var cuerpo = {
    "orden" : "Obtenido del endpoint Crear Orden",
    "hash" : "Obtenido del endpoint Tokenizar Persona",
    "tran_id" : 1000 (Obtenido del endpoint Crear Transacción),
}

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

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

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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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"
37 "Rechazada ClearSale"
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

{
    "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": ''
                }
                

POST CrearTransaccionInternacional

 https://serviceregister.coltefinanciera.com.co/ClientAPI/CrearTransaccionInternacional

Parametrización

CampoTipoDescripciónRequerido
form_idstringForm id.Si
terminal_idstringTerminal id.Si
idpersonstringid person obtenido en el endponint.Si
amountstringMonto a pagar por el cliente.Si
external_orderstringDebe ser un identificador único.Si
ipstringIP del cliente.Si
additionalDataObjectInformación adicional que será guardada en la transacción.No

Ejemplo de la petición

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

var cuerpo = {
    "amount" : "1000",
    "external_order" : "120",
    "form_id" : "1",
        "additionalData" : {},
        "idperson" : "1",
        "ip" : "192.0.0.1",
        "terminal_id" : "10",
    }
    
}

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

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

Posibles estados

posibles estados: 200 || 401 || 500

mensajes status 401: "Apikey not exist" || "El comercio se encuentra en estado Preaprobado || Rechazado, No se puede generar la transacción." || "Terminal not found" || "Carta de pago not found" || "Botón de pago desactivado, por favor comuníquese con servicio al cliente: +57 315 5546305" || `Ya existe una transacción con número de orden external_order` || `En este momento su transacción #external_order presenta un proceso de pago cuya transacción se encuentra PENDIENTE de recibir confirmación por parte de su entidad financiera, por favor espere unos minutos y vuelva a consultar más tarde para verificar si su pago fue confirmado de forma exitosa. Si desea mayor información sobre el estado actual de su operación puede comunicarse a nuestras líneas de atención al cliente 601 7035887 / 315 5546305 o enviar un correo electrónico a sac@paymentsway.co y preguntar por el estado de la transacción:external_order || `Ya existe una transacción con número de orden external_order`

POST Crear transacción PIX

 https://serviceregister.coltefinanciera.com.co/ClientAPI/CrearTransaccionInternacionalPIX

Parametrización

CampoTipoDescripciónRequerido
detallesObjectEn el objeto "detalles" tendrá que ir los datos: "firstName", "lastName", "email", "country", "city", "zip", "phone", "address", "ipAddres"Si
firstNamestringNombre del cliente.Si
lastNamestringApellidos del cliente.Si
emailstringCorreo electrónico del cliente.Si
countrystringCiudad del cliente.Si
citystringDirección del clienteSi
zipstringCodigo postal del cliente.Si
phonestringNumero del cliente.Si
addressstringNombre del cliente.Si
ipAddresstringI.P del clienteSi
amountstringMonto a pagar por el cliente.Si
currencystringTipo de moneda.Si
IdPersonastringId Persona de la personaSi
IdTransactionstringId transacciónSi
IdFormstringId form Si
personal_idstringCPFSi

Ejemplo de la petición

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

var cuerpo = {
    "PixDeposito" : {
        "detalles" : {
            "firstName" : "Nombre"
            "lastName" : "Apellido"
            "email" : "example@test.com"
            "country" : "BR"
            "city" : "Brazilia"
            "zip" : "11001"
            "phone" : "3200000000"
            "address" : "avenida siempre viva"
            "ipAddres" : "127.0.0.1"
        },
        "amount" : "10000",
        "currency" : "BRL",
        "IdPersona" : "0",
        "IdTransaction" : 0,
        "IdForm" : "0",
        "personal_id" : "0",
    }
    
}

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

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

Posibles estados

posibles estados: 200 || 401 || 500

mensajes status 401: "Transaction not found" || "Carta de pago not found" || "Persona not found" || "Undefined token" (Este error se presenta por irregularidades con las llaves configuradas en la terminal)

POST Crear transacción boleto

 https://serviceregister.coltefinanciera.com.co/ClientAPI/CrearTransaccionInternacionalBoleto

Parametrización

CampoTipoDescripciónRequerido
detallesObjectEn el objeto "detalles" tendrá que ir los datos: "firstName", "lastName", "email", "country", "city", "zip", "phone", "address", "ipAddres"Si
firstNamestringNombre del cliente.Si
lastNamestringApellidos del cliente.Si
emailstringCorreo electrónico del cliente.Si
countrystringCiudad del cliente.Si
citystringDirección del clienteSi
zipstringCodigo postal del cliente.Si
phonestringNumero del cliente.Si
addressstringNombre del cliente.Si
ipAddresstringI.P del clienteSi
amountstringMonto a pagar por el cliente.Si
currencystringTipo de moneda.Si
IdPersonastringId Persona de la personaSi
IdTransactionstringId transacciónSi
IdFormstringId form Si
personal_idstringCPFSi

Ejemplo de la petición

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

var cuerpo = {
    "Boleto" : {
        "detalles" : {
            "firstName" : "Nombre"
            "lastName" : "Apellido"
            "email" : "example@test.com"
            "country" : "BR"
            "city" : "Brazilia"
            "zip" : "11001"
            "phone" : "3200000000"
            "address" : "avenida siempre viva"
            "ipAddres" : "127.0.0.1"
        },
        "amount" : "10000",
        "currency" : "BRL",
        "IdPersona" : "0",
        "IdTransaction" : 0,
        "IdForm" : "0",
        "personal_id" : "0",
    }
    
}

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

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

Posibles estados

posibles estados: 200 || 401 || 500

mensajes status 401: "Transaction not found" || "Carta de pago not found" || "Persona not found" || "Undefined token" (Este error se presenta por irregularidades con las llaves configuradas en la terminal)

INTEGRACIONES

Con Coltefinanciera 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 Coltefinanciera 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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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.coltefinanciera.com.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 Coltefinanciera 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.

CashOut

CashOutService 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