Skip to the tool
MoveAheadPayments Toolbox

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

  1. Format field 4 as exactly twelve digits, zero-padded, in minor units: 12.34 becomes 000000001234.
  2. 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.
  3. Check the amount is not zero. Account-verification flows use a dedicated processing code on most networks, not a zero-amount purchase.
  4. 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.