Montos y monedas

El monto a cobrar puede tener algunos parámetros y condiciones adicionales que debemos teneren cuenta.

Montos decimales

Al momento de realizar la creación de una sesión de pago, Checkout utiliza la ISO 4217 para realizar validaciones y almacenamiento de los montos a pagar.

Si el dato es un monto monetario y contiene decimales, el valor indicado será redondeado en base a la ISO 4217 y posteriormente almacenado.

MonedaInputMonto almacenadoDescripción
USD576.12345576.12Dos Decimales, redondeo a la baja
USD576.9875576.99Dos Decimales, redondeo a la alta
CLP576.12345576Cero Decimales, redondeo a la baja
CLP576.9875577Cero Decimales, redondeo a la alta
COP576.12345576.12Dos Decimales, redondeo a la baja
COP576.9875576.99Dos Decimales, redondeo a la alta

Sesión de pago con dispersión

Para sesiones con dispersión, se debe tener cuidado con los decimales y la sumatoria de las transacciones a "dividir".

La suma de todas las transacciones debe coincidir con el monto total de la sesión de pago, para esto se realiza lo siguiente:

  1. Se redondea cada uno de los valores de la dispersión en base a ISO 4217.
  2. Se realiza una sumatoria de los valores anteriormente redondeados.
  3. Se compara la sumatoria de la dispersión con el payment.amount.total redondeado, si la suma es correcta, la sesión se creará con éxito.

Impuestos del monto

Los impuestos son los tributos que las personas o empresas deben pagar a alguna entidad u organización.

Dependiendo de la actividad sobre la que recaiga, se le aplica un impuesto u otro. Presentan variación en la cuantía que el interesado debe abonar. Esto se basa en la normativa que presente cada sistema tributario.

Checkout se soporta la definición de algunos de estos impuestos para que puedan ser incluidos en la sesión de pago.

El valor amount.taxes.[].kind representa el tipo de impuesto que está incluido en el pago, las opciones son:

KindTraducciónPaís
valueAddedTaxIVAGlobal
exciseDutyImpuestoGlobal
iceICEGlobal
airportTaxTasa aeroportuariaColombia y Ecuador
stateTaxIVU EstatalPuerto Rico
municipalTaxIVU MunicipalPuerto Rico
reducedStateTaxIVU ReducidoPuerto Rico

Estructura de los impuestos

Los taxes se pueden incluir dentro de la estructura amount en el atributo taxes que lleva un arreglo de objetos

Tax - Amount with Taxes

{
  "payment": {
    "amount": {
      "currency": "COP",
      "total": 10000,
      "taxes": [
        {
          "kind": "valueAddedTax",
          "amount": 1000,
          "base": 0
        },
        {
          "kind": "ice",
          "amount": 1500,
          "base": 0
        }
      ]
    }
  }
}

Detalles del monto

Los detalles del monto son datos adicionales que comunmente puede tener un pago.

Se usa para dar más información acerca del cobro hecho y se pueden mostrar al usuario en el proceso de Checkout.

El valor amount.details.[].kind representa el tipo de detalle que está incluido en el pago, las opciones son:

KindTraducción
discountDescuento
additionalAdicional
vatDevolutionBaseBase devolución
shippingEnvío
handlingFeeCuota manejo
insuranceSeguro
giftWrapRegalo
subtotalSubtotal
feeCobro
tipPropina
airlineAerolínea
interestsIntereses

Estructura de los detalles

Los detalles del monto estan dentro de la estructura amount en el atributo details que lleva un arreglo de objetos

Ejemplo

Detail - Amount with Details

{
  "payment": {
    "amount": {
      "currency": "COP",
      "total": 10000,
      "details": [
        {
          "kind": "tip",
          "amount": 1000
        },
        {
          "kind": "interests",
          "amount": 1500
        }
      ]
    }
  }
}