fix(CMF): align result codes with ISO 8583:2023 and jPOS-CMF DocBook#682
Merged
fix(CMF): align result codes with ISO 8583:2023 and jPOS-CMF DocBook#682
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Aligns
org.jpos.rc.CMFwith ISO 8583:2023 (Annex D) and the original jPOS-CMF DocBook source (result_codes.xml).Added
NO_REASON_TO_DECLINECARDHOLDER_NOT_ACTIVECARDHOLDER_NOT_CONFIGUREDCARDHOLDER_EXPIREDORIGINAL_TRANSACTION_NOT_FOUNDUSAGE_LIMIT_REACHEDPREVIOUSLY_REVERSEDFURTHER_ACTIVITY_PREVENTS_REVERSALFURTHER_ACTIVITY_PREVENTS_VOIDORIGINAL_VOIDEDCARD_TOKENIZATION_NOT_SUPPORTEDNotes
1810(Invalid amount) was already absent; the correct code is1010(INVALID_AMOUNT), ISO 8583:2023 aligned.0885is superseded by ISO 8583:2023 code0085; applications using 0885 should migrate to 0085.