Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

A continuación se muestra una imagen del formulario que solicita los datos para efectuar el pago con tarjeta.

Image RemovedImage Added

Formulario de pago de VTOL Payment Bridge

...

  1. Utilización de protocolo seguro https.
  2. Encriptar los datos que se envían a VPB en la invocación de autorización.
  3. Consultar a VPB el estado y datos de la transacción autorizada.
  4. Indicar a VPB si debe confirmar o cancelar la transacción.
  5. Brindar a VPB información sobre confirmación o cancelación de una transacción cuando este lo requiera, mediante una invocación GET.

...

La versión actual de VTOL Payment Bridge no soporta alta disponibilidad. Es decir, que la aplicación actualmente está construida para trabajar como un nodo único.


Âncora
_

...

Toc434487108
_

...

Toc434487108
2.

...

Integración

En esta sección se detalla la manera de integrar el e-commerce con VTOL Payment Bridge.


Âncora
_Toc381043093
_Toc381043093
Âncora
_

...

Toc434487110
_

...

Toc434487110
2.1

...

Servicios brindados por VPB

VTOL Payment Bridge es una aplicación pensada para ser integrada en el contenedor Web de Apache Tomcat versión 9.

...

A continuación se detallan los requerimientos mínimos que son requeridos para poder instalar y ejecutar la aplicación.

...

Componente

...

Requerimiento Mínimo

...

Memoria RAM

...

Mínimo de 1 GB disponible para la aplicación

...

Disco Rígido

...

Mínimo de 1 GB disponible para la aplicación

...

Componente

...

Requerimiento Mínimo

...

Sistema Operativo

...

  • Windows 8 64bits o superior, compatible con la versión de Java
  • Linux Debian u otra distribución compatible con Tomcat

...

Máquina Virtual

...

JVM SUN 1.8.X de 64bits

...

Contenedor Web

...

Tomcat versión 9

...

Base de datos

...

MSSQL 2008 o superior

...

  • Correr desde la consola el instalador con el comando:
                cmd: java -jar vtol-payment-bridge-installer-3.8.0.3-SNAPSHOT.jar
  • Aceptar la licencia
  • Ingresar la  ruta de la JDK
  • Ingresar la ruta donde está instalado Tomcat 9
  • Seleccionar si desea realizar la instalación completa.

Image Removed

Solo para Instalación completa

  • Ingresar la ruta del certificado de seguridad

  • Ingresar el password del certificado de seguridad

Image Removed

  • Ingresar las credenciales de conexión a la base de datos SQL SERVER.

Image Removed

Para instalación completa y parcial

  • Se desplegará la siguiente imagen:

Image Removed

  • La finalización de la instalación se informa mediante un mensaje de "Terminado". Oprimir "Aceptar".
  • Presionar el botón "Salir" para salir del instalador.
  • Dentro del directorio NNNN se creó la carpeta con la nueva versión instalada de VTOL Payment Bridge.
  • A continuación, lo que se debe realizar es ejecutar los scripts en la base de datos. Ver el apartado 2.5 Creación de base de datos
Informações
titleImportante

Sólo se podrá realizar la instalación sobre una base de datos MSSQL.

...

Se debe crear la base de datos para la aplicación y contar con usuario que tenga permisos de OWNER sobre la misma. Luego con dicho usuario se deben ejecutar los scripts para crear y popular la base de datos.

Los archivos scripts se encuentran disponibles en la ruta \vtolpaymentBridge\scripts

...

En esta sección se detalla la manera de integrar el e-commerce con VTOL Payment Bridge.

...

VTOL Payment Bridge brinda los siguientes servicios:

...

brinda los siguientes servicios:


2.1.1 Transacción en 1 fase (Venta)

VTOL Payment Bridge ofrece la posibilidad de realizar una transacción en una sola fase, llamada Venta (cargo). Directamente se realiza la transacción financiera. En esta modalidad VPB autoriza, verifica y captura todo de una vez.

...

2.

...

1.1.1 Solicitud de Pago

Servicio: /authorizeForm

Para realizar una solicitud de Pago, se debe invocar un método POST al endpoint de VPB, enviando el atributo transactionType=sale.Los campos se envían en formato json "Nombre del campo":"valor"=sale.

Invocación:

En la invocación POST se envían los siguientes parámetros con los datos de la venta:

Parámetro

Tipo

Obligatorio

Descripción

ecommerceObjectSIDatos del comercio electrónico

companyNuméricoAlfanuméricoSICódigo de la compañía que realiza la solicitud de pago.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza la solicitud de pago.
transactionTypeAlfanuméricoSITipo de transacción. Enviar sale
transactionIdNuméricoSI

Identificador de la transacción de pago. 16 dígitos de longitud. Debe ser generado por el e-commerce de manera tal que identifique unívocamente a una operación de pago, respetando el siguiente formato: yyyyMMddHHmmssxx, donde:

