So, to make audits painless and stay compliant with NPCI + RBI rules, your billing software needs to tag every UPI collection for capital market investments with the correct purpose code before sending the payment request to your PSP or bank. This code tells the UPI network what kind of transaction it is (insurance, education, mutual fund, etc.), which directly affects how much you can collect and what reporting rules apply.
Here’s how to do it right:
Get NPCI’s Official Purpose Code List
NPCI assigns codes like CAP_MKT_INV for capital market investments, INS_PRM for insurance premiums, etc. You can find this in your PSP’s UPI integration docs (e.g., Razorpay, Cashfree, Paytm for Business). Make sure your billing app uses CAP_MKT_INV wherever applicable this is what lets the transaction qualify for higher UPI limits.
Map It to Your Product or Invoice Type
When your billing software generates a UPI intent or QR, it should check what kind of invoice it’s tied to.
If the invoice is tagged as a mutual fund top-up, SIP, or brokerage payment, automatically attach the CAP_MKT_INV purpose code.
If it’s for a retail or service product, use the default OTHERS or the correct business category code.
Include Purpose Code in Payment Payload
When creating a UPI collect request (upi://pay intent or PSP API call), include a metadata field for the purpose code. For most PSPs, that’s something like:
{
txnType: COLLECT,
purposeCode: CAP_MKT_INV,
amount: 250000.00,
payerVPA: user@upi,
merchantCategoryCode: 6211
}
This ensures that both NPCI and your acquirer bank recognize the transaction as a capital market payment.
Store It in Your Internal Ledger
Save the purpose code in your payments table like purpose_code: CAP_MKT_INV. This helps your reconciliation system and auditors later confirm that high-value transactions were processed under the right category.
Show It in Reports and Audit Logs
Add a column in your daily settlement reports and dashboards for Purpose Code. That way, finance and compliance teams can easily filter out capital market transactions and verify that all such receipts comply with the higher limit rules.
Validate Before Payment Submission
Add a quick pre-check in your billing flow if an invoice tagged as Capital Market Investment doesn’t have CAP_MKT_INV attached, block the payment initiation. It’s easier to stop errors upfront than fix audit mismatches later.
Include in GST E-Invoice or Reconciliation Data
When exporting your e-invoice or reconciliation JSON, embed the purpose code in an Additional Payment Info or UPI Details section. It makes GST and audit verification 10x faster.