> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maple.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# Dinero e importes

> Todo importe en la API es un entero en las unidades menores de la moneda. Sin decimales flotantes, sin sorpresas de redondeo.

Todo valor monetario en la Developer API es un **entero en las unidades menores de la moneda**: centavos en el caso de USD. No hay decimales ni importes de punto flotante en ninguna parte de la API.

```
450  =  $4.50      (USD, 2 minor-unit digits)
```

Esto es deliberado: representar el dinero con enteros evita los errores de redondeo de la aritmética de punto flotante, de modo que el total que usted lee es exactamente el total que se cobró al cliente.

## En los pedidos

En el recurso de pedido, todos los importes son enteros en centavos de USD, y `totals.currency` indica la moneda:

```json theme={null}
"totals": {
  "currency": "USD",
  "subtotal": 525,
  "tax": 42,
  "surcharge": 0,
  "tip": 0,
  "delivery_fee": 0,
  "delivery_tip": 0,
  "total": 567
}
```

Los artículos del pedido siguen la misma regla: `base_price` (por unidad, antes de modificadores), `tax` y el cambio de `price` de cada modificador son todos centavos enteros.

<Info>
  **Maple calcula los totales y son los oficiales.** `total` es igual a subtotal + tax + surcharge + tip + delivery
  fees. Usted nunca recalcula un precio visible para el cliente: lo lee. Consulte [Cómo funciona Maple](/es/developer-api/how-maple-works).
</Info>

## En los menús

Cuando publica un menú, los precios son un objeto `amount` que une el entero con su moneda:

```json theme={null}
{ "amount": { "amountMinor": 450, "currency": "USD" } }
```

`amountMinor` es el entero en la unidad más pequeña de la moneda, y `currency` es el código ISO‑4217 en mayúsculas (`USD`). Para USD son centavos: envíe centavos enteros y listo.

<Note>
  **El soporte multimoneda está en construcción.** Hoy la Developer API opera **solo en USD**: publique los menús en `USD`
  y los totales de los pedidos se devuelven en `USD`. El modelo del menú ya acepta importes que no son USD y perfiles por
  moneda (la colección `currencies` del menú, con dígitos de unidad menor y redondeo por moneda), pero la aplicación de
  precios multimoneda en el flujo de pedidos llegará pronto. Por ahora, desarrolle para USD.
</Note>

Como referencia, los dígitos de la unidad menor varían según la moneda; el modelo está preparado para manejarlo cuando llegue el soporte multimoneda:

| Moneda | Dígitos de unidad menor | `amountMinor` para 5 unidades |
| - | - | - |
| USD | 2 | `500` (\$5.00) |
| JPY | 0 | `5` (¥5) |
| KWD | 3 | `5000` (KD 5.000) |

## Redondeo

Como todos los importes son enteros, no hay redondeo en tránsito: el número que usted lee es exacto. El redondeo solo ocurre cuando Maple deriva un importe nuevo, como un descuento porcentual o una línea de impuesto. El valor predeterminado es el **redondeo bancario** (redondear la mitad al par), que evita el sesgo hacia arriba de redondear siempre `.5` hacia arriba.

Puede cambiarlo por moneda mediante el modo de redondeo del perfil de la moneda, pero el redondeo al par es el valor predeterminado: asúmalo cuando concilie los totales de su lado.

## Formato para mostrar

Para mostrar un importe, divídalo entre 10 elevado a los dígitos de unidad menor de la moneda:

```ts theme={null}
function format(amountMinor: number, currency: string, digits = 2): string {
  return new Intl.NumberFormat('en-US', { style: 'currency', currency }).format(amountMinor / 10 ** digits);
}

format(567, 'USD'); // "$5.67"
```

No fije la división entre 100 en el código si maneja monedas con otro exponente: obténgalo de la moneda.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.