#Remitter & Account Info
#1. NPCI Requirements for Remitter Details and Account Info for all Bill Payments
Bill payments require remitter details and payment instrument information, and you will need to format them correctly for different payment methods. This guide provides the exact formatting specifications NPCI requires for each payment mode, plus validation rules to ensure your requests are accepted.
The key principle: each payment method has its own format requirements, from simple UPI addresses to complex card authorization codes, and getting these wrong will cause payment failures.
#2. Fields Reference
Property | Type | Constraints | Purpose | Notes |
---|---|---|---|---|
paymentDetails.accountInfo | String | Format varies by payment mode | NPCI-compatible instrument info for the debit instrument | Required in payment requests |
remitter | Object | - | Captures information about the person making the payment | May differ from account holder |
#2.1 Remitter Object Properties
Property | Type | Constraints | Purpose | Notes |
---|---|---|---|---|
name | String | min: 1, max: 50 | Remitter's full name | Required in payment requests |
email | String | min: 1, max: 50 | Remitter's email address | Optional |
pan | String | min: 1, max: 50 | Remitter's PAN number | Optional |
aadhaar | String | min: 1, max: 50 | Remitter's Aadhaar number | Optional |
#3. Usage Across Flows
- Fetch/Validation requests:
remitter
is optional. - Payment requests (Flow 1–3):
remitter.name
andpaymentDetails.accountInfo
are required.
#3.1 Sample Payment Request
{"refId": "{{REF_ID_FROM_FETCH_OR_VALIDATION}}","paymentDetails": {"amount": 50000,"mode": "UPI","custConvFee": 120, // Optional; Total to debit = amount + custConvFee"paymentRefId": "{{UNIQUE_DEBIT_ID}}","timestamp": "{{ISO_8601}}","accountInfo": "user@ybl"},"remitter": {"name": "{{PAYER_NAME}}"}}
#4. NPCI Specifications
#4.1 Account Information Format by Payment Mode
Payment Mode | Value Example | Length Constraints | NPCI Code | Description |
---|---|---|---|---|
AccountTransfer, BharatQR, InternetBanking | SRAN0000341|9912345123456 | Min: 3, Max: 50 | IFSC|AccountNo | IFSC and account number used for payment |
CreditCard, DebitCard, PrepaidCard | 1234567890123456|123456 | Min: 3, Max: 50 | CardNum|AuthCode | Card number and authorization code used for payment |
UPI | dummy@ybl | Min: 3, Max: 50 | VPA | Virtual Provider Address used for payment |
Wallet | PayTM|9004644121 | Min: 12, Max: 50 | WalletName|MobileNo | Wallet name and mobile number used for payment |
AEPS, BHIM Aadhaar Pay | 123456789012|1234567 | Min: 3, Max: 50 | Aadhaar|IIN | Aadhaar number and IIN used for payment |
Cash, USSD | <Payment remarks> | Min: 1, Max: 50 | Remarks | Remarks when payment mode is cash |
#4.2 Code Format Examples
The following table provides detailed formatting specifications for different NPCI codes:
Code | Format | Example |
---|---|---|
Remarks | Alphanumeric Special Min Length: 1, Max Length: 50 | UNI000 |
CardNum|AuthCode | Alphanumeric with characters on either side of '|' separator Min Length: 3, Max Length: 50 | 1234567890123456|123456 |
IFSC|AccountNo | Alphanumeric with characters on either side of '|' separator Min Length: 3, Max Length: 50 | SRAN0000341|01234567 |
MMID|MobileNo | Numeric with characters on either side of '|' separator Fixed Length: 18 | 9240111|9004644121 |
WalletName|MobileNo | Alphanumeric with characters on either side of '|' separator Min Length: 12, Max Length: 50 | TA Wallet|9004644121 |
VPA | Alphanumeric Special Min Length: 3, Max Length: 50 | manoj@icici |
Aadhaar|IIN | Alphanumeric with characters on either side of '|' separator Min Length: 3, Max Length: 50 | 123456789012|1234567 |
#4.3 Field Handling Rules
#4.3.1 Mandatory Behavior
- In payment requests across Flow 1–3,
remitter.name
andpaymentDetails.accountInfo
are required - The
paymentDetails.accountInfo
field must contain NPCI-compatible values corresponding to the selected payment mode
Was this page helpful?