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

# Cash rounding methods supported by Centsless

> Centsless applies the correct rounding method per jurisdiction automatically. Learn how Swedish, symmetrical, and other rounding modes work and which states use each method.

Each enacted state mandates a specific rounding method, and in some cases gives the operator a choice between approved methods. Centsless applies the correct method automatically based on jurisdiction resolution — you do not select a method at integration time. The `cash_rounding_mode` field in every transaction response tells you which method was applied.

## Rounding methods

### `swedish_rounding`

Rounds the transaction total to the nearest 5 cents using the Swedish rounding algorithm:

| Cents ending | Direction  | Result     |
| ------------ | ---------- | ---------- |
| 0            | No change  | Stays at 0 |
| 1, 2         | Round down | → 0        |
| 3, 4         | Round up   | → 5        |
| 5            | No change  | Stays at 5 |
| 6, 7         | Round down | → 5        |
| 8, 9         | Round up   | → 10       |

**Mandated by:** Arizona HB 2938 (mandatory for all retail cash transactions)

### `symmetrical_rounding`

Rounds 0–2 cents down, 3–7 cents to the nearest nickel, and 8–9 cents up. This method is designed to be revenue-neutral over a high volume of transactions.

**Used in:** Tennessee HB 1744 (voluntary safe harbor), Washington SHB 2334 (permissive)

### `mandatory_round_down`

Always rounds the transaction total down to the nearest 5 cents, regardless of the trailing digit. This method always favors the customer.

### `mandatory_round_up`

Always rounds the transaction total up to the nearest 5 cents, regardless of the trailing digit. This method always favors the merchant.

### `nearest_nickel`

Rounds to the nearest nickel using standard rounding rules (round half up). This is a general-purpose method available for jurisdictions that specify nickel-based rounding without prescribing a directional rule.

### `none`

No rounding is applied. The ledger total is passed through unchanged as the cash total.

**Applied when:** payment method is `card`, `ebt`, or `mobile`; or when the transaction is in a state with no enacted legislation.

## Indiana operator choice

Indiana SB 243 is permissive: it gives the operator a choice of three approved rounding methods rather than mandating a single one. When the engine resolves a transaction to an Indiana jurisdiction, it applies the method your platform has configured for that merchant. Contact Centsless support to configure the method for your Indiana merchants.

## The `cash_rounding_mode` enum

The full set of values accepted by the API:

```
swedish_rounding
mandatory_round_down
mandatory_round_up
symmetrical_rounding
nearest_nickel
none
```

You can pass `cash_rounding_mode` explicitly in a transaction request to override jurisdiction resolution — for example, during integration testing. In production, omit the field and let the engine resolve it.

<Note>
  Card and EBT transactions always use `cash_rounding_mode: none` regardless of jurisdiction. This is enforced by the engine and cannot be overridden.
</Note>
