Decline code · Hard decline
Decline code 30: Format Error
The authorization message itself was structurally wrong: a missing field, a malformed value, or data that violates the ISO 8583 message specification. The issuer or network rejected the envelope before considering its contents. The card and customer were never actually evaluated.
Should you retry?
The identical message will fail every time, so retrying without a fix is pure waste. Once the format issue is corrected, submissions proceed normally. Prioritize the fix, because every code 30 is a sale lost to a bug rather than a decision.
Why code 30 happens
- A gateway or integration bug sent a required field missing, mis-typed, or over length.
- Character encoding problems corrupted field contents, common with names and addresses containing non-ASCII characters.
- A processor-side specification change was not matched by an update on your integration.
- A field valid for one card network was sent to another with different format rules.
- Track data or 3DS fields were populated incorrectly for the transaction type.
What to do about it
- Pull the raw request and response from your gateway logs and identify the offending field; format errors are deterministic and reproducible.
- Check for recent deployments or processor specification updates that coincide with the onset of the errors.
- Test whether the error follows a card network, a card type, or specific customer data such as accented characters in the name.
- Open a ticket with your processor including the retrieval reference number so they can locate the rejected message on their side.
Frequently asked questions
- What causes a format error decline code 30?
- The authorization message violated the expected message structure: missing, malformed, or oversized fields. It is an integration bug between the merchant, gateway, or processor, not a card problem. The fix happens in code and configuration.
- Why do only some transactions hit code 30?
- The malformed field is usually populated conditionally. Special characters in cardholder names, specific card networks, 3DS data, or particular transaction types can each introduce the bad field only on a subset of traffic.
Related decline codes