yyyyMMddHHmmss: Fecha en que se realiza la operación con 4 dígitos para el año, 2 dígitos para el mes, 2 dígitos para el día, dos dígitos para la hora, dos dígitos para los minutos y 2 dígitos para los segundos.

xx: 2 dígitos para el trace de transacciones. Es un valor incremental que inicia en 01 y su valor máximo es 99.

autoCommitBooleanNO

Identifica si las transacciones serán confirmadas por VPB sin esperar un "tercer mensaje". Valores posibles:

True: Las transacciones que retornen aprobadas desde VTOL, serán confirmadas automáticamente.

False: Las transacciones que retornen aprobadas desde VTOL, deberán ser confirmadas con un tercer mensaje por parte del eCommerce.

Si no se envía este campo, por defecto se toma el valor False.

paymentDataObject


planAlfanuméricoSIPlan. Enviar valor 0.

paymentsNuméricoSICantidad de cuotas.

paymentConditionAlfanuméricoNOCondición de pago, asociada con el campo payments. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción.
additionalCardHolderBooleanNO

Campo que podrá enviar el eCommerce para que VPB solicite datos adicionales del tarjeta habiente en el formulario de pago, para ser validados por antifraude. Estos datos serán enviados en el objeto cardHolder. Valores posibles:

True: VPB solicitará los datos adicionales del tarjeta habiente en el formulario de pago.

False: VPB no solicitará datos adicionales del tarjeta habiente en el formulario. Dichos datos deberán ser enviados por el eCommerce.

Si no se envía este campo, los datos adicionales del cliente no serán solicitados por ningún sistema.

cardHolderObjectNODatos del titular de la tarjeta.

prefixCardNumberNuméricoNO6 primeros dígitos de la tarjeta.

identificationTypeAlfanuméricoCondicional

Tipo de identificación. Valores posibles:

0: CUIT
1: CUIL
2: Número único

Obligatorio si additionalCardHolder=False


identificationNumberNuméricoCondicional

Número de identificación. Máximo 8 dígitos.

Obligatorio si additionalCardHolder=False


birthdate

DateCondicional

Fecha de nacimiento del tarjeta habiente. Formato YYYYMMDDFormato DDMMYYYY.

Obligatorio si additionalCardHolder=False


phoneNuméricoNOTeléfono del tarjeta habiente. Máximo 11 dígitos.

deliveryAddress

ObjectNODatos de dirección de entrega del resumen de la tarjeta del pagador.



streetName

AlfanuméricoCondicional

Calle.

Obligatorio si additionalCardHolder=False



streetNumber

NuméricoCondicional

Número de puerta.

Obligatorio si additionalCardHolder=False



complementAlfanuméricoNOPiso / departamento.



zipCode

NuméricoNOCódigo postal. Máximo 4 dígitos.
customerData
ObjectNODatos del usuario registrado en el e-commerce

customerNameAlfanuméricoNONombre del cliente del e-commerce

customerLastNameAlfanuméricoNOApellido del cliente del e-commerce

customerIdentificationTypeAlfanuméricoNOTipo de documento del cliente del e-commerce

customerIdentificationNumberAlfanuméricoNONúmero de documento del cliente del e-commerce

customerIdAlfanuméricoNONombre o id del usuario del e-commerce.

customerIPAlfanuméricoSIDirección IP del usuario del e-commerce.
cardValidationObjectNODatos que utilizará VPB para validar la tarjeta ingresada por el usuario web en el formulario.

brandAlfanuméricoNOMarca de la tarjeta. Máximo 10 caracteres.

providerAlfanuméricoNOCódigo del Provider de tarjeta. Ejemplo VI (Visa). Longitud máxima 20.

bankAlfanuméricoNOBanco emisor de la tarjeta. Longitud máxima 20.
amountNuméricoSIImporte total a pagar.

currency

Alfanumérico

SI

Tipo de Moneda:

  • $ = Pesos
  • U$S = Dólares
interestAmountAlfanuméricoNOEste campo es por si se necesita enviar el monto de los intereses en el mensaje a Autorizar. Normalmente el monto ya contiene los intereses en el caso de pagar en cuotas. Pero existen casos de tarjetas especiales donde el monto hay que enviarlo libre de intereses y en otro campo los intereses.
urlObjectSIDatos de las URLs de callback.


callbackUrlError

Alfanumérico

SI

URL de respuesta a la cual VPB hace la redirección cuando el requerimiento genera un error de validación o se produce algún problema interno. En la invocación se envía el transaccionID correspondiente y un mensaje que detalla el error ocurrido.


callbackUrlSuccessful

Alfanumérico

SI

URL de respuesta a la cual VPB hace la redirección cuando el requerimiento finaliza correctamente. En la invocación se envía el transacciónID correspondiente.
Importante: que haya sido enviado a VTOL Server no significa que la operación se encuentre Aprobada.


callbackUrlCancelAlfanuméricoSIURL de respuesta que será invocado cuando el pago de la compra sea cancelado por el usuario desde VPB.

checkTransactionStatusAlfanuméricoSI

