Skip to content

fix(CMF): align result codes with ISO 8583:2023 and jPOS-CMF DocBook#682

Merged
ar merged 4 commits intomainfrom
fix/cmf-result-codes-alignment
Mar 27, 2026
Merged

fix(CMF): align result codes with ISO 8583:2023 and jPOS-CMF DocBook#682
ar merged 4 commits intomainfrom
fix/cmf-result-codes-alignment

Conversation

@ar-agt
Copy link
Copy Markdown
Collaborator

@ar-agt ar-agt commented Mar 27, 2026

Summary

Aligns org.jpos.rc.CMF with ISO 8583:2023 (Annex D) and the original jPOS-CMF DocBook source (result_codes.xml).

Added

Code Name Source
0085 NO_REASON_TO_DECLINE ISO 8583:2023 (replaces private-use 0885)
1813 CARDHOLDER_NOT_ACTIVE jPOS-CMF DocBook
1814 CARDHOLDER_NOT_CONFIGURED jPOS-CMF DocBook
1815 CARDHOLDER_EXPIRED jPOS-CMF DocBook
1816 ORIGINAL_TRANSACTION_NOT_FOUND jPOS-CMF DocBook
1817 USAGE_LIMIT_REACHED jPOS-CMF DocBook
1824 PREVIOUSLY_REVERSED jPOS-CMF DocBook
1825 FURTHER_ACTIVITY_PREVENTS_REVERSAL jPOS-CMF DocBook
1826 FURTHER_ACTIVITY_PREVENTS_VOID jPOS-CMF DocBook
1827 ORIGINAL_VOIDED jPOS-CMF DocBook
1828 CARD_TOKENIZATION_NOT_SUPPORTED jPOS-CMF DocBook

Notes

  • 1810 (Invalid amount) was already absent; the correct code is 1010 (INVALID_AMOUNT), ISO 8583:2023 aligned.
  • 0885 is superseded by ISO 8583:2023 code 0085; applications using 0885 should migrate to 0085.

agt added 4 commits March 27, 2026 14:17
- Add 0085 NO_REASON_TO_DECLINE (ISO 8583:2023 code; replaces private 0885)
- Add 1813 CARDHOLDER_NOT_ACTIVE
- Add 1814 CARDHOLDER_NOT_CONFIGURED
- Add 1815 CARDHOLDER_EXPIRED
- Add 1816 ORIGINAL_TRANSACTION_NOT_FOUND
- Add 1817 USAGE_LIMIT_REACHED
- Add 1824 PREVIOUSLY_REVERSED
- Add 1825 FURTHER_ACTIVITY_PREVENTS_REVERSAL
- Add 1826 FURTHER_ACTIVITY_PREVENTS_VOID
- Add 1827 ORIGINAL_VOIDED
- Add 1828 CARD_TOKENIZATION_NOT_SUPPORTED

Note: 1810 (Invalid amount) was already absent from the enum; the correct
code is 1010 (INVALID_AMOUNT), which aligns with ISO 8583:2023.
Note: 0885 is superseded by ISO 8583:2023 code 0085 and should no longer
be used.
Add ISO 8583:2023 Denied Authorization codes 1067-1082:
- ADDITIONAL_AUTH_REQUIRED (1067)
- SURCHARGE_NOT_PERMITTED_FOR_CARD (1072)
- SURCHARGE_NOT_PERMITTED_BY_NETWORK (1073)
- EXCEEDS_PRE_AUTHORIZED_AMOUNT (1074)
- STOP_PAYMENT_SPECIFIC / ALL_MERCHANT / ACCOUNT (1075-1077)
- AML_REQUIREMENTS_NOT_MET (1078)
- EXCEEDS_WITHDRAWAL_LIMIT (1079)
- PIN_NOT_ALLOWED (1080)
- MESSAGE_NUMBER_OUT_OF_SEQUENCE (1081)
- ORIGINAL_TRANSACTION_DECLINED (1082)

Add ISO 8583:2023 Reversal result codes 4001-4021 and
Chargeback/retrieval codes 4501-4596 (as placeholders for upcoming use).

Add KEY_VERIFICATION_FAILED (8002) — network management.
Add INVALID_IIN (9126) — no such issuer / invalid IIN.
- 0007 NAME_FORMAT_ERROR
- 1500-1511 ICC/chip offline decision codes (11 entries)
- 2013-2023 Chargeback pick-up resolution codes (11 entries)
- 6005-6049 Retrieval/copy request reason codes (20 entries)
- 8100-8105 Key exchange/lifecycle management codes (6 entries)

CMF enum now covers all 277 ISO 8583:2023 defined action codes.
- Move 1067-1082 block before the ICC 1500-1511 block (correct order)
- Rename ICC section comment to include range: 1500-1511
- Add clear comment for CMF private-use range 1800-1833
- Remove stray blank lines between private-use entries
@ar ar merged commit 99a244f into main Mar 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants