vtol payment bridge - integración 3.8.0

69
VTOL Payment Bridge - Integración 3.8.0.3 VTOL Payment Bridge Manual de Integración Cambios por revisiones Fecha Revisión Cambios – Motivo 06/01/2014 1.0 Creación del documento 08/08/2014 1.1 Requerimientos mínimos 08/09/2015 1.2 Agregado de aclaraciones 21/02/2019 1.3 Revisión y actualización de la documentación.

Upload: others

Post on 02-Apr-2022

14 views

Category:

Documents


0 download

TRANSCRIPT

VTOL Payment Bridge - Integración 3.8.0.3

VTOL Payment Bridge

Manual de Integración

Cambios por revisiones

Fecha Revisión Cambios – Motivo

06/01/2014 1.0 Creación del documento

08/08/2014 1.1 Requerimientos mínimos

08/09/2015 1.2 Agregado de aclaraciones

21/02/2019 1.3 Revisión y actualización de la documentación.

20/08/2019 1.4 Agregado de los campos Company y Store en la invocación de los servicios brindados por VPB.

16/09/2020 1.5 Agregado de operaciones PEI. Pago PEI, Consulta, y Devoluciones PEI.

06/10/2020 1.6 Se actualizan nombres de campos de la respuesta de la consulta.

Índice

1. Introducción1.1 Acerca de este documento1.2 ¿Qué es VTOL Payment Bridge?1.3 Ventajas1.4 Arquitectura1.5 Alcance

1.5.1 VTOL Payment Bridge1.5.2 E-Commerce

1.6 Alta disponibilidad1.7 Validaciones en el formulario VPB

17.1 Time Out de la compra2. Integración

2.1 Servicios brindados por VPBOperaciones con tarjeta de crédito-débito

2.1.1 Transacción en 1 fase (Venta)2.1.1.1 Autorización de Pago2.1.1.2 Autorización de Pago PEI2.1.1.3 Consultar Estado de Transacción

Respuesta de operación de créditoRespuesta de operación PEI

2.1.1.4 Cierre de Transacción2.1.2 Transacción en 2 fases (Autorización y Captura)

2.1.2.1 Autorización de Pago2.1.2.2 Consultar Estado de Transacción2.1.2.3 Captura de Pago

Capturar el monto total de una reservaCapturar un monto distinto al reservado

2.1.2.4 Cancelar una Autorización de Pago2.1.3 Devoluciones

2.1.3.1 Realizar devolución total del pago2.1.3.2 Realizar devolución parcial del pago2.1.3.3 Cierre de transacción2.1.3.4 Realizar devolución total de pago PEI2.1.3.5 Realizar devolución parcial de pago PEI

2.2 Servicios brindados por el E-Commerce2.2.1 Consultar estado de transacción

2.3 Códigos de Respuesta

2.3.1 Códigos recibidos de VTOL Server2.3.2 Códigos de respuesta por validación en VPB2.3.3 Códigos de respuesta de VTOL Server para PEI

3. Flujo transaccional3.1 Transacciones simples (de 1 fase)3.2 Transacciones en dos fases3.3 Devoluciones

1. Introducción

1.1 Acerca de este documento

Este documento describe los aspectos técnicos de integración, para aquellos comercios que deseen procesar cobros on-line, con sus sistemas de E-Commerce, a través de la API de VTOL Payment Bridge.

La implementación del servicio de VTOL Payment Bridge requiere conocimientos de desarrollo de software, para poder generar código que interactúe con la API de VPB para invocar servicios y procesar respuestas.

1.2 ¿Qué es VTOL Payment Bridge?

Es un componente Web que permite a un sitio de eCommerce capturar los datos de la tarjeta y del tarjeta habiente, para luego autorizar, a través de VTOL Server, los pagos de compras realizadas en Internet. De esta manera no es necesario que el comercio esté certificado bajo las normas PCI.

Cuando el cliente de la tienda online quiere pagar su compra con tarjeta, se hace una redirección segura hacia , quien solicita los datos para efectuar el pago.VTOL Payment Bridge

A continuación se muestra una imagen del formulario que solicita los datos de la tarjeta:

Formulario de pago de VTOL Payment Bridge

Además, el formulario de permitirá ingresar datos adicionales del titular de la tarjeta, como ser , . Estos datos podrán ser enviados por el VTOL Payment Bridge Fecha de nacimiento Dirección y TeléfonoeCommerce a VPB en el mensaje de autorización de pago, o bien que VPB se los solicite al usuario en el formulario de ingreso de datos. Se mostrará una imagen como la siguiente:

1. 2. 3. 4.

Formulario de pago de VPB con datos adicionales del tarjeta habiente

1.3 Ventajas

Algunas de las ventajas de usar VTOL Payment Bridge son:

Velocidad de integración con VTOL Server.Evitar implementar un formulario de ingreso de datos de tarjeta y sus correspondientes validaciones.Cumplir con las normas PCI ya que el e-commerce no tiene conocimiento de los datos sensibles de la tarjeta.Simplificar la conciliación con VTOL Server.

1.4 Arquitectura

Como se observa en la figura, VPB recibe la petición de autorización del browser del cliente, con los datos de venta del e-commerce. Entre esos datos viaja el identificador de transacción generado por el e-commerce ( ) que es un valor único. transactionIdVPB por su parte despliega una ventana segura para capturar los datos de la tarjeta. Una vez completados los datos, autoriza la transacción contra VTOL Server y responde a una dirección de callback, incluyendo el enviado en el requerimiento de autorización. transactionIdEl e-commerce es quien posteriormente debe realizar la consulta del estado de la transacción pasando como parámetro su identificador en una invocación GET a VPB. Por último y una vez que finalizó la operación con el cliente, el e-commerce realiza una invocación POST a VPB indicando la confirmación o cancelación de la transacción. VPB al recibir el requerimiento de confirmación o cancelación, envía un Commit o Rollback a VTOL Server.

1.5 Alcance

Todas las invocaciones realizadas se encuentran sobre protocolo seguro HTTPS.Importante:

1. 2. 3. 4.

1. 2. 3. 4.

1.5.1 VTOL Payment Bridge

Proveer un marco de intercambio de información seguro para evitar ataques y fraudes. Utilización de protocolo https.Autorizar mediante VTOL Server las transacciones de pago con tarjeta en Internet.Facilitar los datos de transacciones autorizadas.Brindar un mecanismo de conciliación entre el e-commerce y VTOL Server.