URL definida por el e-commerce donde VPB podrá realizar una invocación GET, y poder obtener qué acción realizar sobre una transacción, confirmarla o cancelarla. Ver Servicios brindados por el ecommerce

formDataObjectNODatos del comercio que se mostrarán en el formulario de ingreso de datos de la tarjeta


merchantName

AlfanuméricoNO

Nombre que se visualizará en el formulario para el ingreso de datos de la tarjeta.

Si no se envía este campo, se mostrará un nombre por defecto.


merchantImageURL

AlfanuméricoNO

URL donde VPB podrá tomar la imagen que se visualizará en el formulario para el ingreso de datos de la tarjeta.

Si no se envía este campo, se mostrará una imagen por defecto.


merchantImageMobileURLAlfanuméricoNO

URL donde VPB podrá tomar la imagen que se visualizará en el formulario para el ingreso de datos de la tarjeta en dispositivos móviles y tablets.

Si no se envía este campo, se mostrará una imagen por defecto.

orderDescriptionAlfanuméricoNOEste campo se utiliza para enviar desde el eCommerce una leyenda que se mostrará en el formulario de VPB. En caso de que no se envíe este campo, se mostrará una leyenda por defecto.
posTicketAlfanuméricoNOInformación del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket
ecommerceCustomFieldAlfanuméricoNOMáximo 255 caracteres. Campo generado por el eCommerce, lo puede enviar a VPB para que este lo guarde y pueda ser usado para trazabilidad del eCommerce.
formTimeoutAlfanuméricoNOTiempo de espera para cargar los datos de la tarjeta en el formulario de VPB.

* Campos Condicionales:

Si additionalPayerData=False, entonces el eCommerce debe enviar obligatoriamente los siguientes campos:

...

La respuesta se realiza en el la dirección de callback, especificada  especificada por el eCommerce. Los campos se envían en formato json "Nombre del campo":"valor".

Se responden los siguientes campos:

transactionIdNuméricoIdentificador la transacción de pago generado por el eCommerce.
ParámetroTipoDescripción
transactionTypeAlfanuméricoTipo de companytransacción realizada.
ecommerceObjectDatos del comercio electrónico

companyAlfanuméricoCódigo de la compañía que realiza la compra.

storeNuméricoCódigo de la tienda asociada a la compañía que realiza la compra.storerealiza la compra.
transactionIdNuméricoIdentificador de la transacción de pago generado por el eCommerce.
responseCodeNuméricoCódigo de la tienda asociada a la compañía que realiza la compra.transactionTyperespuesta de la operación realizada.
statusAlfanuméricoTipo de Estado en el cual quedó registrada de la transacción realizada.


Informações
titleImportante

Cuando el eCommerce recibe la notificación, tiene que obtener la información completa del recurso notificado, accediendo al endpoint correspondiente de la API: /checkTransactionStatus

...

Bloco de código
themeMidnight
titlejson
linenumberstrue
{
	   "transactionIdtransactionType": "1567105313489Sale",
	
   "ecommerce": {
      "company": "55C1",
	      "store": "1",
	"transactionType":"sale
   },
   "transactionId": "1580408171332",
   "responseCode": "00",
   "status": "Pending"
}


Âncora
checkTransactionStatus
checkTransactionStatus

...

2.

...

1.1.2 Consultar Estado de Transacción

Servicio: /checkTransactionStatus

...

En la invocación GET se envían los siguientes parámetros de la operación:

CampoTipoObligatorioDescripción
transactionIdNuméricoSIIdentificador de la transacción de pago generado por el ecommerce.
ecommerceObjectSIDatos del comercio electrónico

company

NuméricoAlfanumérico

SICódigo de la compañía que realiza la consulta.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza la consulta.

...

Bloco de código
themeMidnight
titlejson
linenumberstrue
{
	   "transactionId": "15671053134891580409092436",
	
   "ecommerce": {
      "company": "1C1",
	      "store": "1"
   }
}


Respuesta:

La respuesta retorna los siguientes campos:

Campo

Tipo

Descripción

responseCode

Numérico

Código de Respuesta de la transacción. Ver sección Códigos de Respuesta.

responseMessage

Alfanumérico

Descripción del Código de Respuesta

statusauthorizationStatus

Alfanumérico

Estado de la transacción. Puede ser:

Initialized: Inicializada

Cancel: Cancelada por el usuario.

Authorize: autorizando

Rejected: rechazada

Pending: Pendiente de confirmación.

Commit: Confirmada

Rollback: Cancelada.

node

Numérico

Código de nodo de VTOL Server utilizado para la autorización.

transactionIdid

Numérico

Identificador de la transacción.

amount

Numérico

Importe total de la operación.

currency

Alfanumérico

Tipo de moneda.

ticket

Numérico

Ticket generado en VTOL Server

authorizationCode

Numérico

Código de autorización de la transacción, en caso de que haya sido aprobada.

vtolTrxId

Numérico

Identificador de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato.

