DE49 carries the numeric code, not the letter code — and the exponent decides how the amount reads. There's a converter below.
| Alpha | Numeric (DE49) | Exponent | Name |
|---|
First, DE49 holds the numeric code. The message says 392, not JPY; 840, not USD. Mixing the two up when mapping to an internal system produces wrong-currency bugs that typically surface only at reconciliation.
Second, amounts are integers in the currency's minor unit. DE4 has no decimal point. What 000000012345 means depends entirely on the currency: 123.45 in USD, 12,345 in JPY, 12.345 in KWD.
amount * 100. Send a ¥5,000 purchase that way and the field reads 500000 — with zero decimals that is ¥500,000, a hundred times too much, and it will authorize. The mirror case is just as bad: dividing a Kuwaiti dinar amount by 100 under-charges tenfold. Both failures are silent — no error, no validation trip, just a wrong number that reconciliation catches days later.Keep a currency → exponent table, drive every conversion off it, and never let a literal 100 appear next to an amount. Use the converter above to check your implementation against a known value.
DE5 (settlement amount), DE6 (cardholder billing amount) and the EMV tag 9F02 follow the same convention. On a cross-border transaction those three can each be in a different currency — check DE49, DE50 and DE51 respectively rather than assuming they match.