Montos
Los montos representan valores monetarios y son fundamentales para cada operación de Open Payments. Ya sea que esté creando un pago entrante, solicitando una cotización o rastreando el progreso de un pago, cada monto consta de tres componentes clave: un valor numérico value, un código de activo assetCode y una escala de activo assetScale. Comprender estos componentes es crucial para desarrollar aplicaciones de Open Payments.
Valores
Sección titulada «Valores»Para maximizar la precisión y evitar errores de redondeo en los cálculos financieros, Open Payments utiliza tipos de datos numéricos sin decimales para representar valores. En el contexto de los lenguajes de programación, esto significa que Open Payments emplea números enteros sin signo de 64 bits para los montos monetarios, en lugar de números de punto flotante.
Un ejemplo de valor es el número 10000.
Códigos de activo
Sección titulada «Códigos de activo»Los códigos de activo identifican el tipo de moneda o activo que se utiliza en un pago y deben seguir la norma ISO 4217 para la representación de monedas.
Un ejemplo de assetCode ISO 4217 es USD, que representa el dólar estadounidense.
Escalas de activo
Sección titulada «Escalas de activo»Una escala de activo indica la cantidad de posiciones decimales que utiliza una moneda. Es como especificar si se está contando en dólares, céntimos o unidades más pequeñas.
Las escalas de activo son números entre 0 y 255 que señalan la precisión decimal.
En el caso de USD con una assetScale de 2, el monto a mostrar de $100.00 se almacena y representa como 10000 céntimos.
Así, la fórmula de conversión es la siguiente:
Utilizando el ejemplo anterior, la fórmula se ve así:
Ejemplos por moneda
Sección titulada «Ejemplos por moneda»| Moneda | Código de activo | Escala de activo | Monto entero | Valor existente |
|---|---|---|---|---|
| Dólar estadounidense | USD | 2 | 10000 | $100,00 |
| Euro | EUR | 2 | 2550 | €25,50 |
| Libra esterlina | GBP | 2 | 3250 | £32,50 |
| Yen japonés | JPY | 0 | 1000 | ¥1000 |
| Pesos mexicanos | MXN | 2 | 18500 | $185,00 |
| Dinar jordano | JOD | 3 | 1000 | د.ا1000 |
| Rand sudafricano | ZAR | 2 | 1500 | R15,00 |
Montos en Open Payments
Sección titulada «Montos en Open Payments»Utilizando los tres componentes necesarios de value, assetCode y assetScale, USD 100 se representarían en Open Payments usando la siguiente estructura:
{ "value": "10000", "assetCode": "USD", "assetScale": 2}Esta estructura consistente posibilita pagos en múltiples monedas, cálculos precisos y una integración fluida entre diferentes ASE Entidad que administra la cuenta .