providerCode

Alfanumérico

Código de autorizador. Ejemplo: Banamex

displayMessage

Alfanumérico

Mensaje adicional enviado por el autorizador y que debe ser visualizado.

...

Bloco de código
themeMidnight
titlejson
linenumberstrue
{  
   "amount":"110100.9900",
   "providerCode":"Visa",
   "ticket":"274",
   "authorizationCode":"123456",
   "store":"1",
   "transactionDate":"20192020-0801-2930 1615:0231:13.74357.417",
   "authorizationStatus":"Pending",
   "responseCode":"00000",
   "node":"00000000050000000001",
   "displayMessage":"esta es una prueba de impresion",
   "currency":"$",
   "company":1"C1",
   "id":1350114,
   "responseMessage":"APROBADA",
   "vtolTrxId":"2908191602160000027730012015321300000110",
   "status":"Commit"
}

...


2.

...

1.1.3 Cierre de Transacción

Servicio: /closeTransaction

...

En la invocación POST se envían los siguientes parámetros de la operación:

SI

Campo

Tipo

Obligatorio

Descripción

transactionIdNuméricoSIIdentificador de la transacción de pago generado por el ecommerce.
ecommerceObjectSIDatos del comercio electrónico

companyNuméricoAlfanuméricoSICódigo de la compañía que realiza el cierre de la transacción.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza el cierre de la transacción.

transactionId

Numérico

Identificador de la transacción de pago generado por el ecommerce.

action

Alfanumérico

SI

commit: Confirmada

rollback: Cancelada

...

Bloco de código
themeMidnight
titlejson
linenumberstrue
{
	   "companytransactionId": "11580408171332",
	   "storeecommerce":"1",
	"transactionType":"sale",
	"transactionId":"1567105313489",
	 {
      "company": "C1",
      "store": "1"
   },
   "action": "commit"
}


Respuesta:

La respuesta sólo retorna un código HTTP 200.

Informações
titleImportante

Luego de recibir el código HTTP 200, el eCommerce deberá consultar el estado de la transacción, para confirmar que el Cierre de Transacción se realizó correctamente. Para eso deberá invocar el servicio /checkTransactionStatus con un método GET.

...

2.

...

1.2 Transacción en 2 fases (Autorización y Captura)

VTOL Payment Bridge ofrece la posibilidad de realizar transacciones en dos pasos, primero se realiza una autorización, y luego se genera la captura. Son operaciones llamadas de dos fases.

La autorización es una reserva de fondos en la tarjeta del comprador. Esto significa que al realizar la misma, todavía no se generó un cobro al cliente en su tarjeta. Nunca aparece en el resumen de cuenta del tarjeta habiente. Solo cuando se realice una captura el cliente verá el pago.

...

2.

...

1.2.1 Autorización de Pago

Servicio: /authorizeForm

El pedido de autorización es un servicio que valida la información de la tarjeta que se envía, para verificar si se puede continuar con el proceso de pago y reservar los fondos del tarjeta habiente.

Para realizar una autorización, se debe invocar un método POST a la URL de VPB, enviando el atributo transactionType=authorization.Los campos se envían en formato json "Nombre del campo":"valor"

Invocación:

En la invocación POST se envían los siguientes parámetros con los datos de la autorización:

Parámetro

Tipo

Obligatorio

Descripción

ecommerceObjectSIDatos del comercio electrónico

companyNuméricoSICódigo de la compañía que realiza la solicitud de pago.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza la solicitud de pago.
transactionTypeAlfanuméricoSITipo de transacción. Enviar authorization
transactionIdNuméricoSI

Identificador de la transacción de pago. 16 dígitos de longitud. Debe ser generado por el e-commerce de manera tal que identifique unívocamente a una operación de pago, respetando el siguiente formato: yyyyMMddHHmmssxx, donde:

yyyyMMddHHmmss: Fecha en que se realiza la operación con 4 dígitos para el año, 2 dígitos para el mes, 2 dígitos para el día, dos dígitos para la hora, dos dígitos para los minutos y 2 dígitos para los segundos.

xx: 2 dígitos para el trace de transacciones. Es un valor incremental que inicia en 01 y su valor máximo es 99.

autoCommitBooleanNO

Identifica si las transacciones serán confirmadas por VPB sin esperar un "tercer mensaje". Valores posibles:

True: Las transacciones que retornen aprobadas desde VTOL, serán confirmadas automáticamente.

False: Las transacciones que retornen aprobadas desde VTOL, deberán ser confirmadas con un tercer mensaje por parte del eCommerce.

Si no se envía este campo, por defecto se toma el valor False.

paymentDataObject


planAlfanuméricoSIPlan. Enviar valor 0.

paymentsNuméricoSICantidad de cuotas.

paymentConditionAlfanuméricoNOCondición de pago, asociada con el campo payments. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción.
additionalCardHolderBooleanNO

