- Pautas de integración
- Características soportadas (otras características)
- Datos adicionales
- Datos de Nivel II y Nivel III
Datos de Nivel II y Nivel III
Una transacción de tarjeta de crédito se puede enviar con tres niveles de datos de transacción: Nivel I, Nivel II y Nivel III. Cada nivel se define por la cantidad de información que se proporciona para procesar la transacción.
- El Nivel I incluye datos de transacción estándar, como la fecha, el número de tarjeta y el monto total de la compra.
- El Nivel II incluye los datos del Nivel I más datos de transacción más detallados, como el número de referencia del cliente, el número de factura y el monto del impuesto sobre las ventas.
- El Nivel III incluye los datos de Nivel II, más los detalles del artículo de línea.
Si acepta tarjetas de empresa, corporativas o de compra, entonces proporcionar datos de Nivel II/III sobre su transacción puede calificar la transacción para mejores tasas de intercambio. La empresa de su cliente también puede beneficiarse de estados de cuenta detallados de la tarjeta, así como de información para apoyar y agilizar los procesos comerciales, como la autorización de compras, la reconciliación y la reportería.
Tenga en cuenta que el motor de pagos no valida que los datos proporcionados en la transacción son suficientes para calificar para tasas de intercambio específicas, como lo requieren los esquemas de tarjeta.
Proporcionar datos de Nivel II/III sobre operaciones iniciales
Cuando cree un pedido, todos los datos de Nivel II o III que proporcione se aplicarán a todas las transacciones del pedido.
Si utiliza el motor de pagos para realizar transacciones de pago y autenticación 3DS, puede crear un pedido enviando una solicitud INITIATE_AUTHENTICATION seguida de una solicitud AUTHENTICATE_PAYER con datos de Nivel II/III y proporcionando authentication.transactionId en la solicitud posterior de AUTHORIZE, PAY o VERIFY y los datos de Nivel II/III se completan a partir de la autenticación a la que se hace referencia.
Si proporcionó datos de Nivel II/III en la solicitud AUTHENTICATE_PAYER y luego proporciona authentic.transactionId en la solicitud posterior de AUTHORIZE, PAY o VERIFY, aún puede enviar los mismos o diferentes datos de Nivel II/III en su solicitud financiera para anular los datos de Nivel II/III proporcionados en la autenticación.
Los campos de Nivel II se admiten a partir de la versión 64 y los de Nivel III desde la versión 77 de la solicitud AUTHENTICATE_PAYER.
Referencia de la API de Authenticate Payer [REST][NVP]
Proporcionar datos de Nivel II/III sobre operaciones posteriores
Solo necesita proporcionar datos de Nivel II/III sobre las operaciones posteriores (Capture o Refund) cuando desee:
- anular los datos que proporcionó para el pedido
Puede anular los datos de Nivel II/III para el pedido proporcionando los datos al nivel del pedido. Esto puede resultar adecuado para corregir información proporcionada al crear el pedido. Luego, la información actualizada se aplicará a todas las transacciones posteriores del pedido. Por ejemplo,
order.customerReferenceSolo se pueden anular los campos de nivel de pedido presentes en la solicitud de transacción. Por ejemplo, se puede proporcionar elorder.amounten una solicitud de transacción Authorize, pero no en una solicitud de transacción Capture posterior.Vea la columna Campo de nivel de pedido en las tablas de Nivel II/III a continuación.
- proporcionar datos que solo se aplican a la transacción
Puede proporcionar datos de Nivel II/III que solo se apliquen a la transacción específica. Por ejemplo,
transaction.taxAmountVea la columna Campo de nivel de transacción en las tablas de Nivel II/III a continuación.
- realizar transacciones Capture o Refund donde el monto de la transacción difiere del monto del pedido. En estos casos, debe proporcionar datos de Nivel II/III sobre la transacción, como montos o detalles del artículo de línea, ya que estos no pueden provenir por defecto del pedido.
Envío de datos de Nivel II/III a su adquirente
Cuando el motor de pagos envía datos de Nivel II/III a su adquirente, los valores proporcionados en la transacción tienen prioridad sobre los valores proporcionados en el nivel de pedido. Si no proporciona valores en la transacción, el motor de pagos utilizará los valores proporcionados en el nivel de pedido para enviarlos al adquirente, solo cuando corresponda.
Para proporcionar los siguientes datos de Nivel II en su solicitud de transacción, utilice los campos correspondientes de nivel de pedido y/o de nivel de transacción de DirectAPI, como se muestra en la siguiente tabla.
| Datos de Nivel II | Campo de nivel de pedido | Campo de nivel de transacción |
|---|---|---|
| Fecha de pedido del cliente | order.customerOrderDate |
|
| Monto del pedido (el monto que se autorizará, enviado al crear un pedido) | order.amountSi proporciona cualquiera de los montos subtotales ( order.itemAmount, order.shippingAndHandlingAmount, order.taxAmount, order.gratuityAmount, order.cashbackAmount), order.discount.amount entonces el monto del pedido DEBE ser igual a la suma de los montos subtotales menos el monto del descuento. |
|
| Monto del artículo | order.itemAmountSi no proporciona este campo, pero proporciona cualquier dato de artículo de línea, entonces este monto se calcula como la suma de los montos totales de artículos ( order.item[n].unitPrice por order.item[n].quantity) para todos los artículos de línea. Si proporciona tanto este campo como cualquier dato de artículo de línea, entonces el valor en este campo DEBE igualar el valor calculado.Si los decimales del valor calculado exceden las unidades menores de la moneda del pagador; el motor de pagos redondeará el total usando el algoritmo "redondear la mitad al par". Por ejemplo, si 2.555 (cantidad) multiplicado por 3 (precio unitario) da un total de 7.665, y si la moneda del pagador (USD) tiene 2 unidades menores, entonces el monto del artículo redondeado será igual a 7.66. Asegúrese de aplicar este redondeo cuando proporcione el campo de monto del artículo en la solicitud. |
transaction.itemAmount |
| Monto de transporte y envío | order.shippingAndHandlingAmountEl monto total de transporte y envío de la transacción, incluidos los impuestos aplicables. |
transaction.shippingAndHandlingAmount |
| Monto del impuesto de transporte y envío | order.shippingAndHandlingTaxAmountEste campo es compatible con la versión 67 y superiores. El monto del impuesto gravado sobre el monto de transporte y envío de la transacción. Este monto está incluido en el monto de transporte y envío proporcionado en el campo order.shippingAndHandlingTaxAmount.
|
transaction.shippingAndHandlingTaxAmount |
| Tasa de impuesto de transporte y envío | order.shippingAndHandlingTaxRateEste campo es compatible con la versión 67 y superiores. La tasa de impuesto aplicada al monto de transporte y envío del pedido para determinar el monto del impuesto de transporte y envío. Para una tasa de impuesto del 2.5 %, indique 0.025. |
transaction.shippingAndHandlingTaxRate |
| Monto de derechos de aduana | order.dutyAmountEste campo es compatible con la versión 67 y superiores. El monto de derechos de aduana, también conocido como impuesto aduanero, arancel o gravamen, para la transacción. |
transaction.dutyAmount |
| Monto del impuesto | order.taxAmountSi no proporciona este campo, pero proporciona cualquier dato de artículo de línea, entonces este monto se calcula como la suma del monto del impuesto total ( order.item[n].unitTaxAmount por order.item[n].quantity) para todos los artículos de línea. Si proporciona tanto este campo como cualquier dato de artículo de línea, entonces el valor en este campo DEBE igualar el valor calculado.Si los decimales del valor calculado exceden las unidades menores de la moneda del pagador; el motor de pagos redondeará el total usando el algoritmo "redondear la mitad al par". Por ejemplo, si 2.555 (cantidad) multiplicado por 3 (precio unitario) da un total de 7.665, y si la moneda del pagador (USD) tiene 2 unidades menores, entonces el monto del artículo redondeado será igual a 7.66. Asegúrese de aplicar este redondeo cuando proporcione el campo de monto del artículo en la solicitud. |
transaction.taxAmount |
| Tipo de impuesto [n] | order.tax[n].typePuede que deba enviar el valor de enumeración correcto, según lo requiera su adquirente. Póngase en contacto con your payment service provider para obtener más detalles. |
transaction.tax[n].typePuede que deba enviar el valor de enumeración correcto, según lo requiera su adquirente. Póngase en contacto con your payment service provider para obtener más detalles. |
| Monto de impuesto [n] | order.tax[n].amount |
transaction.tax[n].amount |
| Tasa de impuesto [n] | order.tax[n].rate |
transaction.tax[n].rate |
| Indicador de exención de impuestos | order.taxStatus |
transaction.taxStatus |
| Monto de descuento | order.discount.amount |
transaction.discountAmount |
| Referencia de compra del negocio | order.referenceSi no se proporciona, el motor de pagos utiliza el valor proporcionado en order.id (campo obligatorio). |
|
| Número de factura | order.invoiceNumber |
|
| Número de referencia de cliente/titular de la tarjeta | order.customerReference |
|
| Nombre del solicitante | order.requestorName |
|
| ID de registro de impuesto del negocio: federal/nacional | order.taxRegistrationId |
Si el suyo es un negocio de EE. UU., proporcione su ID tributario federal. Si el suyo es un negocio de Canadá, proporcione su cuenta HST (Impuesto a las ventas armonizado) con la Agencia Tributaria de Canadá. |
| ID de registro de impuesto del negocio: estatal/provincial/local | order.localTaxRegistrationId |
|
| Número de registro de IVA del cliente | customer.taxRegistrationId |
|
| Dirección del negocio: código postal | El valor configurado en su perfil de negocio se envía al adquirente. | |
| Dirección del negocio: estado/provincia | El valor configurado en su perfil de negocio se envía al adquirente. | |
| Código postal de dirección de origen | shipping.origin.postcodeZipSi no se proporciona, el valor configurado en su perfil de negocio puede enviarse al adquirente. |
|
| Calle de destino del envío | shipping.address.streetshipping.address.street2 |
|
| Ciudad de destino del envío | shipping.address.city |
|
| Estado/provincia de destino del envío | shipping.address.stateProvinceDebe proporcionar el código de subdivisión de país ISO 3166-2 de tres caracteres. Si el destino es un territorio de EE. UU., proporcione el código de país. Por ejemplo, GUM en los campos shipping.address.country y shipping.address.stateProvince. Proporcione este campo solo si todos los artículos incluidos en el pedido se envían a la misma ubicación. |
|
| País de destino del envío | shipping.address.countrySi el destino es un territorio de EE. UU., proporcione el código de país. Por ejemplo, GUM en los campos shipping.address.country y shipping.address.stateProvince. Proporcione este campo solo si todos los artículos incluidos en el pedido se envían a la misma ubicación.
|
|
| Código postal de destino del envío | shipping.address.postcodeZip |
|
| Nombre de la dirección de facturación | customer.firstNamecustomer.lastName |
|
| Calle 1 de dirección de facturación | billing.address.street |
|
| Calle 2 de dirección de facturación | billing.address.street2 |
|
| Ciudad de dirección de facturación | billing.address.city |
|
| Estado de dirección de facturación | billing.address.stateProvince |
|
| Código postal de dirección de facturación | billing.address.postcodeZip |
|
| País de dirección de facturación | billing.address.country |
|
Los datos de Nivel III incluyen los datos de Nivel II indicados anteriormente, más los datos del artículo de línea. Para proporcionar los siguientes datos de Nivel III en su solicitud de transacción, utilice los campos correspondientes de nivel de pedido (del grupo de parámetros de order.item[n]) y/o de nivel de transacción (del grupo de parámetros de transaction.item[n]) de DirectAPI, como se muestra en la siguiente tabla.
| Datos de Nivel III | Campo de nivel de pedido | Campo de nivel de transacción |
|---|---|---|
| ID tributario de negocio del artículo | El valor no se puede proporcionar en el nivel de artículo. Para todos los artículos, el valor proporcionado en el nivel de pedido en el campo order.taxRegistrationId se remitirá al adquirente. |
|
| Total de artículos | Si se requiere en el mensaje del adquirente, este monto se calcula como la suma de los montos totales de artículos (order.item[n].unitPrice por order.item[n].quantity) para todos los artículos de línea. |
|
| Unidad de medida del artículo | order.item[n].unitOfMeasurePuede que deba enviar el valor de enumeración correcto, según lo requiera su adquirente. Póngase en contacto con your payment service provider para obtener más detalles. |
transaction.item[n].unitOfMeasurePuede que deba enviar el valor de enumeración correcto, según lo requiera su adquirente. Póngase en contacto con your payment service provider para obtener más detalles. |
| Descripción del artículo | order.item[n].description |
transaction.item[n].description |
| Marca del artículo | order.item[n].brand |
transaction.item[n].brand |
| Categoría del artículo | order.item[n].category |
transaction.item[n].category |
| Categoría de industria del artículo | order.item[n].industryCategory |
transaction.item[n].industryCategory |
| Nombre del artículo | order.item[n].name |
transaction.item[n].name |
| SKU del artículo | order.item[n].sku |
transaction.item[n].sku |
| UNSPSC (código estándar de productos y servicios de las Naciones Unidas) del artículo | order.item[n].detail.unspsc |
transaction.item[n].detail.unspsc |
| UPC (código de producto universal) del artículo | order.item[n].detail.upc |
transaction.item[n].detail.upc |
| Código de mercancía del artículo | order.item[n].detail.commodityCode |
transaction.item[n].detail.commodityCode |
| Cantidad del artículo | order.item[n].quantityCuando una cantidad decimal se multiplica por montos ( order.item[n].unitPrice, order.item[n].unitTaxAmount, o bien order.item[n].unitDiscountAmount), y si los decimales del valor calculado exceden las unidades menores de la moneda del pagador; el motor de pagos redondeará el total usando el algoritmo "redondear la mitad al par". Por ejemplo, si 2.555 (cantidad) multiplicado por 3 (precio unitario) da un total de 7.665, y si la moneda del pagador (USD) tiene 2 unidades menores, entonces el monto del artículo redondeado será igual a 7.66. |
transaction.item[n].quantity |
| Precio unitario del artículo | order.item[n].unitPriceEste monto se multiplica por order.item[n].quantity para calcular el monto total de artículos para el artículo de línea. Si se proporciona order.itemAmount, entonces la suma del monto total de artículos para todos los artículos de línea DEBE igualar el valor de order.itemAmount.
|
transaction.item[n].unitPrice |
| Monto del impuesto del artículo | order.item[n].unitTaxAmountEste monto se multiplica por order.item[n].quantity para calcular el monto total del impuesto para el artículo de línea. Si se proporciona order.taxAmount, entonces la suma del monto total del impuesto para todos los artículos de línea DEBE igualar el valor de order.taxAmount.
|
transaction.item[n].unitTaxAmount |
| Tipo de impuesto del artículo | order.item[n].detail.unitTaxTypeUtilice este campo para proporcionar el tipo de impuesto cobrado para este artículo de línea, si solo es un tipo de impuesto único. |
transaction.item[n].detail.unitTaxType |
| Tasa de impuesto del artículo (porcentaje) | order.item[n].detail.unitTaxRateUtilice este campo para proporcionar la tasa de impuesto que se cobra para este artículo de línea, si solo es un tipo impositivo único. |
transaction.item[n].detail.unitTaxRate |
| Tipo de impuesto del artículo [n] | order.item[n].detail.tax[m].typeorder.item[n].detail.tax[m].amountorder.item[n].detail.tax[m].rateUtilice estos campos para proporcionar un desglose del monto del impuesto del pedido para el artículo de línea por tipo de impuesto. Esto se aplica si se cobra más de un tipo de impuesto para este artículo de línea. Si hay un solo tipo de impuesto, use order.item[n].detail.unitTaxType |
transaction.item[n].detail.tax[m].typetransaction.item[n].detail.tax[m].amounttransaction.item[n].detail.tax[m].rateUtilice estos campos para proporcionar un desglose del monto del impuesto de la transacción para el artículo de línea por tipo de impuesto. Esto se aplica si se cobra más de un tipo de impuesto para este artículo de línea. Si hay un solo tipo de impuesto, use transaction.item[n].detail.unitTaxType |
| Monto del impuesto del artículo [n] | ||
| Tasa de impuesto del artículo [n] (porcentaje) | ||
| Monto de descuento del artículo | order.item[n].unitDiscountAmountEste monto se multiplica por order.item[n].quantity para calcular el monto total del descuento para el artículo de línea. Si se proporciona order.discount.amount, entonces el valor de este campo DEBE igualar la suma del monto total del descuento para todos los artículos de línea. |
transaction.item[n].unitDiscountAmount |
| Tasa de descuento del artículo (porcentaje) | order.item[n].detail.unitDiscountRate |
transaction.item[n].detail.unitDiscountRate |