## TL;DR

The agent billed the invoice in the wrong currency because it read the currency from the wrong field or defaulted silently: multi-currency invoices need an explicit currency validation step. Require the agent to extract the currency code, validate it as ISO 4217, cross-check it against the PO and vendor master, and route mismatches to human review before any billing action. Never let currency default silently.

```text
agent misread the currency on a multi-currency invoice: billed in the wrong currency
```

## Use this when

- An agent billed an invoice in the wrong currency
- Multi-currency invoices flow through the agent
- Currency is extracted but never validated

## Not for this skill when

- The exchange rate applied was wrong (FX problem, not currency identification)
- The customer was charged in the right currency but the wrong amount
- You are debugging OCR extraction quality generally

## Steps

1. Quarantine the misbilled invoice and confirm the correct currency from the source document.
   Expected: The error is confirmed and contained.
2. Add an explicit currency extraction step: the agent must output the ISO 4217 code it read.
   Expected: Currency is a first-class extracted field.
3. Validate the code against the ISO 4217 list and against the PO currency and vendor master currency.
   Expected: Mismatches are caught mechanically.
4. Route any mismatch or low-confidence extraction to human review before billing.
   Expected: No ambiguous currency reaches billing.
5. Correct the invoice and re-bill in the right currency.
   Expected: The customer is billed correctly.
6. Forbid silent currency defaults in the agent's instructions: missing currency must block, not guess.
   Expected: The default-guess path is closed.

## Tool compatibility

Invoice extraction pipelines and ERP billing; ISO 4217 currency codes; PO matching.

## Variant phrasings

### agent wrong currency invoice billing

The incident phrased directly.

### multi-currency invoice currency validation agent

The guardrail phrasing.

### invoice currency misread AP agent

The AP-operations angle.

## Why it happens

Currency symbols are ambiguous ($ spans dozens of currencies) and extraction models happily guess when uncertain, so a currency field read from a logo or a default locale can be confidently wrong. Because the amount looks plausible in any currency, nothing downstream complains: the invoice posts, the customer is billed, and the error surfaces as a payment dispute. Cross-checking the extracted code against the PO and vendor master turns a silent misread into a flagged exception. Per the persona brief, money-moving steps need guardrails: currency validation is one of the cheapest and highest-value ones.

## Edge cases / pitfalls

- Some invoices show amounts in two currencies (e.g. USD total with local-currency tax); the agent must know which one bills.
- Currency symbols in OCR output are unreliable; prefer the three-letter code when present.
- Human review threshold: any invoice where extracted, PO, and vendor currencies disagree goes to a person.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_F6cdB10rRlpmS00jfN73aQ