Campo que podrá enviar el eCommerce para que VPB solicite datos adicionales del tarjeta habiente en el formulario de pago, para ser validados por antifraude. Estos datos serán enviados en el objeto cardHolder. Valores posibles:

True: VPB solicitará los datos adicionales del tarjeta habiente en el formulario de pago.

False: VPB no solicitará datos adicionales del tarjeta habiente en el formulario. Dichos datos deberán ser enviados por el eCommerce.

Si no se envía este campo, los datos adicionales del cliente no serán solicitados por ningún sistema.

cardHolderObjectNODatos del titular de la tarjeta.

prefixCardNumberNuméricoNO6 primeros dígitos de la tarjeta.

identificationTypeAlfanuméricoCondicional

Tipo de identificación. Valores posibles:

0: CUIT
1: CUIL
2: Número único

Obligatorio si additionalCardHolder=False


identificationNumberNuméricoCondicional

Número de identificación. Máximo 8 dígitos.

Obligatorio si additionalCardHolder=False


birthdate

DateCondicional

Fecha de nacimiento del tarjeta habiente. Formato YYYYMMDDFormato DDMMYYYY.

Obligatorio si additionalCardHolder=False


phoneNuméricoNOTeléfono del tarjeta habiente. Máximo 11 dígitos.

deliveryAddress

ObjectNODatos de dirección de entrega del resumen de la tarjeta del pagador.



streetName

AlfanuméricoCondicional

Calle.

Obligatorio si additionalCardHolder=False



streetNumber

NuméricoCondicional

Número de puerta.

Obligatorio si additionalCardHolder=False



complementAlfanuméricoNOPiso / departamento.



zipCode

NuméricoNOCódigo postal. Máximo 4 dígitos.
customerData
ObjectNODatos del usuario registrado en el e-commerce

customerNameAlfanuméricoNONombre del cliente del e-commerce

customerLastNameAlfanuméricoNOApellido del cliente del e-commerce

customerIdentificationTypeAlfanuméricoNOTipo de documento del cliente del e-commerce

customerIdentificationNumberAlfanuméricoNONúmero de documento del cliente del e-commerce

customerIdAlfanuméricoNONombre o id del usuario del e-commerce.

customerIPAlfanuméricoSIDirección IP del usuario del e-commerce.
cardValidationObjectNODatos que utilizará VPB para validar la tarjeta ingresada por el usuario web en el formulario.

brandAlfanuméricoNOMarca de la tarjeta. Máximo 10 caracteres.

providerAlfanuméricoNOCódigo del Provider de tarjeta. Ejemplo VI (Visa). Longitud máxima 20.

bankAlfanuméricoNOBanco emisor de la tarjeta. Longitud máxima 20.
amountNuméricoSIImporte total a pagar.

currency

Alfanumérico

SI

Tipo de Moneda:

  • $ = Pesos
  • U$S = Dólares
interestAmountAlfanuméricoNOEste campo es por si se necesita enviar el monto de los intereses en el mensaje a Autorizar. Normalmente el monto ya contiene los intereses en el caso de pagar en cuotas. Pero existen casos de tarjetas especiales donde el monto hay que enviarlo libre de intereses y en otro campo los intereses.
urlObjectSIDatos de las URLs de callback.


callbackUrlError

Alfanumérico

SI

URL de respuesta a la cual VPB hace la redirección cuando el requerimiento genera un error de validación o se produce algún problema interno. En la invocación se envía el transaccionID correspondiente y un mensaje que detalla el error ocurrido.


callbackUrlSuccessful

Alfanumérico

SI

URL de respuesta a la cual VPB hace la redirección cuando el requerimiento finaliza correctamente. En la invocación se envía el transacciónID correspondiente.
Importante: que haya sido enviado a VTOL Server no significa que la operación se encuentre Aprobada.


callbackUrlCancelAlfanuméricoSIURL de respuesta que será invocado cuando el pago de la compra sea cancelado por el usuario desde VPB.

checkTransactionStatusAlfanuméricoSI

URL definida por el e-commerce donde VPB podrá realizar una invocación GET, y poder obtener qué acción realizar sobre una transacción, confirmarla o cancelarla. Ver Servicios brindados por el ecommerce

formDataObjectNODatos del comercio que se mostrarán en el formulario de ingreso de datos de la tarjeta


merchantName

AlfanuméricoNO

Nombre que se visualizará en el formulario para el ingreso de datos de la tarjeta.

Si no se envía este campo, se mostrará un nombre por defecto.


merchantImageURL

AlfanuméricoNO

URL donde VPB podrá tomar la imagen que se visualizará en el formulario para el ingreso de datos de la tarjeta.

Si no se envía este campo, se mostrará una imagen por defecto.


merchantImageMobileURLAlfanuméricoNO

URL donde VPB podrá tomar la imagen que se visualizará en el formulario para el ingreso de datos de la tarjeta en dispositivos móviles y tablets.

Si no se envía este campo, se mostrará una imagen por defecto.

