...
Mensajería POS - VTOL
Cambios por revisiones
Fecha | Revisión | Cambios |
|---|---|---|
02/11/2009 | 1.0 | Generación del documento |
04/11/2009 | 1.1 | Indicación de campos obligatorios |
26/04/2010 | 1.2 | Actualización de gráfico manejo de PINPAD |
22/03/2011 | 1.3 | Incorporación mensajes MembershipQuery y VoidMembershipQuery para consulta membresía Club Personal y Club La Nación |
03/06/2011 | 1.4 | Agregado de definición de mensaje de cierre de lote |
30/05/2012 | 1.5 | Agrego Tabla de Respuestas al POS y mejoro explicación de Tercer Mensaje y Chequeo de Pendientes. |
08/03/2013 | 1.6 | Agrego nuevos campos relacionados con operador y vendedor en operaciones de pre-autorización, venta, devolución y anulación. |
21/08/2013 | 1.7 | Agregado de apartado de error del core. |
09/09/2013 | 1.8 | Agrego campos EMV en operaciones de Venta, Devolución y anulación. Incorporo mensaje RejectedEMVAdvice y flujo de datos EMV. |
15/11/2013 | 1.9 | Agregado de 'Formato Interface POS' |
23/12/2013 | 2.0 | Agregado de detalle de los mensajes ServicePayment y VoidServicePayment |
13/02/2014 | 2.1 | Agregado del campo bandera '164 – posEncryptedFields', que indica cuando los datos sensibles viajan encriptados. |
29/05/2014 | 2.2 | Aclaración sobre el uso de pre-autorizaciones. |
22/08/2014 | 2.3 | Agregado de campo pinpadAutoCode en Tercer Mensaje y RejectedEMVAdvice. |
29/08/2014 | 2.4 | Actualización del Formato Interface POS, agregando el campo 'Tarjeta que Encripta' a los prefijos. |
11/09/2014 | 2.5 | Incorporación de Bines de Excepción y nuevo mensaje CardInfoService. |
09/12/2014 | 2.6 | Agregado de mensaje de Anulación de Pre Autorización. |
26/02/2015 | 2.7 | Agregado de nuevos campos ServiceCode y ProviderPosCode. |
27/02/2015 | 2.8 | Agregado de nuevos mensajes propios a la funcionalidad Cash Back. |
07/08/2015 | 2.9 | Agregado de aclaraciones en el uso de la mensajería |
09/09/2015 | 3.0 | Incorporación de campo PinpadApplicationVersion en los mensajes Sale, VoidSale, Refund y VoidRefund |
30/10/2015 | 3.1 | El campo ProviderPosCode para a ser el número 147. Incorporación de campo trxReferenceNumber en las respuestas de VTOL. Corrección de formato esperado en campo 7 - Expiration. El formato correcto es: YYMM. |
11/02/2016 | 3.2 | Incorporación del campo 201 additionalMessageData en el requerimiento y respuesta y la posibilidad de incluir el número de Ticket original en una anulación (Campo 17 originalTrxTicketNr) |
29/07/2016 | 3.3 | Incorporación del apartado 1.9. Mecanismo en Tiendas Virtuales y del 1.3.13. Chequeo de Listado de Pendientes |
19/04/2017 | 3.4 | Actualización de la tabla Prefijo en el apartado Formato Interface POS |
03/05/2017 | 3.5 | Incorporación del apartado 1.3.10 Echo |
05/05/2017 | 3.6 | Incorporación del apartado 1.3.9 SynQuery y de la sección 1.7 Formato Datos Sincronización |
06/06/2017 | 3.7 | Actualización de la tabla Prefijo en el apartado Formato Interface POS. Mayor detalle del campo MasterKey Position, incluyendo el valor 99 |
07/07/2017 | 3.8 | Agregado del campo promocional en Formato Interface POS para indicar que se aplica una promoción sobre un plan de pago |
| 04/09/2018 | 3.9 | Incorporación de la funcionalidad PEI en la mensajería |
14/12/2018 | 4.0 | Incorporación del apartado Antifraude e incorporación de la funcionalidad Antifraude en la mensajería |
| 08/02/2019 | 4.1 | Incorporación del apartado Tokenización e incorporación de la funcionalidad Tokenización en la mensajería |
| 03/04/2019 | 4.2 | Agregado del campo 0 (Compañía) en la mensajería de todos los tipos de transacciones. |
| 28/08201908/2019 | 4.3 | Incorporación de la funcionalidad Billeteras electrónicas en la mensajería. |
| 01/04/2020 | 4.4 | Incorporación de la mensajería para operaciones eCommerce. |
Índice
Índice
Âncora _Toc485222713 _Toc485222713
1. Campos de los mensajes
| _Toc485222713 | |
| _Toc485222713 |
...
Âncora _Toc485222725 _Toc485222725
1.4.1 Venta / Pre-autorización / Anulación / Anulación Pre-autorización / Cash Back / Anulación Cash Back
| _Toc485222725 | |
| _Toc485222725 |
1.4.1.1 Requerimiento
| Requerimiento | ||||
|---|---|---|---|---|
# | FieldId | Tipo | Obligatorio | Descripción |
| 0 | company | Numérico | SI | Identificador de la compañía donde se generó la transacción |
1 | store | Alfanumérico | SI | Identificador del sitio originador de la transacción |
2 | node | Numérico | SI | Identificación del nodo, en el sitio originador, donde se generó la transacción. |
3 | server | Alfanumérico | Compatibilidad atrás. | Identificador del Server que procesará la transacción. ('VTOL') |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | Cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (se envía todo el contenido del track2 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
10 | posInputMode | Alfanumérico | Obligatorio | Modo de Ingreso:
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Importe | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
17 | originalTrxTicketNr | Numérico | Opcional | Este campo es Opcional. Si viaja se debe precisar el número de ticket de la venta original para poder distinguir la transacción a anular. Se trata del número de ticket de la transacción original. 4 dígitos como máximo. |
18 | referedSale | Numérico | Condicional a tarjeta AMEX | Se usa para indicar si una venta se hizo de forma referida. SOLO para AMEX. Se debe encender este campo con el valor 1. |
22 | authorizationCode | Alfanumérico | Condicional a si fue realizada la autorización telefónica o la pre-autorización. | Código de autorización telefónica o retornado en la Pre-autorización. 6 dígitos como máximo. Este campo se encuentra presente sólo si la transacción se autorizó off-line por teléfono o en una Pre-autorización. |
23 | authorizationMode | Alfanumérico | Opcional, default = Online | Modo de Autorización:
|
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. |
54 | additionalAmount | Alfanumérico | Opcional | Contiene el Importe del "Cash Back". Se usa en transacciones del tipo CashBack o Sale + CashBack. Debe contener 12 dígitos como máximo |
56 | pinblock | Alfanumérico | Condicional a PINPAD | PIN encriptado. Se emplea para tarjetas que tienen PIN. Ejemplo pinblock: D76484D688FE1826 |
57 | accountType | Alfanumérico | Condicional a tarjeta de débito | Campo que se emplea para identificar el tipo de cuenta (ej: cta cte en pesos) Se usa para tarjetas de débito. Los valores posibles son:
|
66 | track1 | Alfanumérico | Opcional a su lectura | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
70 | effectiveDate | Alfanumérico | Opcional AMEX | Fecha efectiva. Se usa para AMEX con formato yyMM |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
72 | creditCardCondition | Alfanumérico | Opcional | Es una cadena de 3 de largo donde se indica una condición de la tarjeta. Se usa para las tarjetas regionales o propias donde los prefijos se superponen. Este valor es identificable en el TrackI de la tarjeta y si es manual se le pregunta al cajero. |
73 | interestAmount | Alfanumérico | Opcional | Este campo es por si se necesita enviar el monto de los intereses en el mensaje a Autorizar. Normalmente el monto que llega del POS ya contiene los intereses en el caso de pagar en cuotas. Existe algún caso de alguna tarjeta especial donde el monto hay que enviarlo libre de intereses y justamente el monto de los intereses viaja en este campo. |
74 | requestAccountNumber | Alfanumérico | Opcional, default = 0 | Indica si puede recibir el número de cuenta (Visa y Posnet). Valores posible:
|
101 | differDate | Alfanumérico | Opcional | Fecha diferida. Solo utilizada para AMEX. |
102 | chipTokens | Alfanumérico | Obligatorio para modo de ingreso Chip | Visa: Criptograma tarjetas EMV |
103 | emvEncryptedType | Alfanumérico | Opcional | Tipo de encriptación utilizada entre Pinpad y Host Autorizador.
|
104 | emvEncryptedData | Alfanumérico | Opcional | Paquete encriptado devuelto por el pinpad y que se enviará al Host Autorizador. |
105 | cardSequenceNumber | Numérico | Opcional | Numero de secuencia del PAN |
106 | pinpadLogSerialNumber | Alfanumérico | Opcional | Número de serie lógico del pinpad |
107 | pinpadFisSerialNumber | Alfanumérico | Opcional | Número de serie Físico del pinpad |
108 | useEncryptedData | Alfanumérico | Opcional | Indica si se utiliza encriptación entre Pinpad y Host Autorizador (Visa, Posnet, etc).
|
118 | terminalCapability | Alfanumérico | Opcional | Capacidad de captura. Valores 1 = Manual / 2 = Lectura de Banda / 5 = Lectura de Chip |
130 | posPeriod | Numérico | Opcional | Periodo enviado por el POS. Longitud 5 |
131 | turn | Numérico | Opcional | Turno. Longitud 2 |
132 | operatorCode | Alfanumérico | Opcional | Código de operador. Longitud 20 |
133 | operatorName | Alfanumérico | Opcional | Nombre de operador. Longitud 50 |
134 | sellerCode | Alfanumérico | Opcional | Código del vendedor. Longitud 20 |
135 | sellerName | Alfanumérico | Opcional | Nombre del vendedor. Longitud 50 |
136 | attentionMode | Alfanumérico | Opcional | Modalidad de atención (AU ó AS). Longitud 2 |
137 | serviceCode | Numérico | Opcional | Código de Servicio, se envía cuando el mensaje esta encriptado (campo 108=true) y no se tiene acceso al Track2. Longitud 3. |
147 | providerPosCode | Alfanumérico | Opcional | Código del Provider. Se utiliza en los casos donde VTOL Server no puede obtener unívocamente el Proveedor utilizando los prefijos (debido enmascaramiento de la tarjeta). Ejemplo VI (Visa). Longitud 20. |
164 | posEncryptedFields | Numérico | Opcional | Indica si se utiliza encripción entre Pinpad y VTOL (modo RSA). En este caso los datos sensibles se envían encriptados. Si está activo, los campos a enviar encriptados son: 6, 8, 9, 66
|
168 | pinpadApplicationVersion | Alfanumérico | Opcional | Versión de la aplicación del software del PinPad |
201 | additionalMessageData | Alfanumérico | Opcional | Este campo tiene como finalidad que el POS, o cliente VTOL, pueda enviar un dato X y que el mismo esté presente en la respuesta. Cada módulo según implementación puede decidir qué hacer con dicho dato (Ejem Persistir en BBDD) |
| 261 | cipherSuite | Numérico | Opcional | Indica el largo de la llave RSA para encriptar y desencriptar datos sensibles. En VTOL Admin debe estar habilitada la propiedad de datos sensibles.
|
| 263 | vtolToken | Alfanumérico | Opcional | Cuando se efectúa una transacción Sale, VoidSale, Refund o VoidRefund tokenizada, se puede enviar el Token VTOL |
| 264 | posChannelOrigin | Numérico | Opcional | Indica el canal de origen de la transacción. Es un código con los siguientes valores posibles:
|
| 265 | customerId | Alfanumérico | Opcional | Nombre o id de usuario que realizó la transacción |
| 266 | cardHolderName | Alfanumérico | Opcional | Nombre del tarjetahabiente |
| 270 | posTicket | Alfanumérico | Opcional | Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket |
| 280290 | usercustomerIp | Alfanumérico | Opcional | Nombre de usuario que realizó IP de origen de donde se efectuó la transacción |
| 281291 | userIpcustomerDocType | Alfanumérico | Opcional | IP de origen de donde se efectuó Tipo de documento del cliente que realizó la transacción. |
...
| 157 |
...
Cada comando posee una serie de atributos que definirán las distintas propiedades del elemento que se está agregando (además del número de secuencia antes mencionado).
Para el elemento ítem, los atributos serán los siguientes:
Elemento
Atributo
Tipo de dato
Descripción
Requerido
Valor ante ausencia
Ítem
unitprice
Numérico positivo
Precio unitario del artículo en cuestión.
Si
xprice
Numérico positivo
Precio extendido del artículo en cuestión. Es igual a la cantidad por el precio unitario.
Si
qty
Entero positivo
Cantidad de artículos en la línea.
Si
magnitude
Numérico positivo
Si el artículo es mensurable por otro unidad que no sea la cantidad, deberá ser expresad en esta propiedad.
No
0
code
Alfanumérico
Código propio del artículo.
No
"-"
brand
Alfanumérico
Marca del artículo.
No
"-"
supplier
Alfanumérico
Proveedor al que pertenece el artículo.
No
"-"
discountable
Alfanumérico
Si el artículo es puede recibir descuentos o no.
No
"-"
level1
Alfanumérico
Nivel 1 de categorización del artículo. Anteriormente este nivel se conocía con el nombre de Departamento.
No
"-"
level2
Alfanumérico
Nivel 2 de categorización del artículo. Anteriormente este nivel se conocía como la Familia del artículo.
No
"-"
level3
Alfanumérico
| customerDoc |
...
El mensaje con la estructura del ticket estará en XML. El elemento raíz de ese mensaje XML deberá ser la etiqueta <message>, siendo la misma lo que se llamará encabezado.
La manera de ejecutar un comando es utilizando una etiqueta con la forma <elemento-comando>. El elemento "item" identifica a los artículos. De esta manera, si se desea, por ejemplo, agregar un nuevo artículo el comando a utilizar será <item-add>. En el cuerpo del mensaje podrá contener uno, ninguno o varios de estos comandos.
Cada uno de los comandos que se envían posee diversos atributos, los cuales identifican al elemento que se está enviando y definen diversas propiedades que poseen los mismos. Poseerá un número de secuencia, el cual identifica cada elemento unívocamente:
...
Propiedad
...
Tipo de dato
...
Descripción
...
Requerido
...
seq
...
Entero positivo
...
Número identificador único del elemento dentro de la transacción.
...
Sí
| Alfanumérico | Opcional | Número de documento del cliente que realizó la transacción. | ||
| 292 | customerFirstName | Alfanumérico | Opcional | Nombre del cliente registrado en el e-commerce que realizó la transacción. |
| 293 | customerLastName | Alfanumérico | Opcional | Apellido del cliente registrado en el e-commmerce que realizó la transacción. |
| 294 | cardHolderBirthday | Alfanumérico | Opcional | Fecha de nacimiento del titular de la tarjeta. Formato YYYYMMDD. |
| 295 | cardHolderDocType | Alfanumérico | Opcional | Tipo de documento del titular de la tarjeta. |
| 296 | cardHolderDocNumber | Alfanumérico | Opcional | Número de documento del titular de la tarjeta. |
| 297 | cardHolderAddressStreet | Alfanumérico | Opcional | Calle de entrega del resumen del titular de la tarjeta. |
| 298 | cardHolderAddressNumber | Alfanumérico | Opcional | Número de Puerta de entrega del resumen del titular de la tarjeta. |
| 299 | cardHolderZipCode | Alfanumérico | Opcional | Código postal de entrega del resumen del titular de la tarjeta. |
| 305 | cardHolderAddressComplement | Alfanumérico | Opcional | Complemento de la dirección. Piso / departamento de entrega de resumen del titular de la tarjeta. |
| 306 | cardIssuingBank | Alfanumérico | Opcional | Banco emisor de la tarjeta. Longitud máxima 20. |
| 307 | cardBrand | Alfanumérico | Opcional | Marca de la tarjeta. Longitud máxima 20. |
1.4.1.1.1 Estructura del campo posTicketÂncora posticket posticket
El mensaje con la estructura del ticket estará en XML. El elemento raíz de ese mensaje XML deberá ser la etiqueta <message>, siendo la misma lo que se llamará encabezado.
La manera de ejecutar un comando es utilizando una etiqueta con la forma <elemento-comando>. El elemento "item" identifica a los artículos. De esta manera, si se desea, por ejemplo, agregar un nuevo artículo el comando a utilizar será <item-add>. En el cuerpo del mensaje podrá contener uno, ninguno o varios de estos comandos.
Cada uno de los comandos que se envían posee diversos atributos, los cuales identifican al elemento que se está enviando y definen diversas propiedades que poseen los mismos. Poseerá un número de secuencia, el cual identifica cada elemento unívocamente:
Propiedad | Tipo de dato | Descripción | Requerido |
seq | Entero positivo | Número identificador único del elemento dentro de la transacción. | Sí |
Cada comando posee una serie de atributos que definirán las distintas propiedades del elemento que se está agregando (además del número de secuencia antes mencionado).
Para el elemento ítem, los atributos serán los siguientes:
Elemento | Atributo | Tipo de dato | Descripción | Requerido | Valor ante ausencia | |
Ítem
| unitprice | Numérico positivo | Precio unitario del artículo en cuestión. | Si |
| |
xprice | Numérico positivo | Precio extendido del artículo en cuestión. Es igual a la cantidad por el precio unitario. | Si |
| ||
qty | Entero positivo | Cantidad de artículos en la línea. | Si |
| ||
magnitude | Numérico positivo | Si el artículo es mensurable por otro unidad que no sea la cantidad, deberá ser expresad en esta propiedad. | No | 0 | ||
code | Alfanumérico | Código propio del artículo. | No | "-" | ||
level4brand | Alfanumérico | Nivel 4 de categorización Marca del artículo. Anteriormente este nivel se conocía como la subcategoría del artículo. | No | "-" | description | Alfanumérico |
supplier | Alfanumérico | Proveedor al que pertenece el artículo. | No | "-" | ||
discountable | Alfanumérico | Si el artículo es puede recibir descuentos o no. | No | "-" | ||
level1 | Alfanumérico | Nivel 1 de categorización del artículo. Anteriormente este nivel se conocía con el nombre de Departamento. | No | "-" | ||
level2 | Alfanumérico | Nivel 2 de categorización del artículo. Anteriormente este nivel se conocía como la Familia del artículo. | No | "-" | ||
level3 | Alfanumérico | Nivel 3 de categorización del artículo. Anteriormente este nivel se conocía como la Categoría del artículo. | No | "-" | ||
level4 | Alfanumérico | Nivel 4 de categorización del artículo. Anteriormente este nivel se conocía como la subcategoría del artículo. | No | "-" | ||
| description | Alfanumérico | Descripción del ítem | Si | |||
| currency | Alfanumérico | Moneda utilizada en el precio del ítem Nota: En el punto de venta se deberá informar la moneda de la cuenta vendedor de Mercado Pago (si el retailer posee una cuenta argentina en Mercado Pago entonces tendrá que informar la moneda $ -pesos argentinos-). | Si |
...
| Aviso |
|---|
| Importante: Esta estructura generada debe transformarse al formato Base 64 para informárselo a VTOL en el campo 270 posTicket. |
1.4.1.2 Respuesta
| Respuesta | |||
|---|---|---|---|
# | FieldId | Tipo | Descripción |
| 0 | company | Numérico | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Alfanumérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
58 | workingKey | Alfanumérico | VTOL devuelve este campo tal como lo entrega el CA. Representa la llave que el PINPAD deberá usar para generar el PINBLOCK en la próxima transacción. |
68 | rrn | Numérico | Reference referral number. |
75 | accountNumber | Alfanumérico | Número de cuenta. Este campo es devuelto si el campo 74- requestAccountNumber fue activado en el requerimiento. Longitud 28. |
81 | responseAuth | Alfanumérico | Mensaje de repuesta para ser mostrado en el diplay del POS donde se indican promociones. |
82 | softwareVersion | Alfanumérico | Versión de la aplicación. |
102 | chipTokens | Alfanumérico | En las respuestas hacia el POS se actualiza con el valor que envió el CA. |
110 | requeredAdvice | Alfanumérico | Con valor true si se requiere que se envíe el advice para la autorización. En este caso la terminal lógica queda en estado AdvicePending. |
130 | posPeriod | Numérico | Periodo enviado por el POS. Longitud 5 |
131 | turn | Numérico | Turno. Longitud 2 |
132 | operatorCode | Alfanumérico | Código de operador. Longitud 20 |
133 | operatorName | Alfanumérico | Nombre de operador. Longitud 50 |
134 | sellerCode | Alfanumérico | Código del vendedor. Longitud 20 |
135 | sellerName | Alfanumérico | Nombre del vendedor. Longitud 50 |
136 | attentionMode | Alfanumérico | Modalidad de atención (AU ó AS). Longitud 2 |
165 | publicKey | Alfanumérico | Clave Pública utilizada en la encripción punto a punto POS - VTOL. Viaja cuando la clave expiró y se generó una nueva; o bien, cuando es necesario sincronizar claves entre POS y VTOL. |
166 | trxReferenceNumber | Numérico | Identificador único 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. |
201 | additionalMessageData | Alfanumérico | Este campo tiene como finalidad que el POS, o cliente VTOL, pueda enviar un dato X y que el mismo esté presente en la respuesta. Cada módulo según implementación puede decidir qué hacer con dicho dato (Ejem Persistir en BBDD). |
| 263 | vtolToken | Alfanumérico | Cuando se efectúa una transacción Sale, VoidSale, Refund o VoidRefund tokenizada, se puede recibir el Token VTOL |
| 267 | vtolTokenExpire | Numérico | Fecha y hora de expiración del Token VTOL en formato YYYYMMDD |
...
| 308 | vteValidation | Alfanumérico | Longitud 4 dígitos. Retorna en operaciones no presenciales, de Sale y Pre-autorización |
...
. Prisma realiza validación de los siguientes datos del tarjeta habiente.
El resultado se informa con un código de 4 dígitos. Cada dígito es el resultado de la validación de los campos enviado en el requerimiento, en el orden indicado arriba. Los valores posibles son: Ejemplo: Código informado = 0112
|
1.4.1.3 Pre-autorización
La pre-autorización es utilizada para validar y reservar un saldo de una tarjeta en vías de asegurarse que se podrá saldar la transacción de productos que primero se consumen y luego se pagan siendo difícil o imposible devolverlos en caso de no haber saldo.
Ejemplos en donde se podría utilizar éste tipo de transacción es el despacho de combustible, pago en restaurants con propina, etcoperaciones eCommerce.
El flujo normal de ésta operatoria es el siguiente:
- Se realiza una pre-autorización por un monto X.
- Se debe almacenar el código de autorización recibido en la respuesta.
- Se lleva a cabo la venta de los productos.
- finalizada Finalizada la venta se procede a realizar una venta la captura (Sale offline) por el momento exacto e incorporando el código de autorización recibido en el paso 1. El sistema aprobará automáticamente ésta esta transacción.
1.4.1.4 Anulación de Pre-autorización
...
- Se realiza una pre-autorización por un monto X.
- Por algún motivo, como el expuesto mas más arriba, es necesario anular la pre-autorización y reintegrar el monto retenido al cliente. Mientras se esté en el mismo periodo que la operación original, se puede enviar el mensaje de anulación de pre-autorización.
...
Âncora _Toc288557357 _Toc288557357
Âncora _Toc485222736 _Toc485222736
Âncora _Toc145327444 _Toc145327444
1.4.12 Tercer Mensaje
| _Toc288557357 | |
| _Toc288557357 |
| _Toc485222736 | |
| _Toc485222736 |
| _Toc145327444 | |
| _Toc145327444 |
Mensajería para confirmar o anular la transacción en VTOL Server.
1.4.12.1 Requerimiento
# | FieldId | Tipo | Descripción |
| 0 | company | Numérico | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Identificador del Server que procesará la transacción. (‘VTOL’) |
4 | messageType | Alfanumérico | Tipo de Mensaje:
|
11 | trxType | Alfanumérico | Tipo de Transacción:
|
19 | lastTrxAction | Alfanumérico | Acción a realizar sobre la Transacción:
|
24 | lastTrxId | Numérico | Id de transacción a confirmar / reversar. |
25 | dateTime | Numérico | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
200 | EMV extra data | Alfanumérico | Datos extras que se deben enviar en el tercer mensaje cuanto el EMV Advice es requerido.
Es necesario enviar los campos: adviceChipTokens, pinpadResponseCode y pinpadAutCode. Formato del campo: [adviceChipTokens|valor,pinpadResponseCode|valor, pinpadAutCode|valor] |
...
1.4.16.1 Requerimiento
| Informações |
|---|
Referencias X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SalePEI | RefundPEI | QueryPEI | Descripción |
|---|---|---|---|---|---|---|
| 0 | company | Numérico | X | X | X | Identificador de la compañía donde se generó la transacción. |
| 1 | store | Alfanumérico | X | X | X | Identificador del sitio originador de la transacción |
| 2 | node | Numérico | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
| 3 | server | Alfanumérico | X | X | X | Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL') |
| 4 | messageType | Alfanumérico | X | X | X | Tipo de Mensaje:
|
8 | Cvc | Numérico | X | X | - | Código de seguridad de la tarjeta |
9 | track2 | Alfanumérico | X | X | X | Track2 de la tarjeta entero (se envía todo el contenido del track2 en este campo) |
10 | inputMode | Alfanumérico | X | X | X | Forma en que se ingresó/leyó la tarjeta. Valor posible:
|
11 | trxType | Alfanumérico | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | X | X | - | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | X | X | - | Tipos de Moneda:
|
25 | dateTime | Numérico | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. Es importante persistir este valor para consultar el resultado de una operación en caso de algún inconveniente |
| 66 | track1 | Alfanumérico | X | X | X | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) |
| 71 | checkPendingString | Alfanumérico | O Default = true | O Default = true | O Default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
| 153 | idOperationPEI | Alfanumérico | - | X | - | Identificador de la operación PEI de pago que se desea devolver |
| 155 | cbu | Alfanumérico | - | O | - | CBU de la cuenta destino de la devolución asociada con la tarjeta Banelco. Si el dato se envía, el valor es validado por Link |
| 156 | cbuAlias | Alfanumérico | - | O | - | Alias del CBU de la cuenta destino de la devolución asociada con la tarjeta Banelco. Si el dato se envía, el valor es validado por Link |
| 157 | customerDoc | Alfanumérico | X | O | - | Número de documento del titular de la tarjeta |
158 | lastFourDigits | Numérico | X | X | - | Últimos 4 dígitos de la tarjeta. La solicitud de la validación de los últimos 4 dígitos de la tarjeta es configurable por prefijo |
| 161 | operationConcept | Numérico | O | - | - | Concepto por el cual se realiza la operación, valores posibles:
|
| 164 | posEncryptedFields | Numérico | X | X | X | Indica si se utiliza encripción RSA. En este caso los datos sensibles se envían encriptados. Si está activo, los campos a enviar encriptados son: 8, 9, 66
|
| 173 | dateTimeOriginalTrx | Numérico | - | - | X | Fecha y hora de realización de la transacción de venta o devolución que se desea consultar en formato YYYYMMDDHHMMSS. Se debe enviar el valor del campo 25 de la transacción a consultar |
...
1.4.16.2 Respuesta
| Informações |
|---|
Referencias X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SalePEI | RefundPEI | QueryPEI | Descripción |
|---|---|---|---|---|---|---|
| 0 | company | Numérico | X | X | X | Identificador de la compañía donde se generó la transacción |
| 1 | store | Alfanumérico | X | X | X | Identificador del sitio originador de la transacción |
| 2 | node | Numérico | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
25 | dateTime | Numérico | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. El valor en este campo debe ser el mismo que el valor de la fecha y hora del requerimiento. El POS utiliza este dato para validar que se trate de la misma transacción |
26 | responseCode | Alfanumérico | X | X | X | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | X | X | X | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo. Ver sección Códigos de Respuesta de VTOL Server para PEI |
28 | responseMessage | Alfanumérico | X | X | X | Mensaje de la Respuesta ISO-8583 relacionado con el código del campo 27 |
35 | errorDescription | Alfanumérico | X | X | X | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es “Error” |
153 | idOperationPEI | Alfanumérico | X | X | X | Identificador de la operación PEI de pago o de devolución |
| 154 | idOperationOrigenPEI | Alfanumérico | - | X | O | Identificador de la operación PEI de origen con la cual se solicitó la devolución. |
| 170 | idCommercePEI | Alfanumérico | X | X | X | Identificador PEI de compañía |
| 171 | idBranchPEI | Alfanumérico | X | X | X | Identificador PEI de local |
| 172 | idTerminalPEI | Alfanumérico | X | X | X | Identificador PEI de terminal |
| 174 | originalTrxStatus | Numérico | - | - | O | Informa el estado de la transacción original en una operación de consulta. Si el campo en la respuesta no se recibe es porque la consulta falló. Puede contener uno de los siguientes valores:
|
| 278 | bankingRefNum | Alfanumérico | X | - | X | Numero de referencia de la transacción de pago. Se utiliza para conciliar con los reportes de las entidades bancarias. Número generado por LINK. |
...
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QuerySaleWallet | Descripción |
|---|---|---|---|---|---|---|
| 0 | company | Numérico | X | X | X | Identificador de la compañía donde se generó la transacción. |
| 1 | store | Alfanumérico | X | X | X | Identificador del sitio originador de la transacción |
| 2 | node | Numérico | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
| 3 | server | Alfanumérico | X | X | X | Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL') |
| 4 | messageType | Alfanumérico | X | X | X | Tipo de Mensaje:
|
11 | trxType | Alfanumérico | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | X | X | - | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 Nota: El importe debe ser el número correspondiente a la moneda informada |
13 | currencyPosCode | Alfanumérico | X | X | - | Tipos de moneda:
Nota: En el punto de venta se deberá informar la moneda de la cuenta vendedor de Mercado Pago (si el retailer posee una cuenta argentina en Mercado Pago entonces tendrá que informar la moneda $ -pesos argentinos-) Nota: Para Todo Pago la moneda siempre es $ -pesos argentinos- Importante: Tener en cuenta que operando con Mercado Pago siempre debe coincidir el país de la cuenta vendedor con el país de la cuenta comprador |
| 14 | payments | Numérico | - | - | O | Cantidad de cuotas por las cuales se realizará el pago. 2 dígitos como máximo Si es sin cuotas, el valor por defecto es 1 |
| 15 | plan | Alfanumérico | - | - | O | Plan. 1 caracter de longitud |
| 16 | originalDate | Numérico | - | X | X | Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD |
| 24 | lastTrxId | Numérico | O | O | O | Utilizado cuando está activo el control transaccional. En este campo el POS debe enviar la última transacción procesada correctamente. |
25 | dateTime | Numérico | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS |
| 53 | paymentCondition | Alfanumérico | - | - | O | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción |
| 71 | checkPendingString | Alfanumérico | O Default = true | O Default = true | O Default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
| 147 | providerPosCode | Alfanumérico | - | - | O | Proveedor / tarjeta seleccionada manualmente de la lista devuelta por VTOL. Por Ejemplo: Si el saleWallet retorna la lista {VI, EL}, en el querySaleWallet se debe enviar el valor seleccionado entre las dos opciones VI o EL. |
| 268 | walletPosTrxId | Alfanumérico | X | - | O | Identificador único de la transacción de billetera para la compañía. Es originado por el POS para realizar una compra con billetera Formato: Opcional en QuerySaleWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra |
| 269 | walletType | Numérico | X | X | X | Tipo de billetera por la cual se cursará la transacción en el POS. Opciones: 1: Mercado Pago |
| 270 | posTicket | Base 64 | X | - | - | Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket |
| 271 | walletPaymentId | Alfanumérico | - | X | O | Identificador del número de pago informado por el Autorizador en el campo 271 de la respuesta de la operación SaleWallet Opcional en QuerySaleWallet: Se informa este campo o el campo walletPosTrxId para localizar una transacción de compra |
Ejemplo
Request to VTOL (SaleWallet): Request: {270:PG1lc3NhZ2U+CiAgICAgICA8aXRlbS1hZGQgc2VxPSIxIiBjb2RlPSIwMDAxIiBkaXNjb3VudGFibGU9InRydWUiIHVuaXRwcmljZT0iMjUuMCIgcXR5PSIxLjAiIGxldmVsMT0iTUVOIiBsZXZlbDI9IkNBU1VBTCIgc3VwcGxpZXI9IiIgYnJhbmQ9IkxFVklTIiB4cHJpY2U9IjI1LjAiIG1hZ25pdHVkZT0iMS4wIiBkZXNjcmlwdGlvbj0iSmVhbiBjYXN1YWwiIGN1cnJlbmN5PSIkIiAvPgogICAgICAgPGl0ZW0tYWRkIHNlcT0iMiIgY29kZT0iMDAwMiIgZGlzY291bnRhYmxlPSJ0cnVlIiB1bml0cHJpY2U9IjI4LjAiIHF0eT0iMi4wIiBsZXZlbDE9Ik1FTiIgbGV2ZWwyPSJDQVNVQUwiIHN1cHBsaWVyPSIiIGJyYW5kPSJMRVZJUyIgeHByaWNlPSI0OC4wIiBtYWduaXR1ZGU9IjEuMCIgZGVzY3JpcHRpb249IkplYW4gY2FzdWFsIiBjdXJyZW5jeT0iJCIgLz4KPC9tZXNzYWdlPg==;269:1;268:1120181116055713;13:$;12:1200;11:SaleWallet;4:DATA;3:VTOL;2:1;25:20181116055713;71:True;1:1} Request to VTOL (RefundWallet): Request: {271:4379999999999999437;269:1;16:20181116;13:$;12:1200;11:RefundWallet;4:DATA;3:VTOL;2:1;25:20181116105619;71:True;1:1} Request to VTOL (QuerySaleWallet): Request: {271:2289999999999999228;269:1;16:20190214;268:11020190514050534;25:20190214050534;11:QuerySaleWallet} |
...
Response from VTOL (SaleWallet): Response message: {1:1;2:1;1027:000;1028:Ok;166:14021905052200000204;271:2289999999999999228;1010:1550131493463;22:1234567;24:121;25:20190214050518;26:ISO8583;27:00;28:APROBADA} Response from VTOL (RefundWallet): Response message: {1:1;2:1;1010:1550131493463;1027:000;1028:Ok;25:20190214050543;26:ISO8583;27:509;28:Estado trx original no acepta devolucion} Response from VTOL (QuerySaleWallet): Response message: {1:1;2:1;1027:000;1028:Ok;6:450995xxxxxx3704;140:0;12:53.0;13:$;14:1;142:visa;271:2289999999999999228;272:0.0;273:0;274:accredited;1010:1550131493463;275:1;22:1234567;24:121;25:20190214050534;26:ISO8583;27:00;28:APROBADA}:00;28:APROBADA} |
1.4.19 Operaciones Ecommerce
Este mensajería explica la integración directa entre una tienda online con VTOL Server. Para implementar esta mensajería, el comercio debe estar certificado bajo las normas PCI DSS. El eCommerce debe poseer su propio formulario de captura de datos de tarjeta, para luego enviar dichos datos directamente a VTOL Server.
Las operaciones soportadas en VTOL Server para eCommerce son:
- Operación en una fase: VTOL ofrece la posibilidad de realizar una transacción en una sola fase, llamada Venta (cargo). Directamente se realiza la transacción financiera y se aplica el cobro en la tarjeta del cliente.
- Sale = Permite realizar una compra online. En esta modalidad VTOL autoriza, verifica y captura el importe de la venta todo de una vez.
- Sale = Permite realizar una compra online. En esta modalidad VTOL autoriza, verifica y captura el importe de la venta todo de una vez.
- Operaciones en dos fases: VTOL ofrece la posibilidad de realizar transacciones en dos pasos, primero se realiza una pre-autorización, y luego se genera la captura.
- PreAuthorization = La pre-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. Cuando se recibe la respuesta de la pre-autorización, se debe almacenar el código de autorización recibido.
- Sale (Capture) = Esta operatoria se utiliza exclusivamente luego de haber realizado un Pedido de Autorización en 2 pasos. La misma es una operación offline. Para poder confirmar definitivamente el pago al cliente, es necesario capturar los fondos que se reservaron, enviando el código de autorización recibido en la pre-autorización. La captura se realiza por el monto exacto de la venta, por lo cual es posible realizar la captura por el monto total o de forma parcial.
- VoidPreAuthorization = permite anular completamente una pre-autorización de pago que ya había sido aprobada previamente. Si el cliente se arrepiente de realizar la compra, en este caso, es necesario realizar una anulación de la Pre autorización para que el monto retenido por la pre autorización sea devuelto al cliente. Para anular la pre-autorización, la misma puede estar en un lote abierto o cerrado.
Requerimiento
Nro | Campo | Tipo | Sale | Capture | PreAuth | VoidPreAuth | Descripción |
|---|---|---|---|---|---|---|---|
| 0 | company | Numérico | X | X | X | X | Identificador de la compañía donde se generó la transacción |
1 | store | Alfanumérico | X | X | X | X | Identificador del sitio originador de la transacción |
3 | server | Alfanumérico | X | X | X | X | Identificador del Server que procesará la transacción. ('VTOL') |
4 | messageType | Alfanumérico | X | X | X | X | Tipo de Mensaje:
|
6 | cardNumber | Numérico | X | - | X | - | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expirationDate | Numérico | X | - | X | - | Formato YYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | cvc | Numérico | X | - | X | - | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
10 | inputMode | Alfanumérico | X | X | X | X | Modo de Ingreso de la tarjeta: 3 - E-Commerce |
11 | trxType | Alfanumérico | X | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | X | X | X | X | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | X | X | X | X | Tipos de Moneda:
|
14 | payments | Numérico | X | X | X | X | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | X | X | X | X | Plan. 1 caracter de longitud. |
17 | originalTrxTicketNr | Numérico | - | - | - | X | Campo Opcional. Si viaja se debe precisar el número de ticket de la venta original para poder distinguir la transacción a anular. 4 dígitos como máximo. Obligatorio para devoluciones. |
22 | authorizationCode | Alfanumérico | - | X | - | - | Código de autorización retornado en la pre autorización. 6 dígitos como máximo. Obligatorio para Captura. |
23 | authorizationMode | Alfanumérico | X | X | X | X | Modo de Autorización:
|
25 | dateTime | Numérico | X | X | X | X | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
53 | paymentCondition | Alfanumérico | O | - | O | - | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. |
73 | interestAmount | Alfanumérico | O | - | O | - | Este campo es por si se necesita enviar el monto de los intereses en el mensaje a Autorizar. Normalmente el monto que llega del POS ya contiene los intereses en el caso de pagar en cuotas. Existe algún caso de alguna tarjeta especial donde el monto hay que enviarlo libre de intereses y justamente el monto de los intereses viaja en este campo. |
| 118 | terminalCapability | Alfanumérico | X | X | X | X | Capacidad de captura. Valor a enviar:
|
147 | providerPosCode | Alfanumérico | O | - | O | - | Código del Provider. Se utiliza en los casos donde VTOL Server no puede obtener unívocamente el Proveedor utilizando los prefijos (debido enmascaramiento de la tarjeta). Ejemplo VI (Visa). Longitud 20. |
| 167 | originalTrxReferenceNumber | Alfanumérico | O | X | O | X | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos. Dato enviado por VTOL Server en el campo 166, en la respuesta de un Sale o una PreAuthorization. Obligatorio para los trxType: Anulación de autorización (VoidPreAuthorization) y Captura (Sale offline). |
| 201 | additionalMessageData | Alfanumérico | O | O | O | O | Este campo tiene como finalidad que el cliente VTOL, pueda enviar un dato X y que el mismo esté presente en la respuesta. Cada módulo según implementación puede decidir qué hacer con dicho dato. |
| 264 | posChannelOrigin | Numérico | O | O | O | O | Indica el canal de origen de la transacción. Es un código con los siguientes valores posibles:
|
| 266 | cardHolderName | Alfanumérico | X | O | X | O | Nombre del tarjetahabiente |
| 270 | posTicket | Alfanumérico | O | O | O | O | Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket |
| 265 | customerId | Alfanumérico | O | O | O | O | Nombre de usuario que realizó la transacción |
| 290 | customerIp | Alfanumérico | O | O | O | O | IP de origen de donde se efectuó la transacción |
| 291 | customerDocType | Alfanumérico | O | O | O | O | Tipo de documento del cliente que realizó la transacción. |
| 157 | customerDoc | Alfanumérico | O | O | O | O | Número de documento del cliente que realizó la transacción. |
| 292 | customerFirstName | Alfanumérico | O | O | O | O | Nombre del cliente registrado en el e-commerce que realizó la transacción. |
| 293 | customerLastName | Alfanumérico | O | O | O | O | Apellido del cliente registrado en el e-commmerce que realizó la transacción. |
| 294 | cardHolderBirthday | Alfanumérico | X | X | X | X | Fecha de nacimiento del titular de la tarjeta. Formato YYYYMMDD. |
| 295 | cardHolderDocType | Alfanumérico | X | X | X | X | Tipo de documento del titular de la tarjeta. |
| 296 | cardHolderDocNumber | Alfanumérico | X | X | X | X | Número de documento del titular de la tarjeta. |
| 297 | cardHolderAddressStreet | Alfanumérico | O | O | O | O | Calle de entrega del resumen del titular de la tarjeta. |
| 298 | cardHolderAddressNumber | Alfanumérico | X | X | O | O | Número de Puerta de entrega del resumen del titular de la tarjeta. |
| 299 | cardHolderZipCode | Alfanumérico | O | O | O | O | Código postal de entrega del resumen del titular de la tarjeta. |
| 305 | cardHolderAddressComplement | Alfanumérico | O | O | O | O | Complemento de la dirección. Piso / departamento de entrega de resumen del titular de la tarjeta. |
| 306 | cardIssuingBank | Alfanumérico | O | O | O | O | Banco emisor de la tarjeta. Longitud máxima 20. |
| 307 | cardBrand | Alfanumérico | O | O | O | O | Marca de la tarjeta. Longitud máxima 20. |
Respuesta
Nro | Campo | Tipo | Descripción |
|---|---|---|---|
| 0 | company | Numérico | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Alfanumérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
75 | accountNumber | Alfanumérico | Número de cuenta. Este campo es devuelto si el campo 74- requestAccountNumber fue activado en el requerimiento. Longitud 28. |
166 | trxReferenceNumber | Numérico | Identificador único 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. |
201 | additionalMessageData | Alfanumérico | Este campo tiene como finalidad que el cliente VTOL, pueda enviar un dato X y que el mismo esté presente en la respuesta. Cada módulo según implementación puede decidir qué hacer con dicho dato. |
Âncora _Toc485222740 _Toc485222740
1.5 Códigos de Respuesta al POS
| _Toc485222740 | |
| _Toc485222740 |
...
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 |
Âncora antifraude antifraude
1.5.2 Códigos de Respuesta de VTOL Server para Antifraude
| antifraude | |
| antifraude |
A continuación se detallan las respuestas posibles de VTOL Server, cuando se opera con Antifraude, con una breve descripción de cada una:
Código | Descripción |
|---|
de respuesta al POS | Descripción del módulo antifraude | |
|---|---|---|
| 801 | Tarjeta no autorizada | Fraude por validación de BlackList |
| 802 | Tarjeta no autorizada | Posible Fraude |
| por BlackList |
| 803 |
| Operación no autorizada | Fraude |
| por Velocity Check |
| 804 | Operación no autorizada | Posible fraude |
| por Velocity Check |
| 805 |
| Operación no autorizada | Error |
| en validación concurrente, posible fraude |
| por Velocity Check | ||
| 806 | Operación no autorizada | Error en validación Velocity Check |
| 807 | Operación no autorizada | Error general en validación de Antifraude |
| 810 | Operación no autorizada | Faltan campos requeridos en el |
| requerimiento |
1.5.3 Códigos de Respuesta de VTOL Server para Tokenización
A continuación se detallan las respuestas posibles de VTOL Server, cuando se opera con Tokenización, con una breve descripción de cada una:
Código | Descripción |
|---|---|
| 400 | Tarjeta no soporta tokenizacion |
| 401 | Excedio tiempo de tokenizacion |
| 402 | Token error comunicacion |
| 403 | Token error persistencia |
| 404 | Token error parseo campo |
| 405 | Token error respuesta NOK |
| 406 | VTOL TOKEN Expirado |
| 407 | Error generar token |
| 408 | VTOL Token no encontrado |
| 409 | VTOL token requerido |
| 410 | Token publico no encontrado en comercio |
| 411 | Token publico expirado |
| 412 | No existe num de comercio para tokenizar |
...
- En caso de que el campo requiredAdvice tenga valor true, el POS debe enviar en el tercer mensaje Commit, los campos chipTokens (criptograma del Advice) y pinpadResponseCode (código autorización del Pinpad).
Estos datos se incluyen el campo 200 –extraData-, con el siguiente formato:
Nota: Si el campo requiredAdvice no tiene valor true, se envía el tercer mensaje sin el campo de datos extras.
...
El módulo de Antifraude consiste en un conjunto de reglas especializado en analizar compras realizadas en los puntos de ventaforma presencial y no presencial, con el objetivo de identificar operaciones fraudulentas. Se recolectan datos del comportamiento de los usuarios y se los compara con patrones sospechosos para aprobar o no rechazar la transacción.
El usuario operador de un retail configurará las reglas en la consola web de VTOL y posteriormente VTOL Server validará dichas reglas precargadas con el requerimiento entregado por el POS, efectuando un rechazo en caso de activarse la regla en vez de enviarse la autorización al centro autorizador.
| Nota |
|---|
| Nota: Para conocer cómo efectuar la configuración de Antifraude, dirigirse al documento "VTOL Core Antifraude - Manual de Usuario" apartado "Antifraudeusuario". |
La lógica de validación de transacción será on-line, al momento de realizar el pago.
Las reglas de antifraude disponibles son las siguientes:
- Blacklist: Listas negras de números de tarjetas (conjunto de números de tarjetas fraudulentas, que el retailer puede cargar en el sistema VTOL para rechazarlas al momento de una operatoria)
- Velocity checks: Reglas de acumulación (conjunto de reglas de acumulación que permiten realizar validaciones por determinados datos. Estos pueden ser: cantidad total de transacciones, cantidad de items adquiridos en una transacción, importe total sumarizado en una transacción. Estas validaciones se pueden configurar por un período establecido y también se puede configurar por el canal de ingreso de la operación)
Además, por compañía se podrá configurar qué la regla de antifraude que se encontrará activa.
Con respecto a la mensajería, en el requerimiento de una compra, el POS o eCommerce precisará informar los siguientes datos según para validar cada regla de antifraude:
- Blacklist:
- cardNumber (número de tarjeta)
- Velocity checks:
- posChannelOrigin (canal de origen de la transacción)
- cardNumber (número de tarjeta)
- user customerId (nombre o id de usuario o cliente informadoque efectuó la transacción)
- userIp customerIp (IP de usuariode origen de donde se efectuó la transacción)
- cardHolderName (titular de tarjeta)
- vtolToken (token VTOL)
- posTicket (ticket con los items adquiridos)
En la respuesta al POS o eCommerce, VTOL informará si la transacción fue rechazada por alguna regla de fraude. Ver códigos de respuesta por reglas antifraude.
1.13 Tokenización
En Argentina, VISA ofrece el servicio de tokenización denominado PTSP -Prisma Token Service Provider- para sus tarjetas de crédito y de débito (marca VISA). La tokenización permitir efectuar pagos con tarjetas de débito y crédito en medios no presenciales (e-commerce) que por cuestiones de seguridad, hasta hoy, no se permitían y también para poder enrolar tarjetas y no tener la necesidad de solicitárselas nuevamente a los clientes.
...