1.5.2 E-Commerce

Utilización de protocolo seguro https.Consultar a VPB el estado y datos de la transacción autorizada.Indicar a VPB si debe confirmar o cancelar la transacción.Brindar a VPB información sobre confirmación o cancelación de una transacción cuando este lo requiera, mediante una invocación GET.

1.6 Alta disponibilidad

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.

1.7 Validaciones en el formulario VPB

El formulario que despliega VTOL Payment Bridge para el ingreso de datos de la tarjeta realiza una serie de validaciones sobre los datos que ingresa el usuario. En caso de que se ingresen mal los datos de la tarjeta, se mostrarán mensajes informando los errores para que el usuario los pueda corregir. Existen dos tipos de errores que se pueden cometer sobre los campos de ingreso:

Omitir ingresar datos obligatorios.Ingresar datos de tarjeta inválidos.

Los errores del , no son validados por VPB, directamente se validan en el browser. primer tipo Por ejemplo, si no se ingresa el Titular de la tarjeta, se mostrará  mensaje: "El campo Nombre en el siguienteTarjeta es requerido".

Los errores del , sí son validados por VPB. Por ejemplo que se ingrese una tarjeta vencida, o un código de seguridad menor al largo requerido. Este tipo de error sólo permite que se intente hasta segundo tipotres veces ingresar los datos. En el cuarto intento, VPB hará una redirección a la URL de CallbackError, informando el error al eCommerce. 

17.1 Time Out de la compra

En VPB se puede limitar el tiempo con el que el tarjetahabiente cuenta para completar los datos sensibles de la tarjeta. En el formulario de ingreso de datos se muestra un timer en la esquina superior derecha, con el tiempo corriendo hacia atrás.

Esta funcionalidad suele usarse en comercios que necesitan liberar entradas o butacas si la transacción lleva más de un determinado tiempo y no recibió respuesta de finalización de la transacción.

Por default, la sesión caduca en 5 minutos. Para cambiar este parámetro, se debe modificar un archivo de configuración.

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

2.1 Servicios brindados por VPB

Las operaciones disponibles son:

Operaciones con tarjetas de crédito-débitoTransacción en 1 fase

Autorización de PagoAutorización de Pago PEI

Transacción en 2 fasesAutorización de pagoCaptura de pago (sólo para transacción en 2 pasos)Cancelar autorización de pago (sólo para transacción en 2 pasos)

Consultar estado de transacciónDevoluciones

Devolución total de Pago y Pago PEIDevolución parcial de Pago y Pago PEI

Operaciones con tarjeta de crédito-débito

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  . Directamente se realiza la transacción financiera. En esta modalidad VPB autoriza, verifica y Venta (cargo)captura el importe de la venta, todo de una vez.

En este esquema también es posible realizar operaciones PEI (Pago Electrónico Inmediato). Dichos pagos se realizarán con tarjetas de débito, y las mismas serán autorizadas a través de Red LINK.

Importante

El formulario de pago para capturar los datos de la tarjeta se desplegará únicamente cuando se invoque a los servicios de (ya sea en una fase o en dos fases).Autorización de Pago

Los demás servicios, como ser Consulta de estado, Cancelación, Devolución, no desplegarán ningún formulario. La API de VPB retornará una respuesta con un status code según cada invocación, las cuales están descritas en los siguientes apartados.

2.1.1.1 Autorización de Pago

Servicio: /web-vtol/service/authorizeForm

Para realizar una autorización de Pago en una fase, se debe invocar un método   al endpoint de VPB, enviando el atributo  .POST transactionType=sale

Invocación:

Al invocar a este servicio, VPB desplegará una ventana segura con el formulario de pago para capturar los datos de la tarjeta.

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

Parámetro Tipo Obligatorio Descripción

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionType Alfanumérico SI Tipo de transacción. Enviar sale

transactionId Numérico SI Identificador único 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: yyyyMMddHHm

, donde:mssxx

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.

autoCommit Boolean NO 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

paymentData Object SI Opciones de pago.

plan Alfanumérico SI Plan. Enviar valor 0.

payments Numérico SI Cantidad de cuotas.

paymentCondition Alfanumérico NO Condició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.

additionalCardHolder Boolean NO 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 . Valores cardHolderposibles:

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

False: VPB solicitará datos noadicionales 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.

cardHolder Object NO Datos del titular de la tarjeta.

identificationType Alfanumérico Condicional Tipo de identificación. Valores posibles:

0: CUIT1: CUIL2: Número único

Obligatorio si additionalCardHolder=False

identificationNumber Numérico Condicional Número de identificación. Máximo 8 dígitos.

Obligatorio si additionalCardHolder=False

birthdate Date Condicional Fecha de nacimiento del tarjeta habiente. Formato DDMMYYYY.

Obligatorio si additionalCardHolder=False

phone Numérico NO Teléfono del tarjeta habiente. Máximo 11 dígitos.

deliveryAddress Object NO Datos de dirección de entrega del resumen de la tarjeta del pagador.

streetName Alfanumérico Condicional Calle.

Obligatorio si additionalCardHolder=False

streetNumber Numérico Condicional Número de puerta.

Obligatorio si additionalCardHolder=False

complement Alfanumérico NO Piso / departamento.

zipCode Numérico NO Código postal. Máximo 4 dígitos.

customerData Object NO Datos del usuario registrado en el e-commerce

customerName Alfanumérico NO Nombre del cliente del e-commerce. Longitud máxima 30.

customerLastName Alfanumérico NO Apellido del cliente del e-commerce. Longitud máxima 30.

customerIdentificationType Alfanumérico NO Tipo de documento del cliente del e-commerce

customerIdentificationNumber Alfanumérico NO Número de documento del cliente del e-commerce

customerId Alfanumérico NO Nombre o id del usuario del e-commerce.

customerIP Alfanumérico SI Dirección IP del usuario del e-commerce.

cardValidation Object SI Datos que utilizará VPB para validar la tarjeta ingresada por el usuario en el formulario.

brand Alfanumérico NO Marca de la tarjeta. Máximo 10 caracteres. Corresponde a la marca de tarjeta cargada en VTOL.

provider Alfanumérico SI Código del Proveedor de tarjeta cargado en VTOL. Ejemplo VI (Visa). Longitud máxima 20.