orderDescriptionAlfanuméricoNOEste campo se utiliza para enviar desde el eCommerce una leyenda que se mostrará en el formulario de VPB. En caso de que no se envíe este campo, se mostrará una leyenda por defecto.
posTicketAlfanuméricoNOInformación del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket
ecommerceCustomFieldAlfanuméricoNOMáximo 255 caracteres. Campo generado por el eCommerce, lo puede enviar a VPB para que este lo guarde y pueda ser usado para trazabilidad del eCommerce.formTimeoutAlfanuméricoNOTiempo de espera para cargar los datos de la tarjeta en el formulario de VPB.

* Campos Condicionales:

Si additionalPayerData=False, entonces el eCommerce debe enviar obligatoriamente los siguientes campos:

...

Retorna los siguientes campos:

Parámetro

Tipo

Descripción

transactionTypeAlfanuméricoTipo de transacción.
ecommerce
ObjectDatos del comercio electrónico

company

Numérico

Código de la compañía que realiza la compra.

storeNuméricoCódigo de la tienda asociada a la compañía que realiza la compra.
transactionIdNuméricoIdentificador de la transacción de pago generado por el eCommerceel eCommerce.
responseCodeNuméricoCódigo de respuesta de la operación realizada.transactionType
statusAlfanuméricoTipo de transacciónEstado en el cual quedó registrada de la transacción realizada.

Los campos se envían en formato json "Nombre del campo":"valor"

...

Bloco de código
themeMidnight
titlejson
linenumberstrue
{
    "transactionIdtransactionType": "1567105313489Authorization",
   "ecommerce": {
      "company": "55C1",
      "store": "13"
   },
   "transactionId":"1 "1581605477722",
   "responseCode": "00",
	   "transactionTypestatus": "authorizationPending"
}


Informações
titleTener en cuenta

La reserva tendrá una validez de 15 días. Si no se realiza la captura hasta ese momento, será cancelada automáticamente.

La reserva también puede resultar rechazada, al igual que ocurre con una operación convencional, dependiendo si pasa las validaciones de la tarjeta.

Los fondos reservados no podrán ser utilizados por el comprador hasta que no sean capturados, por lo cual se recomienda realizar la captura en el menor tiempo posible.

...


2.

...

1.2.2 Consultar Estado de Transacción

Servicio: /checkTransactionStatus

...

La invocación a este servicio es el mismo que en las operaciones de una fase: Consultar Estado de Transacción

...

2.

...

1.2.3 Captura de Pago

Servicio: /closeTransaction

...

Para hacer la captura por el monto total, se realizará una invocación POST a la URL de VPB, sin informar el monto, y enviando el atributo action=commit. Los campos se envían en formato json "Nombre del campo":"valor" 

Invocación:

En la invocación POST se envían los siguientes parámetros con los datos de la captura:

Parámetro

Tipo de dato

Obligatorio

Descripción

transactionId

Numérico

SI

Identificador de la transacción de pago generado por el eCommerce.

ecommerceObjectSIDatos del comercio electrónico

companyNuméricoSICódigo de la compañía que realiza la solicitud de pago.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionId

Numérico

SI

Identificador de la transacción de pago generado por el eCommerce.

action

Alfanumérico

SI

Valores posibles:

commit: Confirmada
rollback: Cancelada

...

Bloco de código
themeMidnight
titlejson
linenumberstrue
{
    "companytransactionId": "11581605477722",
   "ecommerce": {
      "storecompany": "1C1",
      "transactionIdstore": "156710531348913"
   },
	   "action": "commit"
}


Respuesta:

La respuesta sólo retorna un código HTTP 200.

...

Para hacer la captura por un monto distinto (mayor o menor) al reservado, se realizará una invocación POST a la URL de VPB, informando el monto con el importe definitivo, y enviando el atributo action=commit.Los campos se envían en formato json "Nombre del campo":"valor"el atributo action=commit.

Invocación:

En la invocación POST se envían los siguientes parámetros con los datos de la captura:

Parámetro

Tipo de dato

Obligatorio

Descripción

transactionId

Numérico

SI

Identificador de la transacción de pago generado por el eCommerce.

ecommerceObjectSIDatos del comercio electrónico

companyNuméricoSICódigo de la compañía que realiza la solicitud de pago.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza la solicitud
de pago.

transactionId

Numérico

SI

Identificador de la transacción
de pago
generado por el eCommerce
.
amountNuméricoSIImporte definitivo de la venta.

action

Alfanumérico

SI

Valores posibles:

commit: Confirmada
rollback: Cancelada


Ejemplo:

Bloco de código
themeMidnight
titlejson
linenumberstrue
{
    "companytransactionId": "11581605477722",
   "ecommerce": "store{
      "company": "1C1",
      "transactionIdstore": "156710531348913"
   },
	   "amount":500.22,
	   "action": "commit"
}


Respuesta:

La respuesta sólo retorna un código HTTP 200.

Informações
titleImportante

