International payments are now common for Indian businesses, agencies, and freelancers. The transaction must follow rules set by the Reserve Bank of India (RBI). These rules are carried out by banks, which must record the reason behind every inward and outward remittance. To make this possible, the RBI has introduced purpose codes.
A purpose code is a simple explanation of why the money is moving across borders. Read on to learn about the importance of purpose codes and more.
Key Takeaways
- Purpose codes are mandatory for all international payments both inward and outward.
- RTGS, NEFT and IMPS are only domestic systems and do not replace purpose codes for foreign transfers.
- Using the correct code helps avoid payment delays, compliance issues and tax mismatches.
- Razorpay MoneySaver Export Account simplifies global payments and automatically supports export compliance.
What is RBI Purpose Code? Inward (P) vs Outward (S)
Whenever money enters or leaves India, banks need a clear declaration of why the transaction is taking place. That’s where purpose codes come in. They standardise the reason behind each cross-border payment and make the process compliant with Indian regulations.
The Reserve Bank of India introduced purpose codes under the Foreign Exchange Management Act (FEMA), 1999, to bring clarity and traceability to international money flows. Instead of relying on descriptions or manual explanations, every transaction now carries a predefined code that tells the bank the exact nature of the payment.
Here’s how they work:
- They identify the specific reason for a remittance such as exports, consulting services, royalties, or software fees.
- Codes beginning with ‘P’ are used for inward remittances, while ‘S’ is used for outward payments.
- Banks and regulators rely on these codes to track, verify, and report every foreign exchange transaction accurately.
Why Correct Purpose Code Declaration Matters?
Selecting the right purpose code may feel like a small step, but it directly affects how smoothly your international payments are processed.
Here’s why a correct declaration is critical:
- Correct purpose codes help you stay compliant with FEMA regulations and prevent illegal financial practices such as money laundering or misuse of funds.
- The RBI uses these codes to build accurate Balance of Payments (BoP) reports, which reflect how India interacts with the global economy.
- Missing or incorrect codes can trigger payment holds, rejection by banks, or regulatory reviews that may even invite penalties.
- When you send money abroad, the purpose code directly influences how Tax Collected at Source (TCS) is calculated, impacting your overall tax liability and documentation.
Related Read : Mastering Purpose Codes with Razorpay: Streamlining International Payments
RBI Purpose Codes for Inward Remittances
These codes are used when money is received in India from abroad. They help banks report the nature of the incoming funds to RBI.
| Code | Description | Real-life Example |
| P0103 | Advance against export of goods | A US buyer sends 30% advance to an Indian garment exporter |
| P0104 | Export receipts not linked to shipping bill | Payment for a small sample shipment |
| P0802 | Software services / implementation | Payment from a US client for building a mobile app |
| P0803 | Data processing services | A company pays an Indian team for data analytics work |
| P0804 | Computer repair services | Payment for remote IT support |
| P0807 | Off-site software exports | SaaS development done in India for a UK client |
| P0901 | Franchise services | A global brand paying franchise fees to an Indian partner |
| P0902 | Licensing income | Royalty payment for using software or intellectual property |
| P1002 | Trade-related services commission | An agent receives commission for export deals |
| P1004 | Legal services | A law firm in India advising a foreign company |
| P1005 | Accounting & auditing services | Foreign company paying Indian CA firm |
| P1006 | Business consultancy services | Strategy consulting fee from a Dubai client |
| P1007 | Advertising & marketing services | Payment for digital marketing services |
| P1008 | Research & development services | Foreign company paying Indian R&D contractor |
| P1009 | Architectural or engineering services | Overseas client paying Indian architect |
| P1014 | Engineering services | Structural design work for overseas project |
| P1101 | Audio-visual services | Payment for video editing for a global YouTube channel |
| P1301 | Family maintenance | NRI sending money to parents in India |
| P1302 | Personal gifts & donations | Wedding gift from relatives abroad |
| P1401 | Salary / employee compensation | Indian employee working remotely for US firm |
| P1404 | Interest income | Interest received on overseas bonds |
| P1406 | Profit repatriation | Overseas subsidiary sending profits to India |
| P1407 | Dividend receipts | Indian investor receiving dividends from US stocks |
| P1501 | Refunds on imports | Refund received from foreign supplier |
| P1502 | Refund of wrong remittance | Bank reversing an incorrect international transfer |
Example
If you are a freelance developer getting paid by a US client, the bank will usually tag the payment with P0802 or P0807 (software services).
Explore Razorpay’s Global Payment Solutions
RBI Purpose Codes for Outward Remittances
These codes are used when money is sent from India to another country, including personal transfers, investments, or payments for services.
| Code | Description | Real-life Example |
| S0001 | Investment abroad in equity | Buying shares of a US startup |
| S0002 | Investment abroad in debt securities | Purchasing US bonds |
| S0003 | Investment abroad in branches | Opening a foreign branch office |
| S0004 | Investment abroad in subsidiaries | Setting up a US subsidiary |
| S0005 | Investment abroad in real estate | Buying property overseas |
| S0011 | Loan to non-resident | Lending money to a foreign company |
| S0012 | Loan repayment to foreign lender | Repaying an overseas business loan |
| S0203 | Freight payment on imports | Paying shipping company for imports |
| S0204 | Freight payment on exports | Paying logistics provider abroad |
| S0301 | Business travel expenses | Paying hotel and travel costs for overseas conference |
| S0302 | Personal travel under LRS | Forex for vacation abroad |
| S0303 | Pilgrimage travel | Travel expenses for religious trips |
| S0304 | Medical treatment abroad | Paying hospital in Singapore |
| S0305 | Education abroad | Tuition payment to US university |
| S0306 | Other travel expenses | International credit card travel expenses |
| S0402 | Courier services | Paying FedEx or DHL abroad |
| S0403 | Telecom services | Payment for international telecom services |
| S0601 | Life insurance premium | Paying premium for overseas policy |
| S0701 | Financial services charges | International bank processing fees |
| S0801 | Software services payment | Paying a foreign software developer |
| S0802 | Software consultancy payment | Paying a US SaaS provider |
| S1002 | Commission payments | Paying sales agent abroad |
| S1101 | Audio-visual services | Paying a foreign video production company |
| S1201 | Government services | Fees paid to foreign embassy |
| S1302 | Personal gifts & donations | Sending gift money abroad |
Example
If you pay a US SaaS company for software subscriptions, the remittance may use S0802 (software consultancy / IT services) depending on the bank classification.
Understanding Purpose Codes with RTGS and Other Payment Systems
Many Indian exporters and freelancers receive money from abroad, and in their bank account, the final credit often appears as an RTGS, NEFT, or IMPS transaction. This often creates confusion about whether purpose codes are linked to these systems.
In reality, RTGS is only a domestic payment system used within India. It plays no role in deciding the nature of the international transaction. When a cross-border remittance is initiated or received, the foreign exchange component of the payment is governed by RBI and FEMA regulations.
This is where the purpose code becomes mandatory, regardless of how the rupee amount is finally settled domestically through RTGS, NEFT, or IMPS. The purpose code is attached to the conversion of foreign currency into INR, not the domestic leg of the transaction.
Common Mistakes & How to Fix Wrong Codes
RBI purpose codes are mandatory labels used to explain why money is coming into or going out of India in a cross-border transaction. Banks must report every remittance with the correct code to comply with RBI and FEMA regulations.
Common Mistakes
Using the wrong code for your payment type
For example, selecting a goods export code when the payment is actually for consulting or software services.
Choosing generic “other services” codes
These vague codes often trigger bank checks or delays.
Not matching the code with your invoice
If the purpose code doesn’t match your invoice description, the bank may flag the transaction.
Using the wrong code can cause payment delays, compliance queries, or even rejected transfers until the issue is fixed.
How to Fix a Wrong Purpose Code
If a wrong code was used, you can usually correct it through your bank:
- Contact your bank’s forex or remittance desk.
- Share the UTR number and correct purpose code.
- Submit documents like invoice, contract, or payment proof.
- Request a corrected FIRC or e-FIRA after the update.
Difference Between SWIFT Code and Purpose Code
Many people confuse SWIFT codes with RBI purpose codes, but they serve completely different roles in international payments.
A SWIFT code identifies the bank involved in the transaction, while a purpose code explains the reason for the transfer. Both are used in cross-border payments, but they solve different problems in the payment process.
Key Differences
| Factor | SWIFT Code | Purpose Code |
| What it identifies | The bank or financial institution receiving the payment | The reason for the international transaction |
| Who defines it | Global SWIFT banking network | Reserve Bank of India (RBI) |
| Where it is used | Routing international bank transfers | Reporting cross-border payments under FEMA |
| Format | 8–11 character bank identifier (e.g., HDFCINBBXXX) | Alphanumeric code starting with P (inward) or S (outward) |
| Purpose | Ensures the payment reaches the correct bank | Helps RBI classify and monitor foreign exchange transactions |
Best Practices for Selecting the Correct Purpose Code
- Understand the Reason for the Transaction: First, be clear about why the money is coming in or going out. For inward remittances, know the exact source client payment, export of services, royalty, or sale of goods. For outward remittances, identify the reason: subscription, business payment, vendor fees, or education.
- Check RBI’s Official List or Circulars: Purpose codes can change with new regulations. Always review the latest list issued by the RBI or refer to the guidelines shared by your authorised dealer bank. This helps you avoid using outdated codes.
- Speak to the Bank’s Forex Desk if Unsure: If there is any doubt, contact the forex department at your bank. They routinely deal with such transactions and can guide you towards the correct code based on your case.
- Maintain Clear Documentation: Keep invoices, agreements, declarations, and payment records safely. These documents support the purpose code you use and are important during audits, tax filings, and export reports.
- Always Declare Accurately: A wrong or intentionally misleading code can lead to compliance issues and penalties under FEMA. Staying honest and accurate is not only safer, but it also builds trust with your bank and clients.
Pro Tip: Keep a simple checklist of frequently used purpose codes for your business. It helps speed up every remittance and prevents last-minute confusion.
How Razorpay MoneySaver Export Account Simplifies Global Payments
Sending export invoices and receiving money from abroad can feel complicated especially when banks ask for documents, charge high forex fees, or take days to settle the amount. Razorpay MoneySaver Export Account solves this by giving you a simple way to accept international payments, with built-in features that reduce cost and effort.
With Razorpay MoneySaver, you get:
- Local bank accounts in the US, UK, Europe, and more so your global clients can pay you easily, just like a domestic transfer.
- Zero forex markup you receive the live rate as seen on Google, which means you keep more of what you earn.
- Support for 130+ currencies and payments from 180+ countries, which makes it easier to work with global clients.
- Automated Digital FIRC and export compliance tools, which save time and reduce manual follow-ups.
Simplify International Payments with Razorpay
Power your global business the right way. Switch from traditional banking to a
compliant, business-grade international payment solution.
Conclusion
RBI purpose codes are not just technical terms, they are the foundation of compliant and efficient international transfers. When you identify and declare the correct code, you avoid delays, meet regulatory requirements, and keep your financial records clear.
Working with reliable financial partners, keeping your documents ready, and choosing the right purpose code can turn a complex process into a smooth one. When every international payment is backed by clarity and compliance, it builds trust and keeps your business ready for global opportunities.
FAQs
1. What is an RBI purpose code?
It is an RBI-mandated code that explains why money is being sent or received internationally. It helps classify the nature of the transaction under FEMA rules.
2. Why is selecting the correct purpose code important?
It ensures compliance, avoids delays, supports RBI monitoring, and keeps your export records accurate.
3. What happens if I use an incorrect purpose code?
Your payment may be delayed, rejected, or flagged for review. In some cases, it may also lead to compliance issues under FEMA.
4. Are there different purpose codes for inward and outward remittances?
Yes. ‘P’ codes are used for money coming into India, while ‘S’ codes are used when money is sent outside India.
5. Do RTGS transactions require purpose codes?
No, RTGS itself does not require a purpose code because it only handles domestic transfers.
6. Where can I find a comprehensive list of RBI purpose codes?
You can refer to the RBI’s official website or check with your bank or payment service provider that handles international transfers.