bank Alfanumérico NO Banco emisor de la tarjeta. Longitud máxima 20. Corresponde a la descripción del banco cargado en VTOL.

amount Numérico SI Importe total a pagar.

currency Alfanumérico SI Tipo de Moneda:

$ = PesosU$S = Dólares

interestAmount Alfanumérico NO Este 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.

url Object SI Datos 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 transaccionIDcorrespondiente 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ónIDcorrespondiente. Importante: que haya sido enviado a VTOL Server no significa que la operación se encuentre Aprobada.

callbackUrlCancel Alfanumérico SI URL de respuesta que será invocado cuando el pago de la compra sea cancelado por el usuario desde VPB.

checkTransactionStatus Alfanumérico SI 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

formData Object NO Datos del comercio que se mostrarán en el formulario de ingreso de datos de la tarjeta

merchantName Alfanumérico NO 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érico NO 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.

merchantImageMobileURL Alfanumérico NO 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.

orderDescription Alfanumérico NO Este 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.

posTicket Alfanumérico NO Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructuradel campo posTicket

ecommerceCustomField Alfanumérico NO Má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.

validationData Object NO Colección para informar los campos que VPB validará si coinciden con los datos ingresados por el usuario en el formulario.

identificationNumberMatch Boolean NO Indica si el campo identificationNu de la colección  , mber cardHolder

debe validar coincidencia entre el dato enviado por el eCommerce y valor ingresado por el cliente en el formulario de VPB.

True: VPB verificará si coinciden los datos. Ver validaciones del campo.

False: VPB no verificará si coinciden los datos.

Si el eCommerce no envía este campo, entonces VPB no realizará ninguna verificación.

* Campos Condicionales:

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

identificationTypeidentificationNumberbirthdatestreetNamestreetNumber

Si additionalPayerData= , entonces VPB deberá solicitar obligatoriamente los siguientes campos en el formulario:True

identificationTypeidentificationNumberbirthdatestreetNamestreetNumber

Ejemplo:

json

{ "ecommerce": { "company": "C1", "store": "1" },

"transactionType": "sale", "autoCommit": false, "additionalCardHolder": false, "transactionId": 1569441914224, "orderDescription": "El total de su compra es de $110.99. Ha elegido pagar en Pesos Argentinos (ARS)", "amount": "110.90", "currency": "$", "interestAmount": "0", "userId": "", "posTicket": "", "ecommerceCustomField": "Ref001", "cardHolder": { "identificationType": "1", "identificationNumber": "32058821", "birthdate": "22/07/1986", "phone": "3425340300", "deliveryAddress": { "streetName": "25 de mayo", "streetNumber": "3587", "complement": "2B", "zipCode": "3000" } }, "url": { "callbackUrlError": "https://localhost:8843/emulatorEcommerce/callbackErrorURL.jsp", "callbackUrlSuccessful": "https://localhost:8843/emulatorEcommerce/callbackOKURL.jsp", "callbackUrlCancel": "https://localhost:8843/emulatorEcommerce/callBackCancel.jsp", "checkTransactionStatus": "http://localhost:8280/emulatorEcommerce/service/checkStatusReturnRandom.html" }, "formData": { "merchantName": "My Company", "merchantImageURL": "https://ip/image.png" }, "paymentData": { "payments": "1", "plan": "0" }, "cardValidation": {

"brand": "VISA", "provider": "VI", "bank": "BANCO GALICIA" }, "customerData": { "customerId": "100", "customerIP": "10.90.100.101", "customerName": "Juan Carlos", "customerLastName": "Rodriguez", "customerIdentificationType": "1", "customerIdentificationNumber": "32123456" }}

Respuesta:

La respuesta se realiza en la dirección de   especificada por el eCommerce.callback

Se responden los siguientes campos:

Parámetro Tipo Descripción

transactionType Alfanumérico Tipo de transacción realizada.

ecommerce Object Datos del comercio electrónico

company Alfanumérico Código de la compañía que realiza la compra.

store Numérico Código de la tienda asociada a la compañía que realiza la compra.

transactionId Numérico Identificador único de la transacción de pago generado por el eCommerce.

responseCode Numérico Código de respuesta de la operación realizada.

status Alfanumérico Estado en el cual quedó registrada de la transacción realizada.

Importante

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

Ejemplo de respuesta:

json

{ "transactionType": "Sale", "ecommerce": { "company": "C1", "store": "1" }, "transactionId": "1580408171332", "responseCode": "00", "status": "Pending"}

2.1.1.2 Autorización de Pago PEI

VTOL Payment Bridge ofrece la posibilidad de realizar Pagos PEI (Pago Electrónico Inmediato), con tarjeta de débito. Estas operaciones se transfieren desde la cuenta del cliente a la cuenta del Comercio y se acreditan de manera instantánea. Dichos pagos serán autorizados por Red LINK.

Servicio: /authorizeForm

Para realizar una solicitud de Pago PEI, se debe invocar un método   al endpoint de VPB, enviando el atributo  .POST transactionType=SalePEI

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

Tener en cuenta

Los pagos PEI tienen un tope límite diario para el consumidor final. Para compra de bienes, se podrán realizar por un importe acumulado diario que no exceda el equivalente a 5 veces el Salario Mínimo Vital y Móvil.

Esta validación es realizada por Red LINK.

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

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionType Alfanumérico SI Tipo de transacción. Enviar: SalePEI

transactionId Numérico SI Identificador único de la transacción de pago. 16 dígitos de longitud. Debe ser generado por el eCommerce para identificar unívocamente una operación de pago, respetando el siguiente formato:  , yyyyMMddHHmmssxxdonde:

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.

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

Valores posibles:

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

False: VPB   solicitará datos noadicionales 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.

cardHolder Object NO Datos del titular de la tarjeta.

identificationType Alfanumérico NO Tipo de identificación. Valores posibles:

0: CUIT1: CUIL2: Número único

identificationNumber Numérico NO Número de identificación. Máximo 8 dígitos.

birthdate Date Condicional Fecha de nacimiento del tarjeta habiente. Formato DDMMYYYY.

Obligatorio si additionalCardHolder=False

phone Numérico NO Teléfono del tarjeta habiente. Máximo 11 dígitos.

deliveryAddress Object NO Datos de dirección de entrega del resumen de la tarjeta del pagador.

streetName Alfanumérico Condicional Calle.

Obligatorio si additionalCardHolder=False

