NPCI UPI Error & Response Codes
Complete NPCI UPI error and response code reference (V 2.5) — 700+ codes across general, U-series, bank, mandate, validation, and dispute categories.
General Response Codes
| Code | Name | Message |
|---|---|---|
| 00 | SUCCESS | Approved or completed successfully |
| 01 | PENDING | Transaction is pending |
| 15 | ISSUER_NOT_LIVE | Issuer not live on UPI |
| 21 | NO_ACTION_TAKEN | No action taken (full reversal) |
| 32 | PARTIAL_REVERSAL | Partial reversal |
| 52 | INVALID_ACCOUNT | Invalid account – LRN passed in ARQC is wrong |
| 12 | INVALID_TXN | Invalid transaction – Transaction ID are wrong in ARQC |
| 59 | SUSPECTED_FRAUD | Suspected fraud, decline / transactions declined based on risk score by remitter |
| 96 | REVERSAL_FAILURE | Reversal failure |
U-Series: UPI Switch / System Codes
| Code | Name | Message |
|---|---|---|
| U01 | DUPLICATE_REQUEST | The request is duplicate |
| U02 | AMOUNT_CAP_EXCEEDED | Amount cap is exceeded |
| U03 | NET_DEBIT_CAP_EXCEEDED | Net debit cap is exceeded |
| U04 | REQUEST_NOT_FOUND | Request is not found |
| U05 | FORMATION_NOT_PROPER | Formation is not proper |
| U06 | TXN_ID_MISMATCH | Transaction ID is mismatched |
| U07 | VALIDATION_ERROR | Validation error |
| U08 | SYSTEM_EXCEPTION | System exception |
| U09 | REQAUTH_TIMEOUT | ReqAuth time out for pay |
| U10 | ILLEGAL_OPERATION | Illegal operation |
| U11 | CREDENTIALS_NOT_PRESENT | Credentials is not present |
| U12 | AMOUNT_CURRENCY_MISMATCH | Amount or currency mismatch |
| U13 | EXTERNAL_ERROR | External error |
| U14 | ENCRYPTION_ERROR | Encryption error |
| U15 | CHECKSUM_FAILED | Checksum failed |
| U16 | RISK_THRESHOLD_EXCEEDED | Risk threshold exceeded |
| U17 | PSP_NOT_REGISTERED | PSP is not registered |
| U18 | REQAUTH_ACK_NOT_RECEIVED | Request authorisation acknowledgement is not received |
| U19 | REQAUTH_DECLINED | Request authorisation is declined |
| U20 | REQAUTH_TIMEOUT | Request authorisation timeout |
| U21 | REQAUTH_NOT_FOUND | Request authorisation is not found |
| U22 | CM_REQUEST_DECLINED | CM request is declined |
| U23 | CM_REQUEST_TIMEOUT | CM request timeout |
| U24 | CM_ACK_NOT_RECEIVED | CM request acknowledgement is not received |
| U25 | CM_URL_NOT_FOUND | CM URL is not found |
| U26 | PSP_CREDIT_ACK_NOT_RECEIVED | PSP request credit pay acknowledgement is not received |
| U27 | NO_RESPONSE_FROM_PSP | No response from PSP |
| U28 | REMITTER_BANK_NOT_AVAILABLE | Remitter bank not available |
| U29 | ADDRESS_RESOLUTION_FAILED | Address resolution is failed |
| U30 | DEBIT_FAILED | Debit has been failed |
| U31 | CREDIT_FAILED | Credit has been failed |
| U32 | CREDIT_REVERT_FAILED | Credit revert has been failed |
| U33 | DEBIT_REVERT_FAILED | Debit revert has been failed |
| U34 | REVERTED | Reverted |
| U35 | RESPONSE_ALREADY_RECEIVED | Response is already been received |
| U36 | REQUEST_ALREADY_SENT | Request is already been sent |
| U37 | REVERSAL_SENT | Reversal has been sent |
| U38 | RESPONSE_ALREADY_SENT | Response is already been sent |
| U39 | TXN_ALREADY_FAILED | Transaction is already been failed |
| U40 | IMPS_PROCESSING_FAILED | IMPS processing failed in UPI |
| U41 | IMPS_SIGNED_OFF | IMPS is signed off |
| U42 | IMPS_TXN_ALREADY_PROCESSED | IMPS transaction is already been processed |
| U43 | IMPS_DECLINED | IMPS is declined |
| U44 | FORM_SIGNED_OFF | Form has been signed off |
| U45 | FORM_PROCESSING_FAILED | Form processing has been failed in UPI |
| U46 | REQUEST_CREDIT_NOT_FOUND | Request credit is not found |
| U47 | REQUEST_DEBIT_NOT_FOUND | Request debit is not found |
| U48 | TXN_ID_NOT_PRESENT | Transaction ID is not present |
| U49 | REQUEST_MSGID_NOT_PRESENT | Request message ID is not present |
| U50 | IFSC_NOT_PRESENT | IFSC is not present |
| U51 | REQUEST_REFUND_NOT_FOUND | Request refund is not found |
| U52 | PSP_ORGID_NOT_FOUND | PSP OrgId not found |
| U53 | PSP_DEBIT_ACK_NOT_RECEIVED | PSP request pay debit acknowledgement not received |
| U54 | CRED_BLOCK_MISMATCH | Transaction ID or amount in credential block does not match with that in ReqPay |
| U55 | ORGID_MISMATCH | Message integrity failed due to OrgId mismatch |
| U56 | NUM_PAYEES_DIFFERS | Number of payees differs from original request |
| U57 | PAYEE_AMOUNT_DIFFERS | Payee amount differs from original request |
| U58 | PAYER_AMOUNT_DIFFERS | Payer amount differs from original request |
| U59 | PAYEE_ADDRESS_DIFFERS | Payee address differs from original request |
| U60 | PAYER_ADDRESS_DIFFERS | Payer address differs from original request |
| U61 | PAYEE_INFO_DIFFERS | Payee info differs from original request |
| U62 | PAYER_INFO_DIFFERS | Payer info differs from original request |
| U63 | DEVICE_REG_FAILED | Device registration failed in UPI |
| U64 | DATA_TAG_INVALID | Data tag should contain 4 parts during device registration |
| U65 | CREDS_BLOCK_INVALID | Creds block should contain correct elements during device registration |
| U66 | DEVICE_FINGERPRINT_MISMATCH | Device fingerprint mismatch |
| U67 | DEBIT_TIMEOUT | Debit timeout |
| U68 | CREDIT_TIMEOUT | Credit timeout |
| U69 | COLLECT_EXPIRED | Collect expired |
| U70 | LATE_RESPONSE | Received late response |
| U71 | MERCHANT_CREDIT_NOT_SUPPORTED | Merchant credit not supported in IMPS |
| U72 | VAE_FAILED | VAE failed |
| U74 | PAYER_ACCOUNT_MISMATCH | Payer account mismatch |
| U75 | PAYEE_ACCOUNT_MISMATCH | Payee account mismatch |
| U76 | MBREG_FORMAT_NOT_SUPPORTED | Mobile banking registration format not supported by the issuer bank |
| U77 | MERCHANT_BLOCKED | Merchant blocked |
| U78 | BENEFICIARY_BANK_OFFLINE | Beneficiary bank offline |
| U79 | UIDAI_FAILURE | UIDAI failure |
| U80 | UIDAI_TIMEOUT | UIDAI timeout |
| U81 | UIDAI_INVALID_FORMAT | UIDAI auth res invalid / format error |
| U82 | READ_TIMEOUT_CREDIT | Read timeout in ReqPay credit |
| U83 | ACCTYPE_NOT_SUPPORTED | AccType is not supported (OD) |
| U84 | BENEFICIARY_DEEMED_DECLINE | Beneficiary bank deemed check decline |
| U85 | CONN_TIMEOUT_DEBIT | Connection timeout in ReqPay debit |
| U86 | REMITTER_THROTTLING_DECLINE | Remitter bank throttling decline |
| U87 | READ_TIMEOUT_DEBIT | Read timeout in ReqPay debit |
| U88 | CONN_TIMEOUT_CREDIT | Connection timeout in ReqPay credit |
| U89 | BENEFICIARY_THROTTLING_DECLINE | Beneficiary bank throttling decline |
| U90 | REMITTER_DEEMED_HIGH_RT | Remitter bank deemed high response time check decline |
| U91 | BENEFICIARY_DEEMED_HIGH_RT | Beneficiary bank deemed high response time check decline |
| U92 | PAYER_PSP_NOT_AVAILABLE | Payer PSP not available |
| U93 | PAYEE_PSP_NOT_AVAILABLE | Payee PSP not available |
| U94 | PAYEE_PSP_THROTTLE_DECLINE | Payee PSP throttle decline |
| U95 | PAYEE_VPA_DISABLED | Payee VPA Aadhaar or IIN VPA is disabled |
| U96 | PAYER_PAYEE_SAME | Payer and payee IFSC/ACNUM can't be same |
| U97 | NO_ACK_REQAUTHVALCUST | No Ack for ReqAuthValCust |
| U98 | NULL_ACK_REQAUTHVALCUST | Null Ack for ReqAuthValCust |
| U99 | NEG_ACK_REQAUTHVALCUST | Neg Ack for ReqAuthValCust |
Bank / Account / Transaction Codes (Alphabetical)
| Code | Name | Message |
|---|---|---|
| A0 | INVALID_DETAILS | Invalid details (mismatch between details in ListAccount and ReqOtp / No LK & AUA shared by remitter bank) |
| A20 | BLANK_INVALID_AADHAAR | Blank / invalid Aadhaar number |
| AE | ARQC_VALIDATION_ERROR | ARQC validation error |
| AJ | CARD_NOT_ACTIVE | Card is not active |
| AM | MPIN_NOT_SET | MPIN not set by customer |
| B1 | MOBILE_NUMBER_CHANGED | Registered mobile number linked to the account has been changed / removed |
| B2 | MULTIPLE_NAMES_LINKED | Account linked with multiple names |
| B3 | TXN_NOT_PERMITTED | Transaction not permitted to the account |
| B6 | PAYMENT_DETAILS_MISMATCH | Mismatch in payment details |
| B7 | CARD_MGMT_SYSTEM_DOWN | Bank card management system is down |
| BP | BALANCE_PRESENT | Balance present – transaction initiated with zero balance |
| BR | MOBILE_MULTIPLE_CUSTID | Mobile number registered with multiple customer IDs |
| BT | ACQUIRER_BENEFICIARY_TIMEOUT | Acquirer / beneficiary unavailable (timeout) |
| CA | COMPLIANCE_ERROR_ACQUIRER | Compliance error code for acquirer |
| CE | CRYPTO_ERROR | Crypto error – cred block is incorrect |
| CI | COMPLIANCE_ERROR_ISSUER | Compliance error code for issuer |
| CN | COUNTRY_CURRENCY_NOT_SUPPORTED | Country / currency not supported |
| CS | CREDIT_SUCCESS | Credit success |
| DF | DUPLICATE_RRN_BENEFICIARY | Duplicate RRN found in the transaction (beneficiary) |
| DT | DUPLICATE_RRN_REMITTER | Duplicate RRN found in the transaction (remitter) |
| DU | DUPLICATE_LRN | Duplicate LRN |
| FL | FIRST_TXN_LIMIT_EXCEEDED | First transaction limit exceeded |
| FP | FREEZE_PERIOD_FIRST_USER | Freeze period for first time user |
| GA | INVALID_MERCHANT_DETAILS | Invalid merchant details |
| GB | VOUCHER_DETAILS_MISMATCH | Original voucher details mismatch |
| GC | MCC_PURPOSE_MISMATCH | MCC and purpose code mismatch |
| GE | ARPC_GENERATION_ERROR | ARPC generation error |
| HS | HSM_DOWN_REMITTER | Banks HSM is down (remitter) |
| IA | DUPLICATE_BLOCKFUND | Duplicate blockfund for mandate request |
| IB | REVOKE_MANDATE_UNBLOCKED | Revoke mandate after the remitter unblocked the amount |
| IC | DEBIT_NOT_BLOCKED | Debit amount is not blocked for the customer |
| ID | DEBIT_GREATER_THAN_BLOCKED | Debit amount greater than blocked amount |
| IE | FUNDS_BLOCKED_FOR_MANDATE | Adequate funds not available in the account because funds have been blocked for mandate |
| IK | INVALID_KEY | Invalid key – keys passed in ARQC is wrong |
| IN | INTL_SERVICE_DISABLED | International service not activated / disabled |
| IR | INTERNAL_EXCEPTION_REMITTER | Unable to process due to internal exception at server / CBS / etc on remitter side |
| IV | INVALID_VERIFICATION_TOKEN | Invalid verification token |
| K1 | RISK_SCORE_DECLINE_REMITTER | Suspected fraud, decline / transactions declined based on risk score by remitter |
| KN | KYC_NOT_AVAILABLE | KYC not available |
| LC | CREDIT_POOL_FAILED | Unable to process credit from bank's pool / BGL account |
| LD | DEBIT_POOL_FAILED | Unable to process debit in bank's pool / BGL account |
| M16 | AI_MODEL_DECLINE | AI model decline |
| M2 | AMT_LIMIT_EXCEEDED | Amount is passed more than the limit amount (cumulative 2000 limit) |
| MB | MERGED_ACTIVITY_BENEFICIARY | Incorrect account details due to amalgamated / merged activity on beneficiary side |
| MD | MISMATCHING_DEVICE | Mismatching device – mismatch in details between ARQC and auth engine |
| MM | MANDATE_DECLINED_MERCHANT | Mandate request is declined by merchant (payee) |
| MQ7 | MCC_NOT_MAPPED | MCC code not mapped with purpose |
| MR | MERGED_ACTIVITY_REMITTER | Incorrect account details due to amalgamated / merged activity on remitter side |
| NC | CREDIT_NOT_DONE | Credit not done |
| ND | DEBIT_NOT_DONE | Debit not done |
| NO | NO_ORIGINAL_REQUEST | No original request found during debit / credit |
| NU | UNABLE_TO_NOTIFY | Unable to notify the customer |
| OC | ORIGINAL_CREDIT_NOT_FOUND | Original credit not found |
| OD | ORIGINAL_DEBIT_NOT_FOUND | Original debit not found |
| PA | INVALID_PAN | Invalid PAN details |
| PE | PAYMENT_VALIDITY_EXPIRED | Payment validity expired |
| PQ | QR_TAMPERED | QR tampered |
| PS | MAX_BALANCE_EXCEEDED | Maximum balance exceeded as set by beneficiary bank |
| QU | PAYER_ACCOUNT_CHANGED | Payer account has changed (payer) |
| RA | PAYER_PAYEE_SAME | Payer and payee account should not be equal |
| RB | CREDIT_REVERSAL_TIMEOUT | Credit reversal timeout (reversal) |
| RD | REQUEST_DECLINED | Request decline by the bank |
| RM | INVALID_MPIN_POLICY | Invalid MPIN (violation of policies while setting / changing MPIN) |
| RN | REG_TEMP_BLOCKED | Registration is temporary blocked due to maximum no of attempts exceeded |
| RP | PARTIAL_DEBIT_REVERSAL_TIMEOUT | Partial debit reversal timeout |
| RR | DEBIT_REVERSAL_TIMEOUT | Debit reversal timeout (reversal) |
| RZ | ACCOUNT_ALREADY_REGISTERED | Account is already registered with MBEBA flag as 'Y' |
| SA | TXN_NOT_PERMITTED_ACTYPE | Transaction not permitted for this A/C type (OD / CC / PPI) |
| SD | SERVICE_DISABLED | Service disable on UPI / customer is not active |
| SP | INVALID_ATM_PIN | Invalid / incorrect ATM PIN |
| TM | COLLECT_DECLINED_BLOCKED | Collect request is declined as requestor is blocked by customer |
| UA | PSP_NOT_SUPPORTED | PSP not supported by UPI |
| UB | INTERNAL_EXCEPTION_BENEFICIARY | Unable to process due to internal exception at server / CBS / etc on beneficiary side |
| UP | PSP_TIMEOUT | PSP time-out |
| UT | REMITTER_ISSUER_TIMEOUT | Remitter / issuer unavailable (timeout) |
| UW | TRAN_AMT_EXCEEDS_LIMIT | Amount passed in ReqPay is more than the MCB balance |
| UX | EXPIRED_VIRTUAL_ADDRESS | Expired virtual address |
| VN | VAE_NOT_EXIST | VAE does not exist |
| X1 | RESPONSE_NOT_WITHIN_TAT | Response not received within TAT as set by payee |
| X6 | INVALID_MERCHANT_ACQUIRER | Invalid merchant (acquirer) |
| X7 | MERCHANT_NOT_REACHABLE | Merchant not reachable (acquirer) |
Q-Series: Mandate Codes (Payer Side)
| Code | Name | Message |
|---|---|---|
| QA | MANDATE_PAUSED_USER | Mandate is paused by user |
| QB | MANDATE_ALREADY_HONOURED | Mandate is already honoured |
| QC | MANDATE_REVOKED | Mandate has been revoked |
| QD | MANDATE_EXPIRED | Mandate has expired |
| QH | TXN_AMOUNT_DIFFERS_MANDATE | Txn amount differs from mandate amount |
| QI | PAYEE_VPA_INCORRECT_PAYER | Payee VPA is incorrect (payer) |
| QJ | UMN_NOT_EXIST_PAYER | UMN does not exist (payer) |
| QK | MANDATE_REQUEST_LIMIT_BREACHED | Mandate request limit has breached |
| QL | MANDATE_DEBIT_BEYOND_CAP | Mandate debit is beyond PSP specified amount cap |
| QM | PAYER_VPA_INCORRECT_PAYER | Payer VPA is incorrect (payer) |
| QN | DUPLICATE_MANDATE_REQUEST | Duplicate mandate request |
| QO | MANDATE_NON_REVOKEABLE | This mandate is non revokeable |
| QP | PAYER_MANDATE_NO_PAYEE_MODIFY | Payer initiated mandate cannot be modified by payee |
| MANDATE_NOT_ALLOWED_VPA_PAYER | Mandate cannot be created on this VPA (payer) | |
| QR | EXECUTION_RULE_MISMATCH_PAYER | Execution day and execution rule mismatch (payer) |
| QS | PAYER_PROFILE_NOT_EXIST | Payer profile does not exist (de registration / VPA removed / updated) |
| QT | MANDATE_MODIFY_DECLINED_PAYER | Mandate modify request is declined (payer) |
| QV | MANDATE_DECLINED_NON_MERCHANT_PAYER | Mandate declined as payee is non-merchant (payer) |
| QW | UMN_NOT_EXIST_PAYEE | UMN does not exist (payee) |
| QX | PAYER_VPA_INCORRECT_PAYEE | Payer VPA is incorrect (payee) |
| QY | PAYEE_MANDATE_NO_PAYER_MODIFY | Payee initiated mandate cannot be modified by payer |
| QZ | MANDATE_MODIFY_DECLINED_MERCHANT | Mandate modification declined by merchant |
| Q1 | SEQNUM_MISMATCH_PAYER_PSP | SeqNum mismatch (payer PSP) |
| Q2 | RECURRENCE_MISMATCH_PAYER | Recurrence pattern and value mismatch (payer) |
| Q3 | PURPOSE14_BLOCKFUND_Y_PAYER | Purpose code=14, Block Fund=Y (block fund must be N always for SI/recurring mandate) (payer) |
| Q4 | PURPOSE14_REVOCABLE_N_PAYER | Purpose Code=14, Revocable=N (revokable tag must always be Y for SI/recurring mandate) (payer) |
| Q13 | PAYEE_AMOUNT_NOT_ALLOWED | Payee amount is not allowed only if txntype is not mandate notification |
| Q14 | PAYER_AMOUNT_NOT_ALLOWED | Payer amount is not allowed only if txntype is ValCust / MandateNotification |
V-Series: Mandate Codes (Remitter Side)
| Code | Name | Message |
|---|---|---|
| VA | MANDATE_REVOKED_REMITTER | Mandate has been revoked |
| VB | INCORRECT_RECURRENCE_PATTERN | Incorrect recurrence pattern |
| VC | INCORRECT_RECURRENCE_RULE | Incorrect recurrence pattern rule |
| VD | INCORRECT_AMOUNT_RULE | Incorrect amount rule |
| VE | MANDATE_ALREADY_HONOURED_REMITTER | Mandate is already honoured |
| VF | UMN_NOT_EXIST_REMITTER | UMN does not exist (remitter) |
| VG | PAYER_VPA_INCORRECT_REMITTER | Payer VPA is incorrect (remitter) |
| VH | MANDATE_SIGNATURE_TAMPERED | Mandate signature is tampered or corrupt (remitter) |
| VI | EXECUTION_RULE_MISMATCH_REMITTER | Execution day and execution rule mismatch (remitter) |
| VJ | PAYER_ACCOUNT_CHANGED_REMITTER | Payer account has changed (remitter) |
| VK | MANDATE_COUNT_EXCEEDED | Number of mandates allowed on this account has exceeded issuer's limit |
| VL | MANDATE_REG_NOT_ALLOWED | Mandate registration not allowed for CC PF PPF ACT (bank's policy) |
| VM | NATURE_DEBIT_NOT_ALLOWED | Nature of debit not allowed in account type |
| VN | VAE_NOT_EXIST | VAE does not exist |
| VO | PAYMENT_STOPPED_COURT | Payment stopped by court order |
| VP | WITHDRAWAL_STOPPED_DEATH | Withdrawal stopped owing to death of account holder |
| VQ | WITHDRAWAL_STOPPED_INSOLVENCY | Withdrawal stopped owing to insolvency of account |
| VR | WITHDRAWAL_STOPPED_LUNACY | Withdrawal stopped owing to lunacy of account holder |
| VS | DUPLICATE_MANDATE_SAME_ITEM | Duplicate mandate request for same item |
| VT | MANDATE_PAUSED_REMITTER | Mandate is paused |
| VU | MANDATE_EXPIRED_REMITTER | Mandate has expired |
| VV | MANDATE_NOT_ALLOWED_VPA_PAYEE | Mandate cannot be created on this VPA (payee) |
| VW | MANDATE_MODIFY_DECLINED_PAYEE | Mandate modify request is declined (payee) |
| VX | MANDATE_DECLINED_NON_MERCHANT_PAYEE | Mandate declined as payee is non merchant (payee) |
| VY | PAYEE_VPA_INCORRECT_REMITTER | Payee VPA is incorrect (remitter) |
| VZ | PAYMENT_STOPPED_ATTACHMENT | Payment stopped by attachment order |
| V1 | SEQNUM_MISMATCH_REMITTER | SeqNum mismatch (remitter) |
| V2 | RECURRENCE_MISMATCH_REMITTER | Recurrence pattern and value mismatch (remitter) |
| V3 | PIN_CRED_MISSING_GT15K | PIN cred block is missing (txns > Rs 15000) |
| V4 | PIN_CRED_MISSING_LT15K_SEQ1 | PIN cred block is missing (txns < Rs 15000 and Seq No = 1) |
| V5 | PURPOSE14_BLOCKFUND_Y_REMITTER | Purpose code=14, Block Fund=Y (block fund must be N always for SI/recurring mandate) (remitter) |
| V6 | PURPOSE14_REVOCABLE_N_REMITTER | Purpose Code=14, Revocable=N (revokable tag must always be Y for SI/recurring mandate except for MCC 7322) (remitter) |
X-Series: Remitter / Beneficiary Validation Codes
| Code | Name | Message |
|---|---|---|
| XB | INVALID_TXN_REMITTER | Invalid transaction or if member is not able to find any appropriate response code (remitter) |
| XC | INVALID_TXN_BENEFICIARY | Invalid transaction or if member is not able to find any appropriate response code (beneficiary) |
| XD | INVALID_AMOUNT_REMITTER | Invalid amount (remitter) |
| XE | INVALID_AMOUNT_BENEFICIARY | Invalid amount (beneficiary) |
| XF | FORMAT_ERROR_REMITTER | Format error (invalid format) (remitter) |
| XG | FORMAT_ERROR_BENEFICIARY | Format error (invalid format) (beneficiary) |
| XH | ACCOUNT_NOT_EXIST_REMITTER | Account does not exist (remitter) |
| XI | ACCOUNT_NOT_EXIST_BENEFICIARY | Account does not exist (beneficiary) |
| XJ | FUNCTION_NOT_SUPPORTED_REMITTER | Requested function not supported (remitter) |
| XK | FUNCTION_NOT_SUPPORTED_BENEFICIARY | Requested function not supported (beneficiary) |
| XL | EXPIRED_CARD_REMITTER | Expired card, decline (remitter) |
| XM | EXPIRED_CARD_BENEFICIARY | Expired card, decline (beneficiary) |
| XN | NO_CARD_RECORD_REMITTER | No card record (remitter) |
| XO | NO_CARD_RECORD_BENEFICIARY | No card record (beneficiary) |
| XP | TXN_NOT_PERMITTED_CARD_REMITTER | Transaction not permitted to cardholder (remitter) |
| XQ | TXN_NOT_PERMITTED_CARD_BENEFICIARY | Transaction not permitted to cardholder (beneficiary) |
| XR | RESTRICTED_CARD_REMITTER | Restricted card, decline (remitter) |
| XS | RESTRICTED_CARD_BENEFICIARY | Restricted card, decline (beneficiary) |
| XT | CUTOFF_REMITTER | Cut-off is in process (remitter) |
| XU | CUTOFF_BENEFICIARY | Cut-off is in process (beneficiary) |
| XV | COMPLIANCE_VIOLATION_REMITTER | Transaction cannot be completed. Compliance violation (remitter) |
| XW | COMPLIANCE_VIOLATION_BENEFICIARY | Transaction cannot be completed. Compliance violation (beneficiary) |
| XX | NO_FINANCIAL_ADDRESS | No financial address record found |
| XY | REMITTER_CBS_OFFLINE | Remitter CBS offline |
Y-Series: Account / Honour Codes
| Code | Name | Message |
|---|---|---|
| Y1 | BENEFICIARY_CBS_OFFLINE | Beneficiary CBS offline |
| YA | LOST_STOLEN_CARD_REMITTER | Lost or stolen card (remitter) |
| YB | LOST_STOLEN_CARD_BENEFICIARY | Lost or stolen card (beneficiary) |
| YC | DO_NOT_HONOUR_REMITTER | Do not honour (remitter) |
| YD | DO_NOT_HONOUR_BENEFICIARY | Do not honour (beneficiary) |
| YE | REMITTER_ACCOUNT_BLOCKED | Remitting account blocked / frozen |
| YF | BENEFICIARY_ACCOUNT_BLOCKED | Beneficiary account blocked / frozen |
| YG | MERCHANT_ERROR_PAYEE_PSP | Merchant error (payee PSP) |
| YH | MERCHANT_ERROR_ACQUIRING | Merchant error (acquiring bank) |
| YI | INVALID_RESPONSE_CODE | Invalid response code |
Z-Series: Credential / Limit / Status Codes
| Code | Name | Message |
|---|---|---|
| Z5 | INVALID_BENEFICIARY_CREDS | Invalid beneficiary credentials |
| Z6 | PIN_TRIES_EXCEEDED | Number of PIN tries exceeded |
| Z7 | TXN_FREQ_LIMIT_EXCEEDED | Transaction frequency limit exceeded as set by remitting member |
| Z8 | PER_TXN_LIMIT_EXCEEDED | Per transaction limit exceeded as set by remitting member |
| Z9 | INSUFFICIENT_FUNDS | Insufficient funds in customer (remitter) account |
| ZA | TXN_DECLINED_BY_CUSTOMER | Transaction declined by customer |
| ZB | INVALID_MERCHANT_PAYEE_PSP | Invalid merchant (payee PSP) |
| ZC | ACQUIRER_BENEFICIARY_UNAVAILABLE | Acquirer / beneficiary unavailable |
| ZD | VALIDATION_ERROR | Validation error |
| ZE | TXN_NOT_PERMITTED_VPA | Transaction not permitted to VPA by the PSP |
| ZF | TXN_NOT_PERMITTED_DEVICE | Transaction not permitted to device |
| ZG | VPA_RESTRICTED_BY_CUSTOMER | VPA restricted by customer |
| ZH | INVALID_VIRTUAL_ADDRESS | Invalid virtual address |
| ZI | RISK_SCORE_DECLINE_BENEFICIARY | Suspected fraud, decline / transactions declined based on risk score by beneficiary |
| ZJ | BENEFICIARY_SWITCH_OFFLINE | Beneficiary or acquiring switch is inoperative / node offline |
| ZK | REMITTER_SWITCH_OFFLINE | Remitter switch is inoperative / node offline |
| ZL | LATE_RESPONSE | Received late response |
| ZM | INVALID_MPIN | Invalid MPIN |
| ZN | FUNCTIONALITY_NOT_AVAILABLE_MERCHANT | Functionality not yet available for merchant through the acquiring bank |
| ZO | FUNCTIONALITY_NOT_AVAILABLE_CUSTOMER | Functionality not yet available for customer through the payee PSP |
| ZP | BANK_NOT_LIVE_TXN_TYPE | Banks as beneficiary not live on particular txn type |
| ZQ | UNABLE_TO_PROCESS_REVERSAL | Unable to process reversal |
| ZR | INVALID_OTP | Invalid OTP |
| ZS | OTP_EXPIRED | OTP expired |
| ZT | OTP_TXN_LIMIT_EXCEEDED | OTP transaction limit exceeded |
| ZU | LIMIT_EXCEEDED_REMITTER | Limit exceeded for remitting bank / issuing bank |
| ZV | INCORRECT_OTP | Incorrect OTP |
| ZX | INACTIVE_DORMANT_REMITTER | Inactive or dormant account (remitter) |
| ZY | INACTIVE_DORMANT_BENEFICIARY | Inactive or dormant account (beneficiary) |
S-Series: Spam / Throttle Codes
| Code | Name | Message |
|---|---|---|
| S0 | SPAM_COLLECT_DECLINED | Spam collect declined by PSP |
| S1 | PAYEE_SPAM_RULE_1 | Payee is reported as spam under rule 1 |
| S2 | PAYEE_SPAM_RULE_2 | Payee is reported as spam under rule 2 |
| S3 | PAYEE_SPAM_RULE_3 | Payee is reported as spam under rule 3 |
| S93 | PAYEE_PSP_THROTTLE_OUTGOING | Payee PSP throttle decline outgoing count |
| S94 | PAYEE_PSP_THROTTLE_RT | Payee PSP throttle decline response time |
| S95 | BENEFICIARY_DISPATCH_FAILED | Beneficiary dispatch failed |
| S96 | REMITTER_DISPATCH_FAILED | Remitter dispatch failed |
| S97 | ADDR_RESLN_DISPATCH_FAILED | Add resolution dispatch failed |
| S98 | ISSUER_DISPATCH_FAILED | Issuer dispatch failed |
| S99 | GRACEFUL_DECLINE | Graceful decline |
CC-Series: Credit Card Codes
| Code | Name | Message |
|---|---|---|
| CC1 | CC_BIN_MISMATCH | Credit card bin mismatch |
| CC2 | BOTH_CC_ACCOUNT | Both payer payee account is credit card |
| CC3 | ICCW_NOT_ALLOWED_CC | ICCW transaction are not allowed for payer account type credit card |
| CC4 | ERUPI_NOT_ALLOWED_CC | ERUPI transaction is not allowed for payer account type credit card |
| CC5 | FIR_NOT_ALLOWED_CC | FIR not allowed for payee / beneficiary account type credit card |
| CC6 | PAN_VALIDATION_NOT_ALLOWED_CC | PAN validation not allowed for account type credit card |
| CC7 | AADHAAR_OTP_NOT_ALLOWED_CC | Aadhaar OTP mode of PIN set not allowed for customer account type credit card |
| CC8 | MERCHANT_ATTR_MISSING_CC | Merchant mandatory attributes not present account type credit card |
Header Validation Codes (H/HM/HV)
| Code | Name | Message |
|---|---|---|
| H02 | HEADER_VER_INVALID | Ver numeric / decimal min length 1 max length 6 |
| H03 | HEADER_TS_INVALID | TS must be ISO_ZONE format |
| H06 | HEADER_MSGID_MISSING | MsgId must be present maxlength 35 |
| HM1 | META_TAG_NAME_INVALID | Meta.tag.name must be present / valid |
| HM2 | META_TAG_VALUE_INVALID | Meta.tag.value must be ISO_ZONE format |
| HV0 | HEADER_NOT_PRESENT | Header must be present |
| HV1 | HEADER_VER_DIFFERS | Header ver differs from original request |
| HV2 | HEADER_TS_MISSING | Header TS must be present |
| HV3 | ORGID_DIFFERS | OrgId differs from original request |
| HV4 | HEADER_MSGID_DIFFERS | Header MsgId differs from original request |
Transaction Validation Codes (T-Series)
| Code | Name | Message |
|---|---|---|
| T01 | TXN_NOT_PRESENT | Txn not present |
| T02 | TXN_ID_MISSING | Txn.id must be present maxlength 35 |
| T03 | TXN_NOTE_INVALID | Txn.note alphanumeric; minlength 1 maxlength 50 |
| T04 | TXN_REFID_INVALID | Txn.refId alphanumeric; minlength 1 maxlength 35 |
| T05 | TXN_REFURL_INVALID | Txn.refUrl is URL; minlength 1 maxlength 35 |
| T06 | TXN_TS_INVALID | Txn.ts must be ISO_ZONE format |
| T07 | TXN_TYPE_INVALID | Txn.type must be present / valid |
| T08 | TXN_ORGTXNID_INVALID | Txn.orgTxnId must be present / valid; alphanumeric; minlength 1 maxlength 35 |
| T09 | TXN_ORGTNXID_INVALID | Txn.orgTnxId is alphanumeric; minlength 1 maxlength 35 |
| T11 | TXN_ORGRESPCD_MISSING | Txn.orgRespCd must be present alphanumeric minlength 1 maxlength 3 |
| T12 | TXN_CUSTREF_MISSING | Txn.custRef must be present; length 12 |
| T13 | TXN_SUBTYPE_MISSING | Txn.subType must be present |
| T14 | PURPOSE_MISSING | Purpose should be present valid value |
| T15 | TXN_PURPOSE_INVALID | Txn.purpose must be present / valid |
| T16 | SUBTYPE_MANDATE_UMN | If subtype = mandate, then UMN is mandatory |
| T17 | TXN_TYPE_DIFFERS | Txn.type differs from original request |
| T20 | PAYER_INSTITUTION_NOT_ALLOWED | Payer.institution should not be present |
| T27 | UUID_INVALID | UUID must be valid, alphanumeric, length must be either 32 or 36 before '@' |
| T28 | MANDATE_VOUCHER_AMOUNT_EXCEEDED | Mandate voucher amount should not exceed |
| T30 | PURPOSE_INITIATION_INVALID | Purpose code should be '19' & InitiationMode '11 |
Initiation Mode Codes (IM-Series)
| Code | Name | Message |
|---|---|---|
| IM0 | INITIATIONMODE_MISSING | InitiationMode should be present and value (00-24) |
| IM1 | FIR_NOT_VALID_COLLECT | InitiationMode=12 (FIR) not valid for collect |
| IM2 | FIR_NON_PREAPPROVED | InitiationMode=12 (FIR) non-preapproved transaction is not allowed |
| IM3 | CRED_BLOCK_MANDATE | Cred block should be UPIMandate or preapproved if InitiationMode=11 |
| IM4 | UPI2_FIR_ONLY | UPI 2.0 is allowing FIR only |
| IM5 | PAYEE_PSP_NO_V2 | Payee PSP does not support version 2.0 |
| IM6 | BANK_PSP_NO_V2 | Bank / PSP is not supporting version 2.0 |
Payer Validation Codes (R/P-Series)
| Code | Name | Message |
|---|---|---|
| R01 | PAYER_NOT_PRESENT | Payer not present |
| R02 | PAYER_ADDR_INVALID | Payer.addr must be valid VPA maxlength 255 |
| R03 | PAYER_NAME_INVALID | Payer.name alphanumeric minlength 1 maxlength 99 |
| R04 | PAYER_SEQNUM_INVALID | Payer.seqNum numeric minlength 1 maxlength 3 |
| R05 | PAYER_TYPE_INVALID | Payer.type must be present / valid |
| R06 | PAYER_CODE_INVALID | Payer.code numeric of length 4 |
| P01 | PAYER_NOT_PRESENT_P | Payer not present |
| P02 | PAYER_ADDR_INVALID_P | Payer.addr must be valid VPA maxlength 255 |
| P03 | PAYER_NAME_INVALID_P | Payer.name alphanumeric minlength 1 maxlength 99 |
| P04 | PAYER_SEQNUM_INVALID_P | Payer.seqNum numeric minlength 1 maxlength 3 |
| P05 | PAYER_TYPE_INVALID_P | Payer.type must be present / valid |
| P06 | PAYER_CODE_INVALID_P | Payer.code numeric of length 4 |
| P07 | PAYER_BAL_MISSING | Payer.bal must be present |
| P08 | PAYER_BAL_DATA_MISSING | Payer.bal.data must be present |
| P09 | PAYER_AADHAARCONSENT_MISSING | Payer.aadhaarConsent must be present |
| PT1 | PTYPE_UPIMANDATE | PType tag value should be UPIMandate |
Payee Validation Codes (B0x/J-Series)
| Code | Name | Message |
|---|---|---|
| B01 | PAYEES_NOT_PRESENT | Payees not present |
| B02 | PAYEE_NOT_PRESENT | Payee not present |
| B03 | PAYEE_ADDR_INVALID | Payee.addr must be valid VPA maxlength 255 |
| B04 | PAYEE_SEQNUM_INVALID | Payee.seqNum numeric minlength 1 maxlength 3 |
| B05 | PAYEE_NAME_INVALID | Payee.name alphanumeric minlength 1 maxlength 99 |
| B06 | PAYEE_TYPE_INVALID | Payee.type must be present / valid |
| B07 | PAYEE_CODE_INVALID | Payee.code numeric of length 4 |
| B08 | PAYER_PAYEE_ADDR_NO_CHANGE | Payer/payee address cannot be changed |
| B09 | MULTIPLE_PAYEES_NOT_ALLOWED | Multiple payees not allowed |
| J01 | PAYEE_NOT_PRESENT_J | Payee not present |
| J02 | PAYEE_ADDR_INVALID_J | Payee.addr must be valid VPA, maxlength 255 |
| J03 | PAYEE_NAME_INVALID_J | Payee.name alphanumeric, minlength 1 maxlength 99 |
| J04 | PAYEE_SEQNUM_INVALID_J | Payee.seqNum numeric, minlength 1 maxlength 3 |
| J07 | PAYEE_CODE_INVALID_J | Payee.code numeric of length 4 |
| J08 | PAYEE_TYPE_INVALID_J | Payee.type must be valid |
| J09 | MCC_MISMATCH_MANDATE | MCC mismatch with mandate creation and ValAdd |
| J10 | VOUCHER_EXPIRED | Voucher expired |
| J11 | VOUCHER_DATE_FORMAT | Voucher incorrect date format |
Account Detail Validation Codes (A-Series)
| Code | Name | Message |
|---|---|---|
| A01 | AC_MUST_BE_PRESENT | Payer/payee.ac must be present |
| A02 | AC_ADDRTYPE_MISSING | Payer/payee.ac.addrType must be present |
| A03 | AC_DETAIL_MISSING | Payer/payee.ac.detail must be present |
| A04 | AC_NAME_MISSING | Payer/payee.ac.name must be present |
| A05 | AC_AADHAAR_INVALID | Payer/payee.ac.detail.aadhaar must be present or not valid |
| A06 | AC_ACCOUNT_INVALID | Payer/payee.ac.detail.account must be present or not valid |
| A07 | AC_MOBILE_INVALID | Payer/payee.ac.detail.mobile must be present or not valid |
| A08 | AC_CARD_INVALID | Payer/payee.ac.detail.card must be present or not valid |
| A09 | AC_VALUE_FORMAT_INVALID | Payer/payee.ac.detail.value incorrect format for name |
| A10 | AC_VALUE_MISSING | Payer/payee.ac.detail.value must be present for name |
| A11 | AADHAAR_TXN_NOT_SUPPORTED | Payer/payee aadhaar based transactions are not supported presently |
| A12 | IFSC_TXN_NOT_SUPPORTED | Payer/payee IFSC based transactions are not supported presently |
| A13 | MMID_TXN_NOT_SUPPORTED | Payer/payee MMID based transactions are not supported presently |
| A14 | CARD_TXN_NOT_SUPPORTED | Payer/payee card based transactions are not supported presently |
| A15 | RESPONSE_BEFORE_ACK | Response received before Ack |
Credential Validation Codes (C-Series / W-Series)
| Code | Name | Message |
|---|---|---|
| C01 | CREDS_NOT_PRESENT | Payer/payee.creds not present |
| C02 | CRED_MUST_BE_PRESENT | Payer/payee.creds.cred must be present |
| C03 | CRED_DATA_WRONG | Payer/payee.cred data is wrong |
| C04 | CRED_AADHAAR_MISSING | Payer/payee.cred.aadhaar must be present |
| C05 | CRED_OTP_MISSING | Payer/payee.cred.OTP must be present |
| C06 | CRED_PIN_MISSING | Payer/payee.cred.PIN must be present |
| C07 | CRED_CARD_MISSING | Payer/payee.cred.card must be present |
| C08 | CRED_PREAPPROVED_MISSING | Payer/payee.cred.preapproved must be present |
| C09 | CRED_DATA_MISSING | Payer/payee.cred.data must be present |
| C10 | CRED_ENCRYPTED_AUTH_MISSING | Payer/payee.cred.data encrypted authentication must be present |
| C11 | CRED_SHOULD_NOT_BE_SENT | Payer/payee.cred should not be sent |
| C12 | CRED_CODE_INVALID | Payer/payee.cred.code should not be present and be either NPCI or UIDAI |
| C15 | ONLY_BENEFICIARY_PREAPPROVED_REFUND | Only beneficiary can initiate preapproved refund |
| C24 | COMPLAINT_NOT_PRESENT | Complaint not present |
| C25 | COMPLAINT_REQADJFLAG_MISSING | Complaint ReqAdjFlag not present |
| C26 | COMPLAINT_REQADJCODE_MISSING | Complaint ReqAdjCode not present |
| C30 | CONSENT_NOT_PRESENT | Consent not present |
| C31 | CONSENT_MUST_BE_Y | Cannot process request with consent value other than Y |
| C32 | CONSENT_NAME_CMREG | Consent name should be CMREGISTRATION |
| C33 | CONSENT_TYPE_INVALID | Please input proper consent type |
| W01 | CREDS_NOT_PRESENT_W | Payer/payee.creds not present |
| W02 | CRED_MUST_BE_PRESENT_W | Payer/payee.creds.cred must be present |
| W03 | CRED_DATA_WRONG_W | Payer/payee.cred data is wrong |
| W04 | CRED_AADHAAR_MISSING_W | Payer/payee.cred.aadhaar must be present |
| W05 | CRED_OTP_MISSING_W | Payer/payee.cred.OTP must be present |
| W06 | CRED_PIN_MISSING_W | Payer/payee.cred.PIN must be present |
| W07 | CRED_CARD_MISSING_W | Payer/payee.cred.card must be present |
| W08 | CRED_PREAPPROVED_MISSING_W | Payer/payee.cred.preapproved must be present |
| W09 | CRED_DATA_MISSING_W | Payer/payee.cred.data must be present |
| W10 | CRED_ENCRYPTED_AUTH_MISSING_W | Payer/payee.cred.data encrypted authentication must be present |
Amount Validation Codes (V0x / M0x)
| Code | Name | Message |
|---|---|---|
| V01 | AMOUNT_MUST_BE_PRESENT | Payer/payee.amount must be present |
| V02 | AMOUNT_CUR_MISSING | Payer/payee.amount.cur must be present |
| V03 | AMOUNT_VALUE_INVALID | Payer/payee.amount.value must be within 18 digits including 2 decimal |
| V04 | AMOUNT_SPLIT_NAME_MISSING | Payer/payee.amount.split.name must be present |
| V05 | AMOUNT_SPLIT_VALUE_MISSING | Payer/payee.amount.split.value must be present |
| V06 | PAYEE_AMOUNT_NO_CHANGE | Payee amount cannot be changed |
| M01 | PAYEE_AMOUNT_CUR_INCONSISTENT | Payee.amount.cur must be consistent |
| M02 | PAYEE_AMOUNT_CUR_INVALID | Payee.amount.cur is invalid |
| M03 | PAYER_PAYEE_TOTAL_MISMATCH | Payer & payee total amount not matching |
| M04 | PAYEE_AMOUNT_MISSING | One or more payee amount is missing |
| M05 | PAYER_PAYEE_TOTAL_MISMATCH_2 | Payer and payee total amount not matching |
| M06 | MULTIPLE_PAYEE_AMOUNT_MISSING | More than one payee amount is missing |
| M07 | PAYER_GREATER_PAYEE | Payer amount should be greater than total payee amount |
Device Validation Codes (D-Series / Q0x)
| Code | Name | Message |
|---|---|---|
| D01 | DEVICE_MUST_BE_PRESENT | Payer/payee.device must be present |
| D02 | DEVICE_TAGS_MISSING | Payer/payee.device.tags must be present |
| D03 | DEVICE_NAME_VALUE_MISSING | Payer/payee.tag.device.name/value must be present |
| D04 | DEVICE_VALIDATION_4 | Same validation message based on device type |
| D05 | DEVICE_VALIDATION_5 | Same validation message based on device type |
| D06 | DEVICE_VALIDATION_6 | Same validation message based on device type |
| D07 | DEVICE_VALIDATION_7 | Same validation message based on device type |
| D08 | DEVICE_VALIDATION_8 | Same validation message based on device type |
| D09 | DEVICE_VALIDATION_9 | Same validation message based on device type |
| D10 | DEVICE_VALIDATION_10 | Same validation message based on device type |
| D11 | DEVICE_VALIDATION_11 | Same validation message based on device type |
| D12 | TELECOM_VALUE_INVALID | Telecom value must be minlength 1 maxlength 99 |
| D13 | TELECOM_TAG_RESTRICTED | Telecom tag is allowed only for type=USDC/USDB |
| Q01 | DEVICE_MUST_BE_PRESENT_Q | Payer/payee.device must be present |
| Q02 | DEVICE_TAGS_MISSING_Q | Payer/payee.device.tags must be present |
| Q03 | DEVICE_NAME_VALUE_MISSING_Q | Payer/payee.tag.device.name/value must be present |
Identity / Info Validation Codes (I0x / O0x)
| Code | Name | Message |
|---|---|---|
| I01 | INFO_MUST_BE_PRESENT | Payer/payee.info must be present |
| I02 | IDENTITY_MUST_BE_PRESENT | Payer/payee.info.identity must be present |
| I03 | IDENTITY_TYPE_MISSING | Payer/payee.info.identity.type must be present minlength 1 maxlength 20 |
| I04 | IDENTITY_VERIFIEDNAME_MISSING | Payer/payee.info.identity verifiedName must be present alphanumeric minlength 1 maxlength 99 |
| I05 | INFO_RATING_MISSING | Payer/payee.info.rating whitelisted must be present minlength 1 maxlength 5 |
| O01 | INFO_MUST_BE_PRESENT_O | Payer/payee.info must be present |
| O02 | IDENTITY_MUST_BE_PRESENT_O | Payer/payee.info.identity must be present |
| O03 | IDENTITY_TYPE_MISSING_O | Payer/payee.info.identity.type must be present, minlength 1, maxlength 20 |
| O04 | IDENTITY_VERIFIEDNAME_MISSING_O | Payer/payee.info.identity verifiedName must be present, alphanumeric, minlength 1, maxlength 99 |
| O05 | INFO_RATING_MISSING_O | Payer/payee.info.rating whitelisted must be present, minlength 1, maxlength 5 |
Merchant Validation Codes (PM/PN-Series)
| Code | Name | Message |
|---|---|---|
| PM0 | MERCHANT_TAG_MANDATORY | Merchant tag is mandatory if payer/payee is entity |
| PM1 | MERCHANT_SUBCODE_INVALID | Payer/payee.merchant.identifier.subCode must be numeric and of length 4 |
| PM2 | MERCHANT_MID_INVALID | Payer/payee.merchant.identifier.mid must be of minlength 1 maxlength 20 |
| PM3 | MERCHANT_SID_INVALID | Payer/payee.merchant.identifier.sid must be of minlength 1 maxlength 20 |
| PM4 | MERCHANT_TID_INVALID | Payer/payee.merchant.identifier.tid must be of minlength 1 maxlength 20 |
| PM5 | MERCHANT_BRAND_INVALID | Payer/payee.merchant.name.brand must be of minlength 1 maxlength 20 |
| PM6 | MERCHANT_LEGAL_INVALID | Payer/payee.merchant.name.legal must be of minlength 1 maxlength 20 |
| PM7 | MERCHANT_FRANCHISE_INVALID | Payer/payee.merchant.name.franchise must be of minlength 1 maxlength 20 |
| PM8 | MERCHANT_OWNERSHIP_MISSING | Payer/payee.merchant.ownership must be present |
| PM9 | MERCHANT_OWNERSHIP_TYPE_MISSING | Payer/payee.merchant.ownership.type must be present |
| PM12 | PAYEE_FOREX_INFO_INVALID | Payee forex info invalid |
| PM14 | REQUEST_TIMEOUT_INTL | Request timeout scenario for UPI international |
| PM15 | INCORRECT_AMOUNT_CALCULATION | Incorrect amount calculation |
| PM16 | ALREADY_PROCESSED | Already processed transaction |
| PN0 | MERCHANT_TAG_NOT_ALLOWED | Merchant tag should not be present if payer/payee is person |
| PN1 | MERCHANT_TYPE_INVALID | Payer/payee.merchant.identifier.merchant.type must be valid |
| PN2 | PAYER_MERCHANT_TYPE_INVALID | Payer.merchant.type must be present among SMALL |
Institution Validation Codes (PI/PJ/PK-Series)
| Code | Name | Message |
|---|---|---|
| PI0 | INSTITUTION_TAG_FIR | Institution tag should be present if InitiationMode=12 (FIR) |
| PI1 | INSTITUTION_TYPE_INVALID | Payer.institution.type must be present among MTO |
| PI2 | INSTITUTION_ROUTE_INVALID | Payer.institution.route must be present among MTSS |
| PI3 | INSTITUTION_NAME_MISSING | Payer.institution.name must be present |
| PI4 | INSTITUTION_NAME_VALUE_INVALID | Payer.institution.name.value must be present, minlength 1 maxlength 100 |
| PI5 | INSTITUTION_NAME_ACNUM_INVALID | Payer.institution.name.acnum must be present, minlength 1 maxlength 50 |
| PI6 | INSTITUTION_PURPOSE_MISSING | Payer.institution.purpose must be present |
| PI7 | INSTITUTION_PURPOSE_CODE_INVALID | Payer.institution.purpose.code must be present, minlength 1 maxlength 50 |
| PI8 | INSTITUTION_ORIGINATOR_MISSING | Payer.institution.originator must be present |
| PI9 | ORIGINATOR_NAME_INVALID | Payer.institution.originator.name must be present, minlength 1 maxlength 50 |
| PJ0 | INSTITUTION_PURPOSE_NOTE_INVALID | Payer.institution.purpose.note must be present, minlength 1 maxlength 50 |
| PJ1 | ORIGINATOR_REFNO_INVALID | Payer.institution.originator.refNo must be present, minlength 1 maxlength 35 |
| PJ2 | ORIGINATOR_ADDRESS_MISSING | Payer.institution.originator.address must be present |
| PJ3 | ORIGINATOR_LOCATION_INVALID | Payer.institution.originator.address.location must be present, minlength 1 maxlength 40 |
| PJ4 | INSTITUTION_BENEFICIARY_MISSING | Payer.institution.beneficiary must be present |
| PJ5 | BENEFICIARY_NAME_INVALID | Payer.institution.beneficiary.name must be present, minlength 1 maxlength 50 |
| PJ6 | ORIGINATOR_TYPE_INVALID | Payer.institution.originator.type must be present, INDIVIDUAL |
| PJ7 | ORIGINATOR_CITY_INVALID | Payer.institution.originator.address.city must be present, minlength 1 maxlength 100 |
| PJ8 | ORIGINATOR_COUNTRY_INVALID | Payer.institution.originator.address.country must be present, minlength 1 maxlength 100 |
| PJ9 | ORIGINATOR_GEOCODE_INVALID | Payer.institution.originator.address.geoCode must be present, in nn.nnnn,nn.nnnn format |
| PK0 | INSTITUTION_TAG_NOT_ALLOWED | Institution tag should not be present if InitiationMode other than 12 |
Risk Score Validation Codes (S0x / TR-Series)
| Code | Name | Message |
|---|---|---|
| S01 | RISKSCORE_PROVIDER_MISSING | Txn riskScore provider must be present alphanumeric; minlength 1 maxlength 20 |
| S02 | RISKSCORE_TYPE_MISSING | Txn riskScore type must be present alphanumeric; minlength 1 maxlength 20 |
| S03 | RISKSCORE_VALUE_MISSING | Txn riskScore value must be present numeric; minlength 1 maxlength 5 |
| TR1 | RISKSCORE_PROVIDER_MISSING_TR | Txn riskScore provider must be present alphanumeric; minlength 1 maxlength 20 |
| TR2 | RISKSCORE_TYPE_MISSING_TR | Txn riskScore type must be present alphanumeric; minlength 1 maxlength 20 |
| TR3 | RISKSCORE_VALUE_MISSING_TR | Txn riskScore value must be present numeric; minlength 1 maxlength 5 |
Rule Validation Codes (L-Series)
| Code | Name | Message |
|---|---|---|
| L01 | RULE_MUST_BE_PRESENT | Rule must be present within rules |
| L02 | RULE_ATTR_NAME_MISSING | Rule attribute name must be present; alphanumeric; minlength 1 maxlength 20 |
| L03 | VALUE_MUST_BE_PRESENT | Value must be present; numeric / decimal |
| L04 | RULE_ATTR_VALUE_MISSING | Rule attribute value must be present; numeric; minlength 1 maxlength 255 |
| L05 | TECHNICAL_ISSUE | Technical issue, please try after some time |
| L06 | KEY_CODE_NOT_PROVIDED | Key code has not been provided in input |
| L07 | KEY_CODE_PARSE_ERROR | Error while parsing key code from input |
| L08 | XML_PAYLOAD_NOT_PROVIDED | XML payload has not been provided in input |
| L09 | XML_PAYLOAD_PARSE_ERROR | Error while parsing XML payload from input |
| L10 | CONTROLS_PARSE_ERROR | Error while parsing controls from input |
| L11 | CONFIG_PARSE_ERROR | Error while parsing configuration from input |
| L12 | SALT_NOT_PROVIDED | Salt has not been provided in input |
| L13 | SALT_PARSE_ERROR | Error while parsing salt from input |
| L14 | PAY_INFO_PARSE_ERROR | Error while parsing pay info from input |
| L15 | LOCALE_PARSE_ERROR | Error while parsing locale from input |
| L16 | UNKNOWN_ERROR | Unknown error occurred |
| L17 | TRUST_NOT_PROVIDED | Trust has not been provided |
| L18 | MANDATORY_SALT_NOT_PROVIDED | Mandatory salt values have not been provided |
| L19 | MANDATORY_SALT_PARSE_ERROR | Error while parsing mandatory salt values |
| L20 | TRUST_NOT_VALID | Trust is not valid |
Response Validation Codes (E-Series)
| Code | Name | Message |
|---|---|---|
| E01 | RESP_MUST_BE_PRESENT | Resp must be present |
| E02 | RESP_MSGID_MISSING | Resp.msgId must be present maxlength 35 |
| E03 | RESP_RESULT_MISSING | Resp.result must be present alphanumeric min length 1 max length 20 |
| E04 | RESP_ERRORCODE_MISSING | Resp.errorCode must be present |
| E05 | RESP_ERRORCODE_NOT_ALLOWED | Resp.errorCode should not be present |
| E06 | RESP_ERRORCODE_INVALID | Resp.errorCode must be SUCCESS or FAILURE |
| E07 | TYPE_MANDATORY | Type is mandatory & alphanumeric |
| E08 | SEQNUM_MANDATORY | SeqNum is mandatory & numeric |
| E09 | ADDR_MANDATORY | Addr is mandatory & alphanumeric |
| E10 | SETTLEAMOUNT_MANDATORY | SettleAmount is mandatory & decimal |
| E11 | SETTLECURRENCY_MANDATORY | SettleCurrency is mandatory & text |
| E12 | APPROVALNUM_MANDATORY | ApprovalNum is mandatory & text |
| E13 | RESPCODE_MANDATORY | RespCode is mandatory & alphanumeric and must be valid |
| E14 | SETTLEAMOUNT_FAILURE_NONZERO | SettleAmount of failure cases cannot be more than zero |
| E15 | INVALID_RESPCODE_API | Invalid response code for this API |
| E16 | REF_ACNUM_INVALID | Ref.acNum must be of minlength 1 maxlength 16 |
| E17 | REF_CODE_INVALID | Ref.code must be of length 4 |
| E18 | REF_IFSC_INVALID | Ref.IFSC must be of length 11 |
| E19 | REF_ACCTYPE_MISSING | Ref.accType must be present |
| E20 | RESP_ADJFLAG_MISSING | Resp.AdjFlag should be present |
Registration Validation Codes (F-Series)
| Code | Name | Message |
|---|---|---|
| F01 | REGDETAILS_MISSING | RegDetails must be present |
| F02 | REGDETAILS_DETAIL_MISSING | RegDetails.detail must be present |
| F03 | REGDETAILS_NAME_VALUE_MISSING | RegDetails.detail name/value should be present |
| F04 | REGDETAILS_NAME_INVALID | RegDetails.detail name not valid |
| F05 | REGDETAILS_CRED_MISSING | RegDetails.cred not present |
| F06 | REGDETAILS_CRED_DATA_WRONG | RegDetails.cred data is wrong |
| F07 | REGDETAILS_CRED_OTP_MISSING | RegDetails.cred.OTP must be present |
| F08 | REGDETAILS_CRED_PIN_MISSING | RegDetails.cred.PIN must be present |
| F09 | REGDETAILS_CRED_DATA_MISSING | RegDetails.cred.data must be present |
| F10 | REGDETAILS_CRED_ENCRYPTED_MISSING | RegDetails.cred.data encrypted authentication must be present |
| FM2 | REGDETAILS_TYPE_FORMAT2 | RegDetails.type must be FORMAT2 |
Heartbeat / VAE Validation Codes (G-Series)
| Code | Name | Message |
|---|---|---|
| G01 | HBTMSG_MISSING | HbtMsg must be present |
| G02 | HBTMSG_TYPE_INVALID | HbtMsg.type must be present / valid |
| G03 | HBTMSG_VALUE_INVALID | Value not valid for HbtMsg.type |
| G04 | HBTMSGRESP_RESULT_INVALID | Value not valid for HbtMsgResp.result |
| G05 | HBTMSGRESP_ERRORCODE_INVALID | Value not valid for HbtMsgResp.errorCode |
| G11 | VAE_OP_NAME_INVALID | VaeList.vae.op/name must be present / valid |
| G12 | VAE_NAME_INVALID | VaeList.vae.name must be present, maxlength 99 |
| G13 | VAE_ADDR_INVALID | VaeList.vae.addr must be valid VPA, maxlength 255 |
| G14 | VAE_LOGO_INVALID | VaeList.vae.logo must be valid, maxlength 255 |
| G15 | VAE_URL_INVALID | VaeList.vae.url must be valid URL, maxlength 255 |
| G17 | VAE_KEY_CODE_MISSING | VaeList.vae.key.code must be present |
| G18 | VAE_KEY_TYPE_MISSING | VaeList.vae.key.type must be present |
| G19 | VAE_KEY_KI_MISSING | VaeList.vae.key.ki must be present |
| G20 | VAE_KEY_KEYVALUE_MISSING | VaeList.vae.key.keyValue must be present |
| G21 | REQMSG_MISSING | ReqMsg must be present |
| G22 | REQMSG_TYPE_INVALID | ReqMsg.type must be present / valid |
| G23 | REQMSG_VALUE_INVALID | Value not valid for ReqMsg.type |
| G24 | REQMSG_ADDR_INVALID | ReqMsg.addr must be valid VPA, maxlength 255 |
| G25 | CERTIFICATE_NOT_FOUND | Certificate not found |
| G26 | SIGNATURE_ERROR | Signature error |
| G27 | SIGNATURE_MISMATCH | Signature mismatch |
| G51 | RESP_MERCHANT_MISSING | Resp.merchant must be present |
| G52 | RESP_MSGID_MISSING_G | Resp.msgId must be present, maxlength 35 |
| G53 | RESP_RESULT_MISSING_G | Resp.result must be present alphanumeric, min length 1, max length 20 |
| G54 | RESP_ERRORCODE_MISSING_G | Resp.errorCode must be present |
| G55 | RESP_ERRORCODE_NOT_ALLOWED_G | Resp.errorCode should not be present |
| G56 | RESP_MASKNAME_MISSING | Resp.maskName must be present; minlength 1, maxlength 99 |
| G61 | PAYER_INFO_MISSING | Payer.info must be present |
| G62 | PAYER_IDENTITY_MISSING | Payer.info.identity must be present |
| G63 | PAYER_IDENTITY_TYPE_MISSING | Payer.info.identity.type must be present, minlength 1, maxlength 20 |
| G64 | PAYER_IDENTITY_VERIFIEDNAME_MISSING | Payer.info.identity verifiedName must be present, alphanumeric, minlength 1, maxlength 99 |
| G65 | PAYER_INFO_RATING_MISSING | Payer.info.rating verified address must be present, minlength 1, maxlength 5 |
| G66 | ACCOUNT_REF_NUM_INVALID | Account reference number must be present / valid |
| G67 | ACCOUNT_TYPE_INVALID | Account type must be present / valid |
| G68 | ACCOUNT_AEBA_INVALID | Account AEBA must be present / valid |
| G69 | ACCOUNT_MBEBA_INVALID | Account MBEBA must be present / valid |
| G70 | ACCOUNT_IFSC_INVALID | Account IFSC must be present / valid |
| G71 | MASKED_ACNUM_INVALID | Masked account number must be present / valid |
| G72 | ACCOUNT_MMID_INVALID | Account MMID must be present / valid |
| G73 | CREDS_ALLOWED_INVALID | Creds allowed must be present / valid |
| G74 | INCORRECT_CRED_SUBTYPE | Incorrect cred subtype for the mobile banking registration format used |
| G75 | ACCOUNT_NAME_MISSING | Account name must be present |
| G76 | AADHAAR_REQUIRED | Aadhaar number must be present if AEBA=Y and aadhaarConsent=Y |
| G77 | RESP_CODE_INVALID | Resp.code must be present / valid |
| G78 | RESP_TYPE_INVALID | Resp.type must be present / valid |
| G79 | RESP_IFSC_INVALID | Resp.IFSC must be present / valid |
| G80 | RESP_IIN_INVALID | Resp.IIN must be present / valid |
| G81 | RESP_SECUREPINURL_INVALID | Resp.securePinUrl must be of minlength 1 maxlength 100 |
| G82 | REQIDDETAILS_NOT_PRESENT | Payer ReqIdDetails not present |
| G83 | REQIDDETAILS_IDS_NOT_PRESENT | Payer ReqIdDetails.ids not present |
| G84 | REQIDDETAILS_NAME_VALUE_MISSING | ReqIdDetails.id.name value must be present |
| G85 | REQIDDETAILS_NAME_VALUE_LENGTH | ReqIdDetails.id.name value must be present minlength M, maxlength N |
| G86 | RESPIDDETAILS_NOT_PRESENT | RespIdDetails not present |
| G87 | RESPIDDETAILS_ID_NOT_PRESENT | RespIdDetails.id not present |
| G88 | RESPIDDETAILS_DETAILS_NOT_PRESENT | RespIdDetails.id details not present |
| G89 | RESPIDDETAILS_NAME_VALUE_INVALID | Payer RespIdDetails.id name/value must be present and valid |
| G90 | ID_DETAILS_VALUE_MISSING | Id details value must be present for detail name |
| G91 | ID_DETAIL_VALUE_FORMAT_INVALID | Id detail value incorrect format for detail name |
| G94 | PAYER_PAN_DIFFERS | Payer PAN differs from original request |
| G95 | PAYER_UMN_DIFFERS | Payer UMN differs from original request |
| G96 | ID_TYPE_VALCUST_ONLY | Id PAN/Aadhaar/VoterId/DrivingLicense allowed only if txnType is ValCust |
| G97 | ID_UMN_MANDATE_ONLY | Id UMN allowed only if txnType is mandate notification |
| G98 | ID_ACNATURE_VALCUST_ONLY | Id AcNature/AcHolder allowed only if txnType is ValCust |
Link Validation Codes (Y0x)
| Code | Name | Message |
|---|---|---|
| Y01 | LINK_NOT_PRESENT | Link not present |
| Y02 | LINK_TYPE_INVALID | Link.type must be present / valid |
| Y03 | LINK_VALUE_INVALID | Link.value must be present / valid |
Account Validation Codes (K0x)
| Code | Name | Message |
|---|---|---|
| K01 | AC_MUST_BE_PRESENT_K | Payer/payee.ac must be present |
| K02 | AC_ADDRTYPE_MISSING_K | Payer/payee.ac.addrType must be present |
| K03 | AC_DETAIL_MISSING_K | Payer/payee.ac.detail must be present |
| K04 | AC_NAME_MISSING_K | Payer/payee.ac.name must be present |
| K05 | AC_AADHAAR_INVALID_K | Payer/payee.ac.detail.aadhaar must be present or not valid |
| K06 | AC_ACCOUNT_INVALID_K | Payer/payee.ac.detail.account must be present or not valid |
| K07 | AC_MOBILE_INVALID_K | Payer/payee.ac.detail.mobile must be present or not valid |
| K08 | AC_CARD_INVALID_K | Payer/payee.ac.detail.card must be present or not valid |
| K09 | AC_VALUE_MISSING_K | Payer/payee.ac.detail.value must be present for name |
| K16 | PSP_KEY_NOT_PRESENT | Requested PSP key is not present in UPI |
| KI1 | VAE_KEY_TAGS_MISSING | Vae.key.tags must be present |
| KI2 | KEY_CODE_MISSING | Key.code must be present, minlength 1, maxlength 20 |
| KI3 | KEY_TYPE_MISSING | Key.type must be present, minlength 1, maxlength 20 |
| KI4 | KEY_KI_FORMAT_INVALID | Key.ki must be present in format YYYYMMDD |
| KI5 | KEY_KEYVALUE_MISSING | Key.keyValue must be present |
Balance Validation Codes (BA-Series)
| Code | Name | Message |
|---|---|---|
| BA1 | BA_TXN_TYPE_INVALID | Txn.type must be present / valid |
| BA2 | BA_AMOUNT_MISSING | Amount tag must be present |
| BA3 | BA_DATA_INVALID | Bal.data should be present / valid if txn.type=BalChk |
Mandate XML Validation Codes (MA/MB/MC/MN/MV/MP-Series)
| Code | Name | Message |
|---|---|---|
| MA0 | MANDATE_NOT_PRESENT | Mandate not present |
| MA1 | MANDATE_NAME_INVALID | Mandate.name alphanumeric; minlength 1, maxlength 99 |
| MA2 | MANDATE_TXNID_INVALID | Mandate.txnId must be present, must be 35 characters of alphanumeric |
| MA3 | MANDATE_TXNID_MISMATCH | Mandate.txnId and txn.id must be same |
| MA4 | MANDATE_UMN_MISSING | Mandate.UMN must be present |
| MA5 | MANDATE_UMN_LENGTH | Mandate.UMN must be present, length 32 |
| MA6 | MANDATE_TS_INVALID | Mandate.ts must be present and should be in ISO_ZONE format |
| MA7 | MANDATE_REVOKEABLE_INVALID | Mandate.revokeable must be present, revokable.type must be Y or N |
| MA8 | MANDATE_SHARE_ONETIME | Mandate.shareToPayee 'N' is applicable only for onetime recurrence pattern as well as for payer initiated transactions only |
| MA9 | MANDATE_VALIDITY_MISSING | Mandate.validity must be present |
| MA10 | MANDATE_UMN_MUST_PRESENT | Mandate.UMN must be present |
| MA11 | MANDATE_UMN_NOT_FOR_PAYEE | Mandate.UMN should not be present for payee initiated transaction |
| MB0 | MANDATE_VALIDITY_START_INVALID | Mandate.validity.start must be present, date format DDMMYYYY, start date must be today's date or later |
| MB1 | MANDATE_VALIDITY_END_INVALID | Mandate.validity.end must be present, date format DDMMYYYY, end date must be greater than today's date |
| MB2 | MANDATE_AMOUNT_INVALID | Mandate.amount must be present, value and rule should not be empty |
| MB3 | MANDATE_AMOUNT_RULE_INVALID | Mandate.amount.rule must be present, rule must be EXACT/MAX |
| MB4 | MANDATE_RECURRENCE_INVALID | Mandate.recurrence must be present, mandate.recurrence.pattern must be ONETIME or DAILY or WEEKLY |
| MB5 | MANDATE_RECURRENCE_RULE_INVALID | Mandate.recurrence.rule must be present, mandate.recurrence.rule.type must be AFTER or ON or BEFORE |
| MB6 | MANDATE_RECURRENCE_RULE_VALUE | Mandate.recurrence.rule must be present, mandate.recurrence.rule.value in between 1 to 7 only when mandate.recurrence.pattern is WEEKLY |
| MB7 | MANDATE_RECURRENCE_RULE_NA | Mandate.recurrence.rule not applicable for mandate.recurrence.pattern ONETIME/DAILY/WEEKLY/FORTNIGHTLY/MONTHLY/BIMONTHLY/QUARTERLY/HALFYEARLY/YEARLY/ASPRESENTED |
| MB8 | MANDATE_BLOCK_PURPOSE14 | Mandate recurrence pattern.block=N is allowed only if the purpose code=14 |
| MB9 | MANDATE_REVOKABLE_PURPOSE14 | Mandate recurrence pattern. revokable=Y, only Y is allowed if the purpose code=14 |
| MC3 | MANDATE_UMN_PAYEE_GENERATE | Mandate.UMN cannot be generated by payee |
| MC4 | GLOBAL_ADDR_NOT_SUPPORTED | Global address not supported in mandate |
| MN0 | MANDATE_TAG_DIFFERS | Mandate tag differs from original request |
| MN1 | MANDATE_NAME_DIFFERS | Mandate.name differs from original request |
| MN2 | MANDATE_TXNID_DIFFERS | Mandate.txnId differs from original request |
| MN3 | MANDATE_UMN_DIFFERS | Mandate.UMN differs from original request |
| MN4 | MANDATE_TS_DIFFERS | Mandate.ts differs from original request |
| MN5 | MANDATE_REVOKEABLE_DIFFERS | Mandate.revokeable differs from original request |
| MN6 | MANDATE_SHARETOPAYEE_DIFFERS | Mandate.shareToPayee differs from original request |
| MN7 | MANDATE_BLOCKFUND_DIFFERS | Mandate.blockFund differs from original request |
| MN8 | MANDATE_TYPE_AMOUNT_DIFFERS | Mandate.type differs from original request, mandate.amount differs from original request |
| MN9 | MANDATE_RECURRENCE_DIFFERS | Mandate.recurrence.pattern differs from original request |
| MV0 | MANDATE_VALIDITY_DIFFERS | Mandate.validity differs from original request |
| MV1 | MANDATE_VALIDITY_START_DIFFERS | Mandate.validity.start differs from original request |
| MV2 | MANDATE_VALIDITY_END_DIFFERS | Mandate.validity.end differs from original request |
| MP0 | BLOCKFUND_PURPOSE01_ONLY | BlockFund is allowed only if the purpose=01 |
| MP1 | BLOCKFUND_CREATE_UPDATE | BlockFund=Y is allowed for CREATE/UPDATE and BlockFund=N is allowed for REVOKE |
| MP2 | MANDATE_AMOUNT_UPDATE_PURPOSE01 | Mandate.amount can only be updated if purpose=01 |
| MP3 | RECURRENCE_ONETIME_PURPOSE01 | Recurrence pattern is always ONETIME if purpose=01 |
| MP4 | AMOUNT_RULE_MAX_PURPOSE01 | Amount rule should be always MAX if purpose=01 |
| MP5 | SHARETOPAYEE_PURPOSE01 | ShareToPayee=Y for payer initiated if purpose=01 |
| MP6 | PAYER_PSP_NO_MANDATE_V21 | Payer PSP does not support version mandate 2.1 |
| MP7 | PAYEE_PSP_NO_MANDATE_V21 | Payee PSP does not support version mandate 2.1 |
| MP8 | REMITTER_NO_MANDATE_V21 | Remitter bank does not support version mandate 2.1 |
| MP9 | BENEFICIARY_NO_MANDATE_V21 | Beneficiary bank does not support version mandate 2.1 |
Mandate System Codes (RM/UO/MX/VZ-Series)
| Code | Name | Message |
|---|---|---|
| RM1 | REQMANDATE_PRESENT | ReqMandate must be present, UMN should be always created by payer (ReqAuthMandate) |
| RM2 | UMN_HANDLER_ORGID_SAME | UMN handler and org ID should be same (ReqAuthMandate) |
| RM3 | TXNID_MANDATE_TXNID_SAME | TxnId and mandate txnId should be same (ReqAuthMandate) |
| RM5 | PAYEE_NO_SHARETOPAYEE | Payee initiated mandate should not have shareToPayee tag (ReqAuthMandate) |
| RM7 | VALIDITY_START_GTE_CURRENT | Validity start date should be greater than or equal to the current date (ReqAuthMandate) |
| RM8 | VALIDITY_END_GTE_CURRENT | Validity end date should be greater than or equal to the current date (ReqAuthMandate) |
| RM9 | SHARETOPAYEE_PAYER_ONETIME | ShareToPayee should be allowed only for payer and recurrence pattern should be "ONETIME" for both payer/payee (ReqAuthMandate) |
| RM11 | BLOCKFUND_Y_CREATE_UPDATE | BlockFund should be "Y" when mandate is CREATE/UPDATE (ReqAuthMandate) |
| UO0 | REMITTER_NOT_REGISTERED_MANDATE | Remitter bank not registered (mandate) |
| UO1 | BENEFICIARY_NOT_REGISTERED_MANDATE | Beneficiary bank not registered (mandate) |
| UO3 | PSP_NO_MANDATE_V21 | PSP does not support version mandate 2.1 |
| UO4 | MANDATE_CONFIRM_NEG_ACK_PAYEE | ReqMandateConfirmation negative Ack received from payee |
| UO5 | FINAL_RESP_NEG_ACK_PAYER | Final response mandate negative Ack received from payer |
| UO7 | MANDATE_ORGID_UMN_MISMATCH | Mandate OrgId or UMN address not matched with payer VPA address |
| UO8 | MANDATE_UMN_NOT_ACTIVE | Mandate UMN address either not active or not exists |
| UO9 | MANDATE_UMN_EXISTS | Mandate UMN address exists already |
| MX0 | REQAUTHMANDATE_NOT_SUPPORTED | ReqAuthMandate API not supported by bank |
| MX1 | RESPAUTHMANDATE_NOT_SUPPORTED | RespAuthMandate API not supported by bank |
| MX2 | RESPMANDATE_NOT_SUPPORTED | RespMandate API not supported by bank |
| MX3 | RESPMANDATECONFIRM_NOT_SUPPORTED | RespMandateConfirmation API not supported by bank |
| MX4 | REQAUTHMANDATE_NOT_SUPPORTED_BANK | ReqAuthMandate API not supported by bank |
| MX5 | REQMANDATECONFIRM_NOT_SUPPORTED | ReqMandateConfirmation API not supported by bank |
| VZ1 | RECURRENCE_RULE_NOT_CERTIFIED_REMITTER | Mandate.recurrence rule tag should not be present – remitter bank not certified for 2.7 |
| VZ2 | RECURRENCE_RULE_NOT_CERTIFIED_BENEFICIARY | Mandate.recurrence rule tag should not be present – beneficiary bank not certified for 2.7 |
| VZ3 | RECURRENCE_RULE_NOT_CERTIFIED_PAYER_PSP | Mandate recurrence rule tag should not be present – payer PSP not certified for 2.7 |
| VZ4 | RECURRENCE_RULE_NOT_CERTIFIED_PAYEE_PSP | Mandate recurrence rule tag should not be present – payee PSP not certified for 2.7 |
| VZ6 | PAYER_PSP_NOT_CERTIFIED_MANDATE | Payer PSP not certified for mandate use case |
| VZ8 | REMITTER_NOT_CERTIFIED_MANDATE | Remitter bank not certified for mandate use case |
Mandate Mapping Codes (UM/UN/UP-Series)
| Code | Name | Message |
|---|---|---|
| UM0 | REQAUTHMANDATE_ACK_NOT_RECEIVED | ReqAuthMandate Ack not received |
| UM1 | RESPAUTHMANDATE_DECLINED | RespAuthMandate declined by PSP |
| UM2 | RESPAUTHMANDATE_TIMEOUT | RespAuthMandate timeout |
| UM3 | RESPAUTHMANDATE_EXPIRED | RespAuthMandate expired |
| UM4 | REQAUTHMANDATE_NEG_ACK | ReqAuthMandate negative Ack received from PSP |
| UM5 | RESPAUTHMANDATE_NEG_ACK | RespAuthMandate negative Ack sent from UPI to PSP |
| UM6 | ORIG_REQAUTHMANDATE_NOT_FOUND | Original ReqAuthMandate not found |
| UM7 | REQMANDATE_ACK_NOT_RECEIVED | ReqMandate Ack not received from remitter bank |
| UM8 | RESPMANDATE_DECLINED | RespMandate declined by remitter bank |
| UM9 | RESPMANDATE_TIMEOUT | RespMandate timeout at remitter end |
| UN0 | REQMANDATE_NEG_ACK | ReqMandate negative Ack received from remitter bank |
| UN1 | RESPMANDATE_NEG_ACK | RespMandate negative Ack sent from UPI to remitter bank |
| UN2 | ORIG_REQMANDATE_NOT_FOUND | Original ReqMandate not found |
| UN3 | RESPMANDATE_ACK_NOT_RECEIVED | RespMandate Ack not received from payer |
| UN4 | REQMANDATECONFIRM_ACK_NOT_RECEIVED | ReqMandateConfirmation Ack not received from payer |
| UN5 | PAYER_PSP_NOT_AVAILABLE_UN | Payer PSP not available |
| UN6 | PAYEE_PSP_NOT_AVAILABLE_UN | Payee PSP not available |
| UN7 | REMITTER_NOT_AVAILABLE_UN | Remitter bank not available |
| UN8 | PAYER_PSP_NOT_REGISTERED | Payer PSP not registered |
| UN9 | PAYEE_PSP_NOT_REGISTERED | Payee PSP not registered |
| UP1 | INVALID_AMOUNT_CATEGORY | Not a valid amount for this category |
| UP2 | MANDATE_AMOUNT_CAP_EXCEEDED | Mandate amount cap is exceeded |
Refund Validation Codes (OR/R1x-Series)
| Code | Name | Message |
|---|---|---|
| OR1 | REFUND_V2_ONLY | Refund is allowed only for 2.0 |
| OR2 | REFUND_ORGTXNID_INVALID | Txn.orgTnxId must be present / valid for refund; alphanumeric; minlength 1, maxlength 35 going success |
| OR3 | REFUND_ORGTXNDATE_INVALID | Txn.orgTnxDate must be present / valid for refund |
| OR4 | REFUND_ORGRRN_INVALID | Txn.orgRRN must be present / valid for refund; numeric; length 12 |
| OR5 | REFUND_GLOBAL_ADDR_ACCT_IFSC | Payee.global address must be acct number and IFSC only for refund |
| OR6 | REFUND_PAYEE_AC_GLOBAL | Payee account details must be present or VPA must be global address (A/C No & IFSC) |
| OR7 | REFUND_PAYER_ENTITY | Payer must be entity for type refund |
| OR8 | REFUND_PAYEE_PERSON | Payee must be person for type refund |
| OR9 | REFUND_PAYER_PREAPPROVED | Payer.cred.preapproved must be present |
| R10 | PAYEE_DUPLICATE_INSTRUMENT | Payee redundant or duplicate payment instrument |
| R13 | REFUND_ORGTXNID_INVALID_R | Txn.orgTnxId must be present / valid for refund; alphanumeric; minlength 1, maxlength 35 |
| R14 | REFUND_ORGTXNDATE_INVALID_R | Txn.orgTnxDate must be present / valid for refund |
| R15 | REFUND_ORGRRN_INVALID_R | Txn.orgRRN must be present / valid for refund; numeric; length 12 |
| R19 | INITIATOR_PSP_V22_REFUND | Initiator PSP must support version 2.2 for refund |
| R20 | BENEFICIARY_V22_REFUND | Beneficiary bank must support version 2.2 for refund |
| R21 | ONLINE_REFUND_DISABLED | Online refund is disabled in UPI |
| R23 | PAYER_PAYEE_AMOUNT_SAME | Payer and payee amount must be same |
| R24 | PAYER_AC_DETAILS_PRESENT | Payer account details must be present |
| R25 | MULTIPLE_PAYEES_NOT_ALLOWED_REFUND | Multiple payees not allowed for refund |
| R26 | TXN_UMNEXECTS_INVALID | Txn.umnExecTs must be present / valid and ISO_ZONE format |
| X10 | ORGTXNID_MANDATE_ONLY | Txn.orgTxnId/orgRRN/umnExecTs allowed only if txn.type is MandateNotification |
Version Mismatch Codes (UA/UB/PV-Series)
| Code | Name | Message |
|---|---|---|
| UA1 | HEADER_URL_VERSION_MISMATCH | Header & URL version is mismatched |
| UA2 | VERSION_TAGS_NOT_SUPPORTED | Version / tags sent not supported by PSP / bank |
| UA3 | PSP_HEADER_URL_MISMATCH | Payer/payee PSP, header or URL version mismatched |
| UA4 | PSP_REQ_RESP_HEADER_MISMATCH | Payer/payee PSP, request & response header version mismatch |
| UA5 | PSP_VERSION_NOT_SUPPORTED | Payer/payee PSP, version / tags not supported by PSP / bank |
| UA7 | REMITTER_REQ_RESP_MISMATCH | Remitter bank, request & response header version mismatch |
| UA8 | REMITTER_HEADER_URL_MISMATCH | Remitter bank, header or URL version mismatched |
| UA9 | REMITTER_VERSION_NOT_SUPPORTED | Remitter bank, version / tags sent not supported by bank |
| UB1 | BENEFICIARY_REQ_RESP_MISMATCH | Beneficiary bank, request & response header version mismatch |
| UB2 | BENEFICIARY_HEADER_URL_MISMATCH | Beneficiary bank, header or URL version mismatched |
| UB3 | BENEFICIARY_VERSION_NOT_SUPPORTED | Beneficiary bank, version / tags sent not supported by bank |
| UB7 | OTHER_BANK_NO_V2 | Other bank / PSP is not supported in 2.0 version |
| UB8 | PAYER_PSP_NO_VERSION | Payer PSP does not support version |
| UB9 | REMITTER_NO_VERSION | Remitter bank does not support version |
| UH1 | HEADER_VERSION_MISMATCH | Header version mismatched |
| UV2 | REQRESP_VERSION_MISMATCH | ReqResp version mismatched |
| TT4 | V2_TAGS_NOT_SUPPORTED_V1 | Version 2.0 LIST_PSP_KEYS tags not supported in 1.0 |
| PV1 | PSP_NO_VALCUST_V24 | PSP does not support version ValCust 2.4 |
| PV2 | PAYER_PSP_NO_VALCUST_V24 | Payer PSP does not support version ValCust 2.4 |
| PV3 | PAYEE_PSP_NO_VALCUST_V24 | Payee PSP does not support version ValCust 2.4 |
| PV4 | REMIT_PSP_NO_VALCUST_V24 | Remit PSP does not support version ValCust 2.4 |
| PV5 | BENEFICIARY_PSP_NO_VALCUST_V24 | Beneficiary PSP does not support version ValCust 2.4 |
Original Request Diff Codes (PR/PY/PA0-Series)
| Code | Name | Message |
|---|---|---|
| PA0 | AC_DIFFERS | Payer/payees.ac differs from original request |
| PA1 | AC_ADDRTYPE_DIFFERS | Payer/payees.ac.addrType differs from original request |
| PA2 | AC_DETAILS_DIFFERS | Payer/payees.ac.details differs from original request |
| PA3 | ACCOUNT_DIFFERS | Payer/payees.account differs from original request |
| PR0 | PAYER_DIFFERS | Payer differs from original request |
| PR1 | PAYER_ADDR_DIFFERS | Payer.addr differs from original request |
| PR2 | PAYER_NAME_DIFFERS | Payer.name differs from original request |
| PR3 | PAYER_CODE_DIFFERS | Payer.code differs from original request |
| PR4 | PAYER_SEQNUM_DIFFERS | Payer.seqNum differs from original request |
| PR5 | PAYER_TYPE_DIFFERS | Payer.type differs from original request |
| PY1 | PAYEES_NAME_DIFFERS | Payees.name differs from original request |
| PY2 | PAYEE_ADDR_DIFFERS | Payee.addr differs from original request |
| PY3 | PAYEES_SEQNUM_DIFFERS | Payees.seqNum differs from original request |
| PY4 | PAYEE_CODE_DIFFERS | Payee.code differs from original request |
| PY5 | PAYEES_TYPE_DIFFERS | Payees.type differs from original request |
VPA Mapping Codes (MM-Series)
| Code | Name | Message |
|---|---|---|
| MM1 | MAPPING_EXISTS | Mapping exists |
| MM2 | MAPPING_DOES_NOT_EXIST | Mapping does not exist |
| MM3 | MAPPING_BLOCKED | Mapping blocked |
| MM4 | MAPPING_INACTIVE | Mapping inactive |
| MM5 | VPA_MAPPED_ANOTHER_MOBILE | VPA mapped to another mobile |
| MM6 | VPA_OF_DIFFERENT_ORG | VPA of different org |
| MM7 | MAPPING_ACTIVATION_NOT_ALLOWED | Mapping activation not allowed |
| MM8 | PREVVPA_NOT_SAME_CACHE | PrevVPA not same as cache |
| MM9 | CANNOT_ACTIVATE_DEREG_MOBILE | Cannot activate deregistered mobile |
| MM10 | COOLING_PERIOD_NOT_OVER | Cooling period not over |
| MM11 | TYPE_NOT_SUPPORTED_GETADD | Type not supported for GetAdd |
| MM12 | TXN_SUBTYPE_NO_REGIDDETAILS | Txn subtype id no RegIdDetails present |
| MM13 | PROPER_TXN_SUBTYPE_MISSING | Proper txn subtype not present |
| MM14 | PROPER_TXN_TYPE_MISSING | Proper txn type not present |
| MM15 | MAPPING_AGAINST_VPA_ABSENT | Mapping against VPA absent |
| MM16 | CANNOT_PORT_NUMERIC_ID | Cannot port numeric ID |
| MM17 | CHECK_ACTION_NOT_PERMITTED | Check action not permitted |
| MM18 | ID_MAPPED_DIFFERENT_VPA | ID mapped to different VPA |
| MM19 | PORT_ACTION_PROHIBITED | Port action prohibited |
| MM20 | VAULT_INACCESSIBLE | Vault inaccessible |
| MM21 | CMID_ADDITION_PROHIBITED | CMID addition prohibited beyond three |
Consent / ValCust Codes
| Code | Name | Message |
|---|---|---|
| UC1 | NO_RESPONSE_REQAUTHVALCUST | No response for ReqAuthValCust |
| UC2 | NO_ACK_REQVALCUST | No Ack for ReqValCust |
| UC3 | NULL_ACK_REQVALCUST | Null Ack for ReqValCust |
| UC4 | NEG_ACK_REQVALCUST | Neg Ack for ReqValCust |
| UC5 | NO_RESPONSE_REQVALCUST | No response for ReqValCust |
| UG1 | RESPONSE_ACTIVATION_TIMEOUT | Response activation timeout |
| UG3 | RESPONSE_VALQR_TIMEOUT | Response ValQR timeout |
| UG5 | FOREX_ERROR_VALQR | FOREX error in ValQR |
| UG6 | QR_PAYLOAD_NOT_FOUND | QR payload not found |
| V30 | REGIDDETAILS_MUST_PRESENT | RegIdDetails must be present |
| V31 | ID_MUST_PRESENT | Id must be present |
| V32 | ID_NAME_MUST_PRESENT | Id name must be present |
| V33 | ID_VALUE_MUST_PRESENT | Id value must be present |
| V34 | ID_ALPHANUMERIC_ONLY | Id must consist of alphanumeric characters only (numeric ID) |
| V35 | ID_GT_6_DIGITS | Id must be larger than 6 digits |
| V36 | ID_NOT_10_11_12 | Id must not be of length 10/11/12 |
| V37 | ID_LT_16_DIGITS | Id must be shorter than 16 digits |
| V38 | ID_NOT_START_ZERO | Id must not start with 0 |
| V39 | ID_NOT_SAME_LAST_THREE | Id must not end with same last three digits |
| V40 | MOBILE_ALPHANUMERIC_ONLY | Id must consist of alphanumeric characters only (mobile number) |
| V41 | MOBILE_10_DIGITS | Id must consist of proper 10 digit mobile number |
Voucher Codes
| Code | Name | Message |
|---|---|---|
| IU0 | UUID_NOT_PRESENT | UUID not present in the system |
UPI Lite Codes (UL-Series)
| Code | Name | Message |
|---|---|---|
| UL1 | LITE_AC_NOT_SUPPLIED | Lite A/C not supplied |
| UL2 | LITE_PRECREATE_NOT_PRESENT | Lite pre-create not present – LRN is not created / invalid LRN |
| UL3 | LITE_AC_NOT_ACTIVATED | Lite A/C not activated – initiating transaction before activating the LRN |
| UL4 | LITE_ARQC_GENERATE_FAILED | Lite ARQC generated failed – auth engine not able to generate ARPC during lite sync |
| UL5 | LITE_AC_DEACTIVATED | Lite A/C deactivated |
| UL6 | LITE_ENGINE_UNAVAILABLE | Lite engine unavailable / down |
HSM Codes (HS-Series)
| Code | Name | Message |
|---|---|---|
| HS1 | HSM_OFFLINE | HSM is offline |
| HS2 | HSM_TIMEOUT | HSM timeout |
| HS3 | HSM_COMM_ERROR | HSM communication error |
Token Codes (TT/TV-Series)
| Code | Name | Message |
|---|---|---|
| TT1 | DFP_TOKEN_ROTATE | DFP token to be rotated |
| TV3 | TOKEN_USE_NOT_PERMITTED | Token use not permitted |
| TV4 | TOKEN_NOT_ISSUED | Token not issued |
NAC (Dispute) Codes
| Code | Name | Message |
|---|---|---|
| NAC|8011 | INVALID_TXN_PARTICIPANT | Invalid transaction for this participant |
| NAC|5210 | DISPUTE_ALREADY_PROCESSED | The dispute / adjustment is already processed |
| NAC|3202 | INVALID_DISPUTE_REASON | Invalid dispute reason code for given function code |
| NAC|5216 | ADJUSTMENT_AMT_GT_CAP | Adjustment amount is greater than cap amount |
| NAC|U48 | MATCH_NOT_FOUND | Match not found |
| NAC|UU1 | REMITTER_VERSION_NOT_SUPPORTED | Remitter version not supported |
| NAC|UU2 | BENEFICIARY_VERSION_NOT_SUPPORTED | Beneficiary version not supported |
| NAC|UU3 | REMITTER_BENEFICIARY_NOT_SUPPORTED | Remitter / beneficiary not supported |
| NAC|UU4 | PAYEE_NOT_SUPPORTED | Payee not supported |
UIDAI / Aadhaar Authentication Codes
| Code | Name | Message |
|---|---|---|
| UD1 | UIDAI_TIMEOUT | UIDAI timeout |
| UD2 | UIDAI_DECLINE | UIDAI decline |
| 100 | PI_DEMO_NOT_MATCH | PI (basic) attributes of demographic data did not match |
| 200 | PA_DEMO_NOT_MATCH | PA (address) attributes of demographic data did not match |
| 300 | BIOMETRIC_NOT_MATCH | Biometric data did not match |
| 310 | DUPLICATE_FINGERS | Duplicate fingers used |
| 311 | DUPLICATE_IRISES | Duplicate irises used |
| 312 | FMR_FIR_SAME_TXN | FMR and FIR cannot be used in same transaction |
| 313 | SINGLE_FIR_MULTI_FINGER | Single FIR record contains more than one finger |
| 314 | FMR_FIR_EXCEED_10 | Number of FMR/FIR should not exceed 10 |
| 315 | IIR_EXCEED_2 | Number of IIR should not exceed 2 |
| 400 | OTP_VALIDATION_FAILED | OTP validation failed |
| 401 | TKN_VALIDATION_FAILED | TKN validation failed |
| 500 | INVALID_SKEY_ENCRYPTION | Invalid sKey encryption |
| 501 | INVALID_CI_SKEY | Invalid value for "CI" attribute in "sKey" element |
| 502 | INVALID_PID_ENCRYPTION | Invalid PID encryption |
| 503 | INVALID_HMAC_ENCRYPTION | Invalid HMAC encryption |
| 504 | SESSION_KEY_EXPIRED | Session key reinitiation required due to expiry or key out of sync |
| 505 | SYNC_SKEY_NOT_ALLOWED | Synchronized sKey usage is not allowed |
| 510 | INVALID_AUTH_XML | Invalid auth XML format |
| 511 | INVALID_PID_XML | Invalid PID XML format |
| 520 | INVALID_DEVICE_UIDAI | Invalid device |
| 521 | INVALID_FINGER_DEVICE | Invalid finger device (FDC in meta element) |
| 522 | INVALID_IRIS_DEVICE | Invalid iris device (IDC in meta element) |
| 530 | INVALID_AUTHENTICATOR_CODE | Invalid authenticator code |
| 540 | INVALID_AUTH_XML_VERSION | Invalid auth XML version |
| 541 | INVALID_PID_XML_VERSION | Invalid PID XML version |
| 542 | AUA_NOT_AUTHORIZED_ASA | AUA not authorized for ASA |
| 543 | SUB_AUA_NOT_ASSOCIATED | Sub-AUA not associated with AUA |
| 550 | INVALID_USES_ATTRIBUTES | Invalid uses element attributes |
| 561 | REQUEST_EXPIRED_UIDAI | Request expired (PID->ts value is older than N hours) |
| 562 | TIMESTAMP_FUTURE | Timestamp value is future time |
| 563 | DUPLICATE_REQUEST_UIDAI | Duplicate request |
| 564 | HMAC_VALIDATION_FAILED | HMAC validation failed |
| 565 | LICENSE_KEY_EXPIRED | License key has expired |
| 566 | INVALID_LICENSE_KEY | Invalid license key |
| 567 | INVALID_INPUT_UIDAI | Invalid input (unsupported characters in Indian language values) |
| 568 | UNSUPPORTED_LANGUAGE | Unsupported language |
| 569 | DIGITAL_SIGNATURE_FAILED | Digital signature verification failed |
| 570 | INVALID_KEY_INFO | Invalid key info in digital signature |
| 571 | PIN_REQUIRES_RESET | PIN requires reset |
| 572 | INVALID_BIOMETRIC_POSITION | Invalid biometric position |
| 573 | PI_NOT_ALLOWED_LICENSE | PI usage not allowed as per license |
| 574 | PA_NOT_ALLOWED_LICENSE | PA usage not allowed as per license |
| 575 | PFA_NOT_ALLOWED_LICENSE | PFA usage not allowed as per license |
| 576 | FMR_NOT_ALLOWED_LICENSE | FMR usage not allowed as per license |
| 577 | FIR_NOT_ALLOWED_LICENSE | FIR usage not allowed as per license |
| 578 | IIR_NOT_ALLOWED_LICENSE | IIR usage not allowed as per license |
| 579 | OTP_NOT_ALLOWED_LICENSE | OTP usage not allowed as per license |
| 580 | PIN_NOT_ALLOWED_LICENSE | PIN usage not allowed as per license |
| 581 | FUZZY_NOT_ALLOWED_LICENSE | Fuzzy matching usage not allowed as per license |
| 582 | LOCAL_LANG_NOT_ALLOWED_LICENSE | Local language usage not allowed as per license |
| 584 | INVALID_PINCODE_META | Invalid pin code in meta element |
| 585 | INVALID_GEOCODE_META | Invalid geo code in meta element |
| 710 | MISSING_PI_DATA | Missing "PI" data as specified in "uses" |
| 720 | MISSING_PA_DATA | Missing "PA" data as specified in "uses" |
| 721 | MISSING_PFA_DATA | Missing "PFA" data as specified in "uses" |
| 730 | MISSING_PIN_DATA | Missing PIN data as specified in "uses" |
| 740 | MISSING_OTP_DATA | Missing OTP data as specified in "uses" |
| 800 | INVALID_BIOMETRIC_DATA | Invalid biometric data |
| 810 | MISSING_BIOMETRIC_DATA | Missing biometric data as specified in "uses" |
| 811 | MISSING_BIOMETRIC_CIDR | Missing biometric data in CIDR for the given Aadhaar number |
| 812 | BEST_FINGER_DETECTION | Resident has not done "best finger detection" |
| 820 | MISSING_BT_ATTRIBUTE | Missing or empty value for "bt" attribute in "uses" element |
| 821 | INVALID_BT_ATTRIBUTE | Invalid value in the "bt" attribute of "uses" element |
| 901 | NO_AUTH_DATA | No authentication data found in the request |
| 902 | INVALID_DOB | Invalid "dob" value in the "PI" element |
| 910 | INVALID_MV_PI | Invalid "mv" value in the "PI" element |
| 911 | INVALID_MV_PFA | Invalid "mv" value in the "PFA" element |
| 912 | INVALID_MS | Invalid "ms" value |
| 913 | PA_PFA_BOTH_PRESENT | Both "PA" and "PFA" are present in the authentication request |
| 930 | TECH_ERROR_930 | Technical error internal to authentication server |
| 931 | TECH_ERROR_931 | Technical error internal to authentication server |
| 932 | TECH_ERROR_932 | Technical error internal to authentication server |
| 933 | TECH_ERROR_933 | Technical error internal to authentication server |
| 934 | TECH_ERROR_934 | Technical error internal to authentication server |
| 935 | TECH_ERROR_935 | Technical error internal to authentication server |
| 936 | TECH_ERROR_936 | Technical error internal to authentication server |
| 937 | TECH_ERROR_937 | Technical error internal to authentication server |
| 938 | TECH_ERROR_938 | Technical error internal to authentication server |
| 939 | TECH_ERROR_939 | Technical error internal to authentication server |
| 940 | UNAUTHORIZED_ASA | Unauthorized ASA channel |
| 941 | UNSPECIFIED_ASA | Unspecified ASA channel |
| 980 | UNSUPPORTED_OPTION | Unsupported option |
| 996 | AADHAAR_CANCELLED | Aadhaar cancelled |
| 997 | AADHAAR_SUSPENDED | Aadhaar suspended |
| 998 | INVALID_AADHAAR_DATA | Invalid Aadhaar number or non availability of Aadhaar data |
| 999 | UNKNOWN_ERROR | Unknown error |
Miscellaneous Codes
| Code | Name | Message |
|---|---|---|
| Z02 | VER_INVALID | Ver numeric / decimal min length 1 max length 6 |
| Z03 | TS_INVALID | TS must be ISO_ZONE format |
| Z06 | MSGID_MISSING | MsgId must be present maxlength 35 |
| X01 | TXN_NOT_PRESENT_X | Txn not present |
| X02 | TXN_ID_MISSING_X | Txn.id must be present maxlength 35 |
| X03 | TXN_NOTE_INVALID_X | Txn.note alphanumeric; minlength 1 maxlength 50 |
| X04 | TXN_REFID_INVALID_X | Txn.refId alphanumeric; minlength 1 maxlength 35 |
| X06 | TXN_TS_INVALID_X | Txn.ts must be ISO_ZONE format |
| X07 | TXN_TYPE_INVALID_X | Txn.type must be present / valid |
| X08 | TXN_ORGTXNDATE_MISSING | Txn.orgTxnDate must be present |
| X09 | TXN_ORGTXNDATE_90DAYS | Txn.orgTxnDate should be within 90 days |
Source
UPI Error and Response Codes V 2.5 — NPCI. Total codes: 700+
