ISO 8583 response code: 13
The amount field is malformed or outside what the issuer will accept. Nearly always a formatting fault: ISO 8583 amounts are fixed-length, zero-padded minor units with no decimal point.
Invalid amountHard decline
Retrying the same request will fail the same way.
What it means
Field 4 is twelve numeric digits expressing the transaction amount in the currency's minor unit, right-justified and zero-filled. There is no decimal separator, no sign and no thousands grouping — the currency code in field 49 determines where the decimal point notionally sits. A 13 says what arrived does not parse as such a value, or parses to something the issuer refuses, such as zero or an implausible maximum.
Common causes
- A decimal point or currency symbol left in the amount — 100.00 rather than 000000010000.
- The amount sent in major units instead of minor, so £100 arrives as 000000000100 (one pound) or £1 arrives as 000000000001 (one penny).
- Wrong padding or length: not zero-filled to twelve digits, or padded on the wrong side.
- A zero or negative amount, or an amount above a ceiling the issuer or scheme enforces.
- A currency with a different number of minor-unit digits — JPY has none, and several have three — being scaled as if it had two.
How to fix it
- Format field 4 as exactly twelve digits, zero-padded, in minor units: 12.34 becomes 000000001234.
- Derive the scale from the currency code in field 49 rather than hardcoding two decimal places. JPY at two decimals overstates every amount a hundredfold.
- Check the amount is not zero. Account-verification flows use a dedicated processing code on most networks, not a zero-amount purchase.
- Parse your outgoing message and read field 4 back as the parser sees it. Length faults in an earlier field are a frequent cause of an amount that looks correct in your code and arrives corrupted.
Tools that help
Frequently asked questions
- Does field 4 include a decimal point?
- No. It is twelve numeric characters in the currency's minor unit, zero-padded on the left. The currency code in field 49 tells the issuer how many of the trailing digits are fractional. Sending a decimal point is one of the most common causes of a 13.
- How do I handle currencies that are not two decimal places?
- Look the exponent up from the currency rather than assuming it. ISO 4217 assigns a minor unit of 0 to JPY and KRW, and 3 to several currencies including BHD and KWD. Multiplying every amount by 100 sends a hundred times too much for a zero-decimal currency and a tenth of the intended amount for a three-decimal one.