streetNumber Numérico Condicional Número de puerta.

Obligatorio si additionalCardHolder=False

complement Alfanumérico NO Piso / departamento.

zipCode Numérico NO Código postal. Máximo 4 dígitos.

customerData Object NO Datos del usuario registrado en el e-commerce

customerName Alfanumérico NO Nombre del cliente del e-commerce. Longitud máxima 30.

customerLastName Alfanumérico NO Apellido del cliente del e-commerce. Longitud máxima 30.

customerIdentificationType Alfanumérico NO Tipo de documento del cliente del e-commerce

customerIdentificationNumber Alfanumérico NO Número de documento del cliente del e-commerce

customerId Alfanumérico NO Nombre o id del usuario del e-commerce.

customerIP Alfanumérico SI Dirección IP del usuario del e-commerce.

cardValidation Object SI Datos que utilizará VPB para validar la tarjeta ingresada por el usuario en el formulario.

brand Alfanumérico NO Marca de la tarjeta. Máximo 10 caracteres. Corresponde a la marca de tarjeta cargada en VTOL.

provider Alfanumérico SI Código del Proveedor de tarjeta cargado en VTOL. Ejemplo VI (Visa). Longitud máxima 20.

bank Alfanumérico NO Banco emisor de la tarjeta. Longitud máxima 20. Corresponde a la descripción del banco cargado en VTOL.

amount Numérico SI Importe total a pagar.

currency Alfanumérico SI Tipo de Moneda:

$ = Pesos

url Object SI Datos 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   correspotransaccionIDndiente 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   corresponditransacciónIDente.Importante: que haya sido enviado a VTOL Server no significa que la operación se encuentre Aprobada.

callbackUrlCancel Alfanumérico SI URL de respuesta que será invocado cuando el pago de la compra sea cancelado por el usuario desde VPB.

formData Object NO Datos del comercio que se mostrarán en el formulario de ingreso de datos de la tarjeta

merchantName Alfanumérico NO 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érico NO 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.

merchantImageMobileURL Alfanumérico NO 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.

orderDescription Alfanumérico NO Este 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.

posTicket Alfanumérico NO Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructuradel campo posTicket

ecommerceCustomField Alfanumérico NO Má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.

validationData Object NO Colección para informar los campos que VPB validará si coinciden con los datos ingresados por el usuario en el formulario.

identificationNumberMatch Boolean NO Indica si el campo identificationNu de la colección  , mber cardHolder

debe validar coincidencia entre el dato enviado por el eCommerce y valor ingresado por el cliente en el formulario de VPB.

True: VPB verificará si coinciden los datos. Ver validaciones del

.campo

False: VPB no verificará si coinciden los datos.

Si el eCommerce no envía este campo, entonces VPB no realizará ninguna verificación.

Validaciones del campo :identificationNumberMatch

Si el valor enviado por el eCommerce y el valor ingresado por el usuario en el formulario de VPB coinciden, entonces se enviará la transacción a VTOL Sever para ser autorizada.Si el valor enviado por el eCommerce y el valor ingresado por el usuario en el formulario de VPB NO coinciden, entonces se mostrará el siguiente mensaje en pantalla: "Algo salió mal. Ingrese nuevamente los datos". Se mostrará el formulario de VPB con todos los campos en blanco para que se vuelvan a cargar. Sólo se podrá ingresar 3 veces un valor no coincidente. Al cuarto intento que no coinciden los DNI, se retornará a la url de callbackError al eCommerce, informando el error "Excedió el número de reintentos". Estos intentos se sumarizan junto a los errores que valida VPB antes de enviar la transacción a VTOL Server. Ver Validaciones en el formulario VPB

Respuesta:

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

Se responden los siguientes campos:

Parámetro Tipo Descripción

transactionType Alfanumérico Tipo de transacción realizada.

ecommerce Object Datos del comercio electrónico

company Alfanumérico Código de la compañía que realiza la compra.

store Numérico Código de la tienda asociada a la compañía que realiza la compra.

transactionId Numérico Identificador único de la transacción de pago generado por el eCommerce.

responseCode Numérico Código de respuesta de la operación realizada.

status Alfanumérico Estado en el cual quedó registrada de la transacción realizada.

2.1.1.3 Consultar Estado de Transacción

Servicio: /web-vtol/service/checkTransactionStatus

VPB permite consultar el estado y los datos de una operación, a través de una invocación   a la URL de VPB.GET

Invocación:

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

Campo Tipo Obligatorio Descripción

transactionId Numérico SI Identificador de la transacción de único pago generado por el ecommerce.

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la consulta.

store Numérico SI Código de la tienda asociada a la compañía que realiza la consulta.

Ejemplo:

Importante

Cuando el eCommerce recibe el callback, tiene que obtener la información completa del recurso, accediendo al endpoint de consulta de la API: /checkTransactionStatus.

Ante una falla en la respuesta, si el eCommerce no recibe el callback de VPB, tendrá que consultar el estado de la transacción, accediendo al endpoint de consulta: /checkTransactionStatus.

Dado que las operaciones PEI una vez que fueron no permiten reversar, para poder llevar a cabo esta acción, el comercio deberá generar una operación de devolución (RefundPEI).aprobadas

json

{ "transactionId": "1580409092436", "ecommerce": { "company": "C1", "store": "1" }}

Respuesta de operación de crédito

La respuesta retorna los siguientes campos:

Campo Tipo Descripción

company Alfanumérico Código de la compañía que realizó la transacción.

store Numérico Código de la tienda asociada a la compañía que realizó la transacció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

authorizationStatus Alfanumérico Estado de la transacción. Puede ser:

Initialized: Inicializado.

Cancel: Cancelada por el usuario.

Authorize: Autorizando.

Rejected: Rechazada.

Pending: Pendiente de confirmación. (No disponible para operaciones PEI)

Commit: Confirmada.

Rollback: Cancelada. (No disponible para operaciones PEI)

node Numérico Código de nodo de VTOL Server utilizado para la autorización.

transactionId Numérico Identificador de la transacción en VPB.único

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 la tarjeta.

providerName Alfanumérico Descripción de la tarjeta.

displayMessage Alfanumérico Mensaje adicional enviado por el autorizador y que debe ser visualizado.

transactionDate Alfanumérico Fecha y hora de la transacción.

maskedCardNumber Alfanumérico Número de tarjeta del pago. Está enmascarado. Por ejemplo: 4507******0010

