> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.thepennyinc.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.thepennyinc.com/_mcp/server.

# Currency Rules

Use `currency` to restrict the currency in which the merchant charges. Penny checks the purchase amount currency when one is present; otherwise it checks the base amount currency. It does not check both currencies with this rule.

**`Currency rule config`**

```json title="Currency rule config"
{
  "rule_type": "currency",
  "applicable_transaction_authorizations": ["debit"],
  "applicable_card_issuance_modes": ["managed"],
  "configuration": {
    "currency_rules": {
      "allowlist": ["USD", "CAD"]
    }
  }
}
```

`currency_rules` is required and accepts an `allowlist` or `denylist` array of ISO 4217 codes. An allowlist admits only the listed currencies; a denylist blocks the listed currencies and admits all others. A currency can't appear in both lists. If you set both, the denylist governs; see [Allowlists and denylists](/spend-controls#allowlists-and-denylists).

The base amount is always USD. A currency rule checks the currency the merchant charges in, which can differ from USD for purchases abroad.

This controls the transaction currency, not the amount or the merchant's location. Use [Transaction Amount Rules](/spend-controls/transaction-amount-rules) for currency-specific amount bounds.