m2pfintech
API IntegrationIntegration Types

PPI Integration

Integration guide for PPI issuers (wallet providers) adding UPI interoperability to prepaid instruments.

AspectDetail
Partner TypePPI issuer (wallet company) with RBI PPI license
App OwnershipPartner builds wallet app with UPI capability
Integration ModeM2P PPI Android/iOS SDK + optional Direct API
M2P RoleUPI Switch (via sponsor bank), Profile, Transaction + wallet linkage
Partner RoleWallet app, KYC, wallet balance management, UPI features

Key Differences from Bank PSP / TPAP

AspectBank PSP / TPAPPPI
Account TypeReal bank accountsPrepaid wallet accounts (Full KYC only)
Account LinkingUser selects bank → fetches accountsWallet auto-linked (no bank selection)
VPA Formatuser@handleuser@ppihandle
KYCBank handles KYCPPI issuer handles KYC
BalanceBank account balanceWallet balance (separate ledger)
Transaction LimitsFull UPI limitsPPI limits based on wallet type
Only Full KYC wallets are supported for UPI transactions. This is an RBI PPI guideline requirement.

Onboarding Paths

When M2P manages the PPI wallet, a single API call handles everything:

Register PPI Profile

POST /upi/v1/wrapper/ppi/registerProfile

Single call: creates profile + auto-creates VPA + auto-links wallet.

Set UPI PIN (Optional)

POST /upi/v1/wrapper/profile/setCredentialsReq

Only required when PPI goes live on TPAP. Otherwise, PPI transactions are pre-approved and do not require PIN entry.

No separate VPA/account calls needed — everything is handled in the single registerProfile call.

Direct Onboarding

POST /upi/v1/wrapper/ppi/directOnboarding — Register profile for external PPI provider

Create VPA

POST /upi/v1/wrapper/profile/createVpa — Create user@ppihandle

Fetch Accounts

POST /upi/v1/wrapper/profile/listAccounts — Fetch PPI wallet details

POST /upi/v1/wrapper/profile/addAccount — Add account to UPI profile

Set UPI PIN (Optional)

POST /upi/v1/wrapper/profile/setCredentialsReq — Only needed for TPAP interoperability

Transaction & Mandate APIs

Transaction and Mandate APIs are the same as Bank PSP (reqPayReq, collectAuth, txnStatus, balanceInquiry, mandate operations) — subject to PPI limits.

What the Partner Builds (PPI-Specific)

#ActionDescription
1Wallet app (Android + iOS)Wallet app with UPI payment features
2PPI SDK integrationIntegrate M2P PPI SDK (different from PSP SDK)
3KYC flowIn-app KYC (Aadhaar eKYC / Video KYC / document upload)
4Wallet top-upFund load flow (UPI / net banking / card)
5Wallet dashboardBalance display, transaction history, management
6Webhook consumerReceive payment notifications
7QR scannerFor P2M payments

Additional M2P Actions

#ActionDescription
1Sponsor bank mappingMap PPI to sponsor bank's PSP infrastructure
2PPI handle registrationRegister PPI-specific handle with NPCI
3Wallet ledger integrationConnect to wallet balance/ledger system
4KYC tier configurationConfigure Full KYC wallet limits
5PPI NPCI certificationPPI-specific NPCI test cases

On this page