Los campos se responden en formato json "Nombre del campo":"valor"

Ejemplo de respuesta:

json

{ "company":"C1", "amount":"100.00", "providerCode":"VI" "providerName":"Visa", "ticket":"4", "authorizationCode":"123456", "store":"1", "transactionDate":"2020-01-30 15:31:57.417", "authorizationStatus":"Pending", "responseCode":"00", "node":"0000000001", "displayMessage":"prueba de impresion", "currency":"$", "transactionId":114, "responseMessage":"APROBADA", "vtolTrxId":"30012015321300000110", "maskedCardNumber":"4540******0010"}

Respuesta de operación PEI

La respuesta retorna los siguientes campos:

Campo Tipo Descripción

company Alfanumérico Código de la compañía que realizó la transacción.

store Numérico Código de la tienda asociada a la compañía que realizó la transacció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

authorizationStatus Alfanumérico Estado de la transacción. Puede ser:

Initialized: Inicializada.

Cancel: Cancelada por el usuario.

Authorize: Autorizando.

Rejected: Rechazada.

Commit: Confirmada

Undefined: Indefinida

node Numérico Código de nodo de VTOL Server utilizado para la autorización.

transactionId Numérico Identificador de la transacción en VPB.único

amount Numérico Importe total de la operación.

currency Alfanumérico Tipo de moneda.

providerCode Alfanumérico Código de la tarjeta.

providerName Alfanumérico Descripción de la tarjeta.

displayMessage Alfanumérico Mensaje adicional enviado por el autorizador y que debe ser visualizado.

transactionDate Alfanumérico Fecha y hora de la transacción.

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

idOperationPEI Numérico Identificador de la operación PEI de pago o de devolución, retornada por el autorizador.

bankingRefNum Numérico Número de referencia bancaria de la operación. Es retornada por Red Link en la operación de pago y devolución.

idCommercePEI Alfanumérico Número de comercio PEI de la transacción.

idBranchPEI Alfanumérico Código de sucursal PEI de la transacción.

maskedCardNumber Alfanumérico Número de tarjeta del pago. Está enmascarado, el largo total coincide con la tarjeta. Por ejemplo: 4507******0010

Importante

Ejemplo de respuesta:

Response body

{ "company":"C1", "store":"1", "amount":"100.00", "providerCode":"EL", "providerName":"Visa Electron", "transactionDate":"2020-01-30 15:31:57.417", "authorizationStatus":"Commit", "responseCode":"00", "responseMessage":"APROBADA" "node":"0000000001", "displayMessage":"prueba de impresion", "currency":"$", "transactionId":114, "trxReferenceNumber":"30012015321300000110", "idOperationPEI":"7589999999999999758", "bankingRefNum":"123456", "idCommercePEI":"SYN01", "idBranchPEI":"RSYN", "maskedCardNumber":"4507******0010"}

2.1.1.4 Cierre de Transacción

Servicio: /web-vtol/service/closeTransaction

VPB permite cerrar la transacción para confirmarla o cancelarla, a través de un método   a la URL de VPB.POST

En caso de recibir una respuesta con status Undefined, el eCommerce debe consultar al servicio /checkTransactionStatus de VPB hasta obtener un status distinto de Undefinde. Esto se debe a que pudo existir un problema de conexión con el Autorizador y la operación haya quedado aprobada, pero VPB no logró obtener la respuesta. Entonces VPB al recibir una consulta desde el eCommerce, consultará a su vez con el Autorizador hasta obtener un resultado, ya sea Aprobado o Rechazado.

Invocación:

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 único pago generado por el ecommerce.

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza el cierre de la transacción.

store Numérico SI Código de la tienda asociada a la compañía que realiza el cierre de la transacción.

action Alfanumérico SI commit: Confirmada

rollback: Cancelada

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

Ejemplo:

json

{ "transactionId": "1580408171332", "ecommerce": { "company": "C1", "store": "1" }, "action": "commit"}

Respuesta:

Importante

Para Operaciones PEI, el Cierre de Transacción no aplica. Es decir, no se debe invocar esta acción, ya que las operaciones PEI quedan confirmadas automáticamente. Si VPB responde que la operación PEI resultó Aprobada, dicha operación quedará en status commit.

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

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  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 autorización tarjeta habiente. Solo cuando se realice una  el cliente verá el pago.captura 

2.1.2.1 Autorización de Pago

Servicio: /web-vtol/service/authorizeForm

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

Para realizar una autorización en dos fases, se debe invocar un método   a la URL de VPB, enviando el atributo  .POST transactionType=authorization

Invocación:

Al invocar a este servicio, VPB desplegará una ventana segura con el formulario de pago para capturar los datos de la tarjeta.

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

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

Importante

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.

Importante

Para Operaciones PEI, las transacción en 2 fases no aplica. Las operaciones PEI sólo se podrán hacer en 1 fase.

transactionType Alfanumérico SI Tipo de transacción. Enviar authorization

transactionId Numérico SI Identificador de la único 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: yyyyMMddHHm

, donde:mssxx

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.

autoCommit Boolean NO 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

paymentData Object

plan Alfanumérico SI Plan. Enviar valor 0.

payments Numérico SI Cantidad de cuotas.

paymentCondition Alfanumérico NO Condició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.

additionalCardHolder Boolean NO 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 . Valores cardHolderposibles:

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

False: VPB solicitará datos noadicionales 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.

cardHolder Object NO Datos del titular de la tarjeta.

identificationType Alfanumérico Condicional Tipo de identificación. Valores posibles:

0: CUIT1: CUIL2: Número único

Obligatorio si additionalCardHolder=False

identificationNumber Numérico Condicional Número de identificación. Máximo 8 dígitos.

Obligatorio si additionalCardHolder=False

birthdate Date Condicional Fecha de nacimiento del tarjeta habiente. Formato  .DDMMYYYY

Obligatorio si additionalCardHolder=False

phone Numérico NO Teléfono del tarjeta habiente. Máximo 11 dígitos.

deliveryAddress Object NO Datos de dirección de entrega del resumen de la tarjeta del pagador.

streetName Alfanumérico Condicional Calle.

Obligatorio si additionalCardHolder=False

streetNumber Numérico Condicional Número de puerta.

Obligatorio si additionalCardHolder=False

complement Alfanumérico NO Piso / departamento.