Luego de recibir el código HTTP 200, el eCommerce deberá consultar el estado de la transacción, para confirmar que la Captura se realizó correctamente. Para eso deberá invocar el servicio /checkTransactionStatus con un método GET.

...

.

2.1.2.4 Cancelar una Autorización de Pago

Servicio: /closeTransaction

Para realizar la cancelación de una autorización, se debe invocar un método POST a la URL de VPB, enviando el atributo action=rollback.

Los campos se envían en formato json "Nombre del campo":"valor"

Invocación:

En la invocación POST se envían los siguientes parámetros con los datos de la cancelación:

Parámetro

Tipo de dato

Obligatorio

Descripción

transactionId

Numérico

SI

Identificador de la transacción de pago generado por el eCommerce.

ecommerce
ObjectSIDatos del comercio electrónico

companyNuméricoSICódigo de la compañía que realiza la solicitud de pago.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionId

Numérico

SI

Identificador de la transacción de pago generado por el eCommerce.

action

Alfanumérico

SI

Enviarrollback: Cancelar autorización

Los campos se envían en formato json "Nombre del campo":"valor"

Ejemplo:

Bloco de código
themeMidnight
titlejson
linenumberstrue
linenumberstrue
{
   "transactionId": "1581605477722",
   "ecommerce": {
      "company": "1C1",
      "store": "113",
    "transactionId":"1567105313489"},
	   "action": "rollback"
}


Respuesta:

La respuesta sólo retorna un código HTTP 200.

Informações
titleImportante

Luego de recibir el código HTTP 200, el eCommerce deberá consultar el estado de la transacción, para confirmar que la Cancelación de la Autorización se realizó correctamente. Para eso deberá invocar el servicio /checkTransactionStatus con un método GET.

...

2.

...

1.

...

3 Devoluciones

VTOL Payment Bridge ofrece la posibilidad de realizar devoluciones de un pago. La operación original debe ser menor a 30 días.

...

A través de este método se realizan devoluciones totales o parciales. Para ello la transacción debe estar en estado Acreditada.

...


2.

...

1.

...

3.1 Realizar devolución total del pago

Servicio: /refunds

Se debe invocar un método POST a la URL de VPB, sin informar el monto, y enviando el atributo transactionType=refund.

...

ParámetroTipo de datoObligatorioDescripción
ecommerceObjectSIDatos del comercio electrónico

companyNuméricoSICódigo de la compañía que realiza la solicitud de pago.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza la solicitud de pago.
transactionTypeAlfanuméricoSITipo de transacción. Enviar refund
originalTrxIdNuméricoSIIdentificador de la transacción de compra original. Es el transactionId que se envió en la operación de compra.

transactionId

Numérico

SI

Identificador de la transacción de devolución. 16 dígitos de longitud. Debe ser generado por el e-commerce de manera tal que identifique unívocamente a una operación, respetando el siguiente formato: yyyyMMddHHmmssxx, donde:

yyyyMMddHHmmss: Fecha en que se realiza la operación con 4 dígitos para el año, 2 dígitos para el mes, 2 dígitos para el día, dos dígitos para la hora, dos dígitos para los minutos y 2 dígitos para los segundos.

xx: 2 dígitos para el trace de transacciones. Es un valor incremental que inicia en 01 y su valor máximo es 99.

amount

Numérico

NO

Importe de la devolución. La separación de decimales se realiza con un punto. Ejemplo: (200.00). Puede ser menor o igual al monto original de la compra.

Si no se envía, entonces la devolución será por el total de la compra.

currency

Alfanumérico

NO

Tipo de Moneda:

$ = Pesos

U$S = Dólares

urlObjectSIDatos de las URLs de callback.

callbackUrlErrorAlfanuméricoSIURL de respuesta a la cual VPB hace la redirección cuando el requerimiento genera un error de validación o se produce algún problema interno. En la invocación se envía el transaccionID correspondiente y un mensaje que detalla el error ocurrido.

callbackUrlSuccessfulAlfanuméricoSIURL de respuesta a la cual VPB hace la redirección cuando el requerimiento finaliza correctamente. En la invocación se envía el transacciónID correspondiente.

getTransactionStatusAlfanuméricoSIURL definida por el e-commerce donde VPB podrá realizar una invocación GET, y poder obtener qué acción realizar sobre una transacción, confirmarla o cancelarla. Ver Servicios brindados por el ecommerce

...


2.

...

1.

...

3.2 Realizar devolución parcial del pago

Servicio: /refunds

Se debe invocar un método POST a la URL de VPB, enviando el atributo transactionType=refund.

...

Se responden los siguientes campos:

Parámetro

Tipo

Descripción

transactionIdNuméricoIdentificador de la transacción de devolución generado por el eCommerce.
transactionTypeAlfanuméricoTipo de transacción: Refund
ecommerceObjectDatos del comercio electrónico

company

Numérico

Código de la compañía que realiza la compra.

storeNuméricoCódigo de la tienda asociada a la compañía que realiza la compra.
transactionIdNuméricoIdentificador de la transacción de devolución generado por el eCommerce.
transactionTypeAlfanuméricoTipo de transacción: refund
la compra.


