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.
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.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:
Cuando se escribe erroneamente 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 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:
Cuando se escribe erroneamente 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 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
}
]
}
}
}
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