Montos y monedas
El monto a cobrar puede tener algunos parámetros y condiciones adicionales que debemos tener en 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.
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:
- Se redondea cada uno de los valores de la dispersión en base a ISO 4217.
- Se realiza una sumatoria de los valores anteriormente redondeados.
- Se compara la sumatoria de la dispersión con el
payment.amount.totalredondeado, 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 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:
Cuando se escribe erróneamente el kind o no existe en el listado de tipos de impuestos, el dato se ignora y el tax no se incluye dentro de la sesión de Checkout
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 comúnmente 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:
Cuando se escribe erróneamente el kind o no existe en el listado de tipos de detalles, el detail no se incluye dentro de la sesión de Checkout
Estructura de los detalles
Los detalles del monto están 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
}
]
}
}
}
No se permite el uso de impuestos o detalles en sesiones de pago parcial o dispersión, pues estos no se pueden dividir en diferentes transacciones