zipCode Numérico NO Código postal. Máximo 4 dígitos.

customerData Object NO Datos del usuario registrado en el e-commerce

customerName Alfanumérico NO Nombre del cliente del e-commerce

customerLastName Alfanumérico NO Apellido del cliente del e-commerce

customerIdentificationType Alfanumérico NO Tipo de documento del cliente del e-commerce

customerIdentificationNumber Alfanumérico NO Número de documento del cliente del e-commerce

customerId Alfanumérico NO Nombre o id del usuario del e-commerce.

customerIP Alfanumérico SI Dirección IP del usuario del e-commerce.

cardValidation Object SI Datos que utilizará VPB para validar la tarjeta ingresada por el usuario en el formulario.

brand Alfanumérico NO Marca de la tarjeta. Máximo 10 caracteres. Corresponde a la marca de tarjeta cargada en VTOL.

provider Alfanumérico SI Código del Proveedor de tarjeta cargado en VTOL. Ejemplo VI (Visa). Longitud máxima 20.

bank Alfanumérico NO Banco emisor de la tarjeta. Longitud máxima 20. Corresponde a la descripción del banco cargado en VTOL.

amount Numérico SI Importe total a pagar.

currency Alfanumérico SI Tipo de Moneda:

$ = PesosU$S = Dólares

interestAmount Alfanumérico NO Este 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.

url Object SI Datos 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 transaccionIDcorrespondiente 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ónIDcorrespondiente. Importante: que haya sido enviado a VTOL Server no significa que la operación se encuentre Aprobada.

callbackUrlCancel Alfanumérico SI URL de respuesta que será invocado cuando el pago de la compra sea cancelado por el usuario desde VPB.

checkTransactionStatus Alfanumérico SI 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

formData Object NO Datos del comercio que se mostrarán en el formulario de ingreso de datos de la tarjeta

merchantName Alfanumérico NO 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érico NO 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.

merchantImageMobileURL Alfanumérico NO 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.

orderDescription Alfanumérico NO Este 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.

posTicket Alfanumérico NO Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructuradel campo posTicket

ecommerceCustomField Alfanumérico NO Má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.

validationData Object NO Colección para informar los campos que VPB validará si coinciden con los datos ingresados por el usuario en el formulario.

identificationNumberMatch Boolean NO Indica si el campo identificationNu de la colección  , mber cardHolder

debe validar coincidencia entre el dato enviado por el eCommerce y valor ingresado por el cliente en el formulario de VPB.

True: VPB verificará si coinciden los datos.

False: VPB no verificará si coinciden los datos.

Si el eCommerce no envía este campo, entonces VPB no realizará ninguna verificación.

* Campos Condicionales:

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

identificationTypeidentificationNumberbirthdatestreetNamestreetNumber

Si additionalPayerData= , entonces VPB deberá solicitar obligatoriamente los siguientes campos en el formulario:True

identificationTypeidentificationNumberbirthdatestreetNamestreetNumber

Ejemplo:

json

{ "ecommerce": { "company": "1", "store": "1" }, "transactionType": "authorization", "autoCommit": false, "additionalCardHolder": false, "transactionId": 1569441914255, "orderDescription": "El total de su compra es de $110.99. Ha elegido pagar en Pesos Argentinos (ARS)", "amount": "110.90", "currency": "$", "interestAmount": "0", "userId": "", "posTicket": "", "ecommerceCustomField": "", "cardHolder": { "identificationType": "1", "identificationNumber": "32058821", "birthdate": "22/07/1986", "phone": "3425340300", "deliveryAddress": { "streetName": "25 de mayo", "streetNumber": "3587", "complement": "2B", "zipCode": "3000" } }, "url": { "callbackUrlError": "https://localhost:8843/emulatorEcommerce/callbackErrorURL.jsp", "callbackUrlSuccessful": "https://localhost:8843/emulatorEcommerce/callbackOKURL.jsp", "callbackUrlCancel": "https://localhost:8843/emulatorEcommerce/callBackCancel.jsp", "checkTransactionStatus": "http://localhost:8280/emulatorEcommerce/service/checkStatusReturnRandom.html" },

"formData": { "merchantName": "My Company Name", "merchantImageURL": "https://IP/companyImage.png" }, "paymentData": { "payments": "1", "plan": "0" }, "cardValidation": { "brand": "VISA", "provider": "VI", "bank": "BANCO GALICIA" }, "customerData": { "customerId": "100", "customerIP": "10.90.100.101", "customerName": "Juan Carlos", "customerLastName": "Messi", "customerIdentificationType": "1", "customerIdentificationNumber": "32123456" }}

Respuesta:

La respuesta se realiza en la dirección de  , especificada en el POST inicial. De esta manera se devuelve el control al eCommerce.callback

Retorna los siguientes campos:

Parámetro Tipo Descripción

transactionType Alfanumérico Tipo de transacción.

ecommerce Object Datos del comercio electrónico

company Alfanumérico Código de la compañía que realiza la compra.

store Numérico Código de la tienda asociada a la compañía que realiza la compra.

transactionId Numérico Identificador de la transacción de pago único generado por el eCommerce.

responseCode Numérico Código de respuesta de la operación realizada.

status Alfanumérico Estado en el cual quedó registrada de la transacción realizada.

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

Ejemplo de respuesta:

json

{ "transactionType": "Authorization", "ecommerce": { "company": "C1", "store": "13" }, "transactionId": "1581605477722", "responseCode": "00", "status": "Pending"}

2.1.2.2 Consultar Estado de Transacción

Importante

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

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

Servicio: /web-vtol/service/checkTransactionStatus

VPB permite consultar el estado y los datos de una autorización, a través de una invocación   a la URL de VPB.GET

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: /web-vtol/service/closeTransaction

Esta operatoria se utiliza exclusivamente luego de haber realizado un Pedido de Autorización en 2 pasos.

Para poder confirmar definitivamente el pago al cliente, es necesario capturar los fondos que se reservaron. Es posible realizar la captura por el   o de  .monto total forma parcial

Capturar el monto total de una reserva

Para hacer la captura por el monto total, se realizará una invocación  a la URL de VPB,  , y enviando el atributo  . POST  sin informar el monto 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 único pago generado por el eCommerce.

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

action Alfanumérico SI Valores posibles:

commit: Confirmada: Canceladarollback

Ejemplo:

json