Informações
titleImportante

Cuando el eCommerce recibe la notificación, tiene que obtener la información completa del recurso notificado, accediendo al endpoint correspondiente de la API: /checkTransactionStatus

...

obtener la información completa del recurso notificado, accediendo al endpoint correspondiente de la API: /checkTransactionStatus


Ejemplo:

Bloco de código
themeMidnight
titlejson
linenumberstrue
{
   "transactionType": "Refund",
   "ecommerce": {
      "company": "C1",
      "store": "13"
   },
   "transactionId": "1581607736373"
}


2.1.3.3 Cierre de transacción

Servicio: /closeTransaction

...

En la invocación POST se envían los siguientes parámetros de la operación:

Campo

Tipo

Obligatorio

Descripción

transactionId

Numérico

SI

Identificador de la transacción de pago generado por el ecommerce.

ecommerceObjectSIDatos del comercio electrónico.

companyNuméricoSICódigo de la compañía que realiza el cierre de la transacción.

storeNuméricoSICódigo de la tienda asociada a la compañía que realiza el cierre de la transacción.

transactionId

Numérico

SI

Identificador de la transacción de pago generado por el ecommerce.

action

Alfanumérico

SI

commit: Confirmada

rollback: Cancelada

...

Informações
titleImportante

Luego de recibir el código HTTP 200, el eCommerce deberá consultar el estado de la transacción, para confirmar que la operación de Devolución se realizó correctamente. Para eso deberá invocar el servicio /checkTransactionStatus con un método GET.



Âncora
_Toc381043096
_Toc381043096
Âncora
_Toc434487111
_Toc434487111

...

2.

...

2 Servicios brindados por el E-Commerce

El e-commerce debe brindar la posibilidad de realizar la consulta de estado de la transacción para que VPB pueda consultar si debe confirmar o cancelar la operación contra VTOL Server, en caso de producirse alguna desincronización de estados.


Âncora
_Toc381043097
_Toc381043097

...

2.

...

2.1 Consultar estado de transacción

VPB debe poder realizar una invocación GET a un servicio que disponibiliza el e-commerce. VPB debe conocer la URL del servicio para poder realizar la consulta. Dicha URL será informada por el e-commerce en el mensaje de Solicitud de Pago.

...

Bloco de código
themeMidnight
titlejson
linenumberstrue
200:{
	"company":"1",
	"store":"1",	
	"transactionId":"1567105313489",
	"status":"Commit"
}



Âncora
_Códigos_de_respuesta
_Códigos_de_respuesta
Âncora
_Toc434487112
_Toc434487112
2.3

...

Códigos de Respuesta

VPB responde a cada transacción que recibe para autorizar con un código de respuesta y una descripción del mismo, indicando cual fue el resultado de la operación. 

...

A continuación se detallan las respuestas posibles.

2.3

...

.1 Códigos recibidos de VTOL Server

Código

Descripción

'000'

Aprobada

'001'

Pedir autorización telefónica

'002'

Pedir autorización

'003'

Comercio inválido

'004'

Capturar tarjeta

'005'

Denegada

'007'

Retenga y llame

'011'

Aprobada

'012'

Transacción inválida

'013'

Monto inválido

'014'

Tarjeta inválida

'025'

No existe original

'030'

Error en formato

'038'

Excede ingreso de PIN

'043'

Retener tarjeta

'045'

No opera en cuotas

'046'

Tarjeta no vigente

'047'

PIN requerido

'048'

Excede máximo de cuotas

'049'

Error fecha de vencimiento

'050'

Entrega supera límite

'051'

Fondos insuficientes

'053'

Cuenta inexistente

'054'

Tarjeta vencida

'055'

PIN incorrecto

'056'

Tarjeta no habilitada

'057'

Transacción no permitida

'058'

Servicio inválido

'061'

Excede límite

'065'

Excede límite de tarjeta

'076'

Llamar al emisor

'077'

Error plan/cuotas

'085'

Aprobada

'086'

No envía fecha original

'089'

Terminal inválida

'091'

Emisor fuera de línea

'094'

Número de secuencia duplicado

'095'

Re-transmitiendo

'096'

Error en sistema

'098'

No aprobada

'099'

Error no clasificado

Modo de ingreso inválido

Proveedor inválido

Error CVC

Error creando mensaje

Tipo de mensaje inválido

No envía código de autorización

Error en fecha efectiva

Error en fecha vencimiento

Tarjeta no efectiva

No opera off-line

Devolución monto mayor

Original ya anulada

Original ya devuelta

Original reversada

Moneda inválida

No envía fecha

Campo 71 inválido

Campo 71 nulo

CVC inválido

Terjeta inválida

Track2 inválido

No envía moneda

No envía CVC

Timeout

Fecha original inválida

No envía ticket original

Ticket original inválido

No envía código de autorización de venta referida

Reintente

...