Preview de la compra
Cuando un comercio realiza una compra, los montos de ésta pueden ser modificados por varios motivos:
- Conversión de moneda (USD a Moneda local del país destino)
- tasas que debe pagar el cliente
- Impuestos
- etc.
Por ejemplo, en Argentina existen distintos impuestos que afectan el monto final y, como consecuencia, el comercio no puede mostrarle al cliente el monto real que le estará cobrando hasta no finalizar la compra.
Como solución, creamos un que le permite al comercio realizar una vista previa del monto que se le cobrará al cliente para que pueda informar previo a la ejecución de la compra.
En el siguiente ejemplo, se muestra la forma en que se sugiere que los comercios muestran el preview en Argentina.
Request
Para hacer uso del preview de la compra, se debe apuntar al siguiente endpoint:
GET https://api.stage.bamboopayment.com/v1/api/purchase/preview
En el encabezado, se debe configurar el parámetro Authorization
concatenando la palabra Basic
, un espacio y la Private Key del comercio.
Ejemplo del Response
{
"baseAmount": 100,
"currency": "USD",
"countryIso": "AR",
"paymentMediaId": 1,
"customer": {
"documentTypeId": 5,
"docNumber": "20222222223",
"state": "Buenos Aires",
"postalCode": "8512"
}
}
Donde:
Parámetro | Tipo | ¿Obligatorio? | Descripción |
---|---|---|---|
baseAmount | integer | Sí | Monto a pagar antes de impuestos. |
currency | string | Sí | Moneda del monto definido en baseAmount . |
countryIso | string | Sí | País en formato ISO 3166-2. |
paymentMediaId | string | No | Identificador del medio de pago. Este identificador lo puede obtener consultando la sección Medios de Pago por país en la documentación. |
customer | object | No* | Información del pagado. *Requerido para Argentina. |
customer.documentTypeId | string | No | Tipo de documento del pagador. |
customer.docNumber | string | No | Número de documento del pagador. |
customer.state | string | No* | Estado o Provincia del pagador. *Para Argentina, este campo es obligatorio y debe incluir su valor correspondiente utilizando la tabla mostrada en esta sección. |
customer.postalCode | string | No | Código Postal del pagador. |
Response
A continuación, mostramos un ejemplo de la respuesta a la petición mostrada previamente
Ejemplo del Response
{
"Response": {
"Success": true,
"Data": {
"Date": "2023-03-30T20:35:39.3139535+00:00",
"Currency": "ARS",
"ExchangeRate": {
"Value": 402.090000,
"FromCurrencyIsoCode": "USD",
"ToCurrencyIsoCode": "ARS",
"TypeCode": "Median",
"Date": "2023-03-29T19:00:00"
},
"TotalAmount": 58865.98,
"TaxDetails": [
{
"TaxCode": "AR-VAT-DIGITAL",
"TaxName": "VAT",
"TaxAmount": 9650.16,
"TaxPercentage": 20.0,
"ResponsableType": "Merchant"
},
{
"TaxCode": "AR-INGR-BRUTOS",
"TaxName": "II.BB",
"TaxAmount": 965.016,
"TaxPercentage": 2.0,
"ResponsableType": "Merchant"
}
],
"AmountDetails": [
{
"CurrencyCode": "ARS",
"AmountCategoryCode": "EfEx",
"Amount": 8041.8,
"Sign": "Debit",
"ResponsableType": "Buyer"
},
{
"CurrencyCode": "ARS",
"AmountCategoryCode": "Gross",
"Amount": 40209,
"Sign": "Debit",
"ResponsableType": "Buyer"
}
]
}
},
"Errors": null
}
Los parámetros en el response son los siguientes:
Parámetro | Tipo | Descripción |
---|---|---|
Success | boolean | Determina si el resultado de la operación fue exitoso. |
Data.Date | date | Fecha en la que se ejecutó el proceso. |
Data.Currency | string | Código ISO de la moneda del merchant. Es decir, la moneda destino en la conversión. |
Data.ExchangeRate.value | number | Monto de al que equivale la moneda origen en la moneda destino. |
Data.ExchangeRate.FromCurrencyIsoCode | string | Código ISO de la moneda origen. |
Data.ExchangeRate.ToCurrencyIsoCode | string | Código ISO de la moneda destino. |
Data.ExchangeRate.TypeCode | string | |
Data.ExchangeRate.Date | date | Fecha de la última actualización de la tasa de conversión. |
Data.TotalAmount | number | Monto total final de la compra en moneda local luego de aplicar los valores que la afecten (Impuestos, conversiones, etc.). |
Data.TaxDetails | object | Contiene el detalle de los impuestos que aplican a la transacción. |
Data.AmountDetails | object | Contiene el detalle de los subtotales de la transacción. |
Objeto TaxDetails
A continuación, explicamos los subparámetros del objeto TaxDetails
.
Parámetro | Tipo | Descripción |
---|---|---|
TaxCode | string | Código del impuesto definido por Bamboo Payment. |
TaxName | string | Nombre del impuesto que se aplica. |
TaxAmount | number | Valor total del impuesto. |
TaxPercentage | number | Porcentaje que corresponde al impuesto. |
ResponsibleType | string | Indica si el responsable del impuesto es el comercio (Merchant) o el pagador (Buyer). |
Nota
En el ejemplo del request, se especifican dos impuestos para Argentina: VAT correspondiente al IVA de Servicios DIgital e II.BB correspondiente al impuesto de Ingresos Brutos.
Objeto AmountDetails
A continuación, explicamos los subparámetros del objeto AmountDetails
.
Parámetro | Tipo | Descripción |
---|---|---|
CurrencyCode | string | Código ISO de la moneda del monto. |
AmountCategoryCode | string | Categoría del monto. |
Amount | number | Valor del monto. |
Sign | string | Indica si el monto es un movimiento débito o crédito. |
ResponsibleType | string | Indica si el responsable del impuesto es el comercio (Merchant) o el pagador (Buyer). |