{ "transactionId": "1581605477722",

"ecommerce": { "company": "C1", "store": "13" }, "action": "commit"}

Respuesta:

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

Capturar un monto distinto al reservado

Para hacer la captura por un monto distinto (mayor o menor) al reservado, se realizará una invocación  a la URL de VPB, informando el   con el importe definitivo, y enviando el atributo POST  monto 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 único pago generado por el eCommerce.

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

amount Numérico SI Importe definitivo de la venta.

action Alfanumérico SI Valores posibles:

commit: Confirmada: Canceladarollback

Importante

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.

Ejemplo:

json

{ "transactionId": "1581605477722", "ecommerce": { "company": "C1", "store": "13" }, "amount":500.22, "action": "commit"}

Respuesta:

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

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   a la URL de VPB, enviando el atributo  .POST action=rollback

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 único pago generado por el eCommerce.

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la

Importante

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.

solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

action Alfanumérico SI Enviar : Cancelar autorización rollback

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

Ejemplo:

json

{ "transactionId": "1581605477722", "ecommerce": { "company": "C1", "store": "13" }, "action": "rollback"}

Respuesta:

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

2.1.3 Devoluciones

VTOL Payment Bridge ofrece la posibilidad de realizar devoluciones de un pago y también de pagos .PEI

La Devolución de una Transacción de  , se hace por el monto efectivamente capturado (en el 2do paso).dos pasos

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

Importante

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.1 Realizar devolución total del pago

Servicio: /web-vtol/service/refunds

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

Si no se informa el monto, la devolución se hará por el total de la orden.

Invocación:

Parámetro Tipo de dato Obligatorio Descripción

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionType Alfanumérico SI Tipo de transacción. Enviar refund

originalTrxId Numérico SI Identificador de la transacción de compra original. Es el   que se transactionIdenvió 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:  , donde:yyyyMMddHHmmssxx

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

url Object SI Datos 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   correstransaccionIDpondiente 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   correspondiente.transacciónID

getTransactionStatus Alfanumérico SI 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

2.1.3.2 Realizar devolución parcial del pago

Servicio: /web-vtol/service/refunds

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

Es posible realizar devoluciones parciales (incluso más de una por orden, siempre y cuando no se supere el monto de la misma).

Se debe indicar el monto a devolver, en el campo  .amount

Parámetro Tipo de dato Obligatorio Descripción

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionType Alfanumérico SI Tipo de transacción. Enviar refund

originalTrxId Numérico SI Identificador de la transacción de compra original. Es el   que se transactionIdenvió 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:  , donde:yyyyMMddHHmmssxx

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

currency Alfanumérico SI Tipo de Moneda:

$ = Pesos

U$S = Dólares

url Object SI Datos 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   correstransaccionIDpondiente 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   correspondiente.transacciónID

getTransactionStatus Alfanumérico SI 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

Respuesta:

La respuesta, tanto para devolución total como parcial, se realiza en la dirección de  , especificada por el eCommerce en la operación de devolución.callback

Se responden los siguientes campos:

Parámetro Tipo Descripción

transactionId Numérico Identificador de la transacción de devolución único generado por el eCommerce.

transactionType Alfanumérico Tipo de transacción: Refund

ecommerce Object Datos del comercio electrónico

company Alfanumérico Código de la compañía que realiza la compra.

store Numérico Código de la tienda asociada a la compañía que realiza la compra.

Ejemplo:

json

{ "transactionId": "1581607736373", "transactionType": "Refund", "ecommerce": { "company": "C1", "store": "14" }}

2.1.3.3 Cierre de transacción

Servicio: /web-vtol/service/closeTransaction

VPB permite cerrar la transacción de Devolución para o , a través de un método   a la URL de VPB. Esta operación se debe llevar a cabo para poder cerrar la transacción.confirmarla cancelarla POST

Invocación:

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

Importante

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

Importante

Para Operaciones PEI, el Cierre de Transacción no aplica. Es decir, no se debe invocar esta acción, ya que las operaciones PEI quedan confirmadas automáticamente. Si VPB responde que la operación PEI resultó Aprobada, dicha operación quedará en status commit.

Campo Tipo Obligatorio Descripción

transactionId Numérico SI Identificador de la transacción de único pago generado por el ecommerce.

ecommerce Object SI Datos del comercio electrónico.

company Alfanumérico SI Código de la compañía que realiza el cierre de la transacción.

store Numérico SI Código de la tienda asociada a la compañía que realiza el cierre de la transacción.

action Alfanumérico SI commit: Confirmada

rollback: Cancelada

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

Ejemplo:

json

{ "transactionId": "11445878985", "ecommerce": { "company": "1", "store": "1" }, "action": "commit"}

Respuesta:

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

Importante

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.

2.1.3.4 Realizar devolución total de pago PEI

Servicio: /refunds

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

Si no se informa el monto, la devolución se hará por el total de la orden.

Invocación:

Parámetro Tipo de dato Obligatorio Descripción

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionType Alfanumérico SI Tipo de transacción. Enviar refundPEI

originalTrxId Numérico SI Identificador de la transacción de compra original. Es el   que se transactionIdenvió 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:  , donde:yyyyMMddHHmmssxx

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

url Object SI Datos 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   correstransaccionIDpondiente 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   correspondiente.transacciónID

2.1.3.5 Realizar devolución parcial de pago PEI

Servicio: /refunds

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

Es posible realizar devoluciones parciales (incluso más de una por orden, siempre y cuando no se supere el monto de la misma).

Se debe indicar el monto a devolver, en el campo  .amount

Parámetro Tipo de dato Obligatorio Descripción

ecommerce Object SI Datos del comercio electrónico

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Código de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionType Alfanumérico SI Tipo de transacción. Enviar refundPEI

originalTrxId Numérico SI Identificador de la transacción de compra original. Es el   que se transactionIdenvió 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:  , donde:yyyyMMddHHmmssxx

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

currency Alfanumérico SI Tipo de Moneda:

$ = Pesos

url Object SI Datos 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   correstransaccionIDpondiente 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   correspondiente.transacciónID

Respuesta:

La respuesta, tanto para devolución total como parcial, se realiza en la dirección de  , especificada por el eCommerce en la operación de devolución.callback

Se responden los siguientes campos:

Parámetro Tipo Descripción

transactionId Numérico Identificador de la transacción de devolución único generado por el eCommerce.

transactionType Alfanumérico Tipo de transacción: Refund

ecommerce Object Datos del comercio electrónico

company Numérico Código de la compañía que realiza la compra.

store Numérico Código de la tienda asociada a la compañía que realiza la compra.

Ejemplo:

Importante

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

Response body

{ "transactionId": "1581607736373", "transactionType": "Refund", "ecommerce": { "company": "C1", "store": "12" }}

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.

2.2.1 Consultar estado de transacción

VPB debe poder realizar una invocación   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 GETen el mensaje de Solicitud de Pago.

Servicio: /getTransactionStatus

Invocación:

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

Parámetro Tipo Obligatorio Descripción

company Alfanumérico SI Código de la compañía que realiza la solicitud de pago.

store Numérico SI Có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 único generado por el ecommerce.

Ejemplo:

bash

https://www.e-commerce.com/service/getTransactionStatus.html?transactionId=1567105313489&company=1&store=1

Respuesta:

La respuesta retornará los siguientes campos:

Parámetro Tipo Descripción

company Alfanumérico Código de la compañía que realiza la solicitud de pago.

store Numérico Código de la tienda asociada a la compañía que realiza la solicitud de pago.

transactionId Numérico Identificador de la transacción.único

status Alfanumérico Estado de la transacción. Puede ser:

Commit: Confirmada

Rollback: Cancelada.

Los campos se responden en formato json "Nombre del campo":"valor"

Ejemplo de respuesta:

json

200:{ "company":"1", "store":"1", "transactionId":"1567105313489", "status":"Commit"}

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

La respuesta con código '099' representa un error en el procesamiento interno de VTOL, independientemente de la interacción con el Centro AutorizadorNota:

2.3.2 Códigos de respuesta por validación en VPB

Código Descripción

'100' Iniciada

'101' TransactionId duplicado.

'102' No informó monto

'103' No informó moneda

'104' Autorizando

'105' VTOL Server no responde

'106' Error Interno VPB

'107' No Informa URL OK

'108' No Informa URL ERROR

'109' Transacción No Existe

'110' No Informa Plan

'111' No Informa Payments

2.3.3 Códigos de respuesta de VTOL Server para PEI

A continuación se detallan las respuestas posibles de VTOL Server, cuando se opera con PEI:

Código Descripción

00 APROBADA

300 Se agoto el tiempo de espera

301 La sucursal ingresada es incorrecta

302 El concepto ingresado es incorrecto

303 El concepto ingresado no esta disponible

304 El concepto ingresado no esta habilitado

305 La cuenta destino del pago es incorrecta

306 La cuenta destino no esta habilitada

307 La cuenta origen del pago es incorrecta

308 La cuenta origen no esta habilitada

309 La Red destino del pago es incorrecta

310 La cuenta del comercio es incorrecta

311 La cuenta de la sucursal es incorrecta

312 El comercio supero el importe máximo

313 La sucursal supero el importe máximo

314 La tarjeta ha superado el importe diario

315 Comercio ha superado el importe diario

316 Comercio ha superado el importe mensual

317 Comercio supero las trxs diarias

318 Comercio supero las trxs mensuales

319 La sucursal supero el importe diario

320 La sucursal supero el importe mensual

321 La sucursal supero las trxs diarias

322 La sucursal supero las trxs mensuales

323 Encriptacion incorrecta

324 El DNI no coincide con el de la tarjeta

325 Los datos de tarjeta no se condicen

326 El comercio es invalido

327 Cuenta destino del comercio es invalida

328 La tarjeta es invalida

329 La referencia de trx ya fue utilizada

330 El importe no es un numero mayor a cero

331 Ultimos 4 dig. no coinciden con la tarj.

332 Tarjeta inhabilitada para operar

333 Tarjeta vencida

334 Fondos insuficientes

335 El CBU Banelco ingresado es incorrecto

336 El ALIAS CBU Banelco es incorrecto

337 El id de pago es invalido

338 El id del canal es invalido

339 Importe excede saldo remanente del pago

340 El ID de requerimiento es invalido

341 IP de cliente invalida

342 Existe una devolucion aprobada del pago

343 El pago tiene devoluciones parciales

344 Pago no admite el tipo de devolucion

345 Pago no admite el tipo de devolucion

346 Terminal en uso

347 Terminal PEI Invalida

348 Comercio PEI Invalido

349 Sucursal PEI Invalida

350 Id operacion Requerido

351 Id operacion Rango invalido

352 Ultimos cuatro digitos invalidos

353 Numero de documento requerido

354 Trx original no se puede devolver

355 La cuenta es incorrecta

356 La cuenta no está habilitada

357 La cuenta del comercio es incorrecta

358 La cuenta de la sucursal es incorrecta

359 Comercio supero monto para concepto

360 Sucursal supero monto para concepto

361 Tarjeta supero monto tipo de operacion

362 Comercio supero monto tipo operacion

363 Comercio supero monto tipo operacion

364 Comercio supero cantidad transacciones

365 Comercio supero cantidad transacciones

366 Sucursal supero monto diario permitido

367 Sucursal supero monto mensual permitido

368 Sucursal supero cantidad trxs diarias

369 Sucursal supero cantidad trx mensuales

370 Error al desencriptar campos encriptados

371 La cuenta destino del comercio invalida

372 Ref de trx del comercio ya fue utilizada

373 Ultimos 4 digitos incorrectos

374 El ID de requerimiento enviado invalido

375 Error General

376 Concepto ingresado no habilitado

377 Concepto ingresado no habilitado

378 Cuenta es incorrecta

379 Cuenta no está habilitada

380 ALIAS CBU red Banelco es incorrecto

381 El pago tiene devoluciones parciales

382 Esta operacion no acepta devol. total

383 Esta operacion no acepta devol. parcial

384 La fecha es invalida

385 El estado del pago es invalido

386 El Concepto Operacion es invalido

387 Estado trx original no acepta devolucion

388 Importe devolucion supero monto limite

389 No se encontró la trx original

390 No es posible devolver una devolución

391 Error en comunicación

392 Campo DateTimeOriginalTrx invalido

393 Autorizacion Original en Proceso

394 No permite operar tarjeta de credito

3. Flujo transaccionalA continuación se detallan los diagramas de secuencia de cada tipo de operación.

3.1 Transacciones simples (de 1 fase)

3.2 Transacciones en dos fases

3.3 Devoluciones