Global payments


Subscribe to our newsletter
Get the latest updates, insights, and tips delivered straight to your inbox.
Last month, a freelance UI designer I know almost lost a week’s worth of client goodwill over five characters. Her US client paid her USD 4,000 for a website redesign, and the money reached her bank account, but it was not credited to her balance. Her bank had flagged the payment because the purpose code on the wire did not match the work she did for the client. She spent three days going back and forth between her bank’s forex desk and her client’s finance team, just to explain that the payment was for software and design consultancy, and not “general services” as her client’s bank had entered it.
If you receive international payments in India, whether you are a freelancer, an exporter, or run a startup billing overseas clients, you would have probably run into this at some point. The culprit is almost always the same thing: the RBI purpose code.
TL;DR
A purpose code is a mandatory 5-character code (starting with P for inward remittances) that tells your bank why you have received an international payment into your account.
Every AD (Authorised Dealer) bank must report this code to the RBI under FEMA regulations.
Some of the common codes include P0802 (software services), P1006 (consulting/BPO/KPO), P0101-P0104 (export of goods), P1401 (salary), and P1301 (family maintenance).
Using the wrong code can delay or hold your international payment. This can later cause problems with your FIRA/FIRC and export records.
If a wrong code has already been used, you can usually get it corrected by contacting your bank with supporting documents.
Infinity helps Indian freelancers, exporters and businesses in finding the right purpose code for their service and receiving international payments seamlessly.
What is an RBI purpose code?
A purpose code is a short, standardised code that is used by your bank to tell the RBI why a particular foreign payment has come into India. It is defined under the Foreign Exchange Management Act (FEMA) and reported through RBI’s Foreign Exchange Transactions Electronic Reporting System (FETERS).
Every inward remittance code starts with the letter P. Outward remittances (money going out of India) use codes starting with S. So if you are receiving payment from a foreign client, you are always looking at a P code.
In simple terms, the purpose code is how the RBI keeps track of India’s foreign exchange inflows. It tells them whether the money coming in is for exports, freelance services, salary, investment, or something else entirely. This classification affects how quickly your international payment is cleared and how it appears in your compliance records later.
Purpose code list for inward remittance (by category)
Here is the list of purpose codes you are most likely to use (based on the most searched purpose code on Google), grouped by the kind of international payment you are receiving. This is not the complete RBI schedule (which runs into dozens more codes for things like shipping, insurance, and government transactions), but it covers what freelancers, exporters, and service businesses deal with most often.
Export of goods (P01 series)
Code | Use it when the receipt is for |
P0101 | Export bills negotiated, purchased or discounted |
P0102 | Realisation of export bills for goods already shipped |
P0103 | Advance receipt against an export contract (goods) |
P0104 | Export receipts not covered by a shipping bill (courier/post) |
Software, IT and information services (P08 series)
Code | Use it when the receipt is for |
P0801 | Hardware consultancy |
P0802 | Software implementation or consultancy (the main code for IT/ITES exporters) |
P0803 | Database and data processing charges |
P0804 | Repair and maintenance of computers and software |
P0806 | Other information services, including subscriptions |
Royalties and licensing
Code | Use it when the receipt is for |
P0901 | Franchise services (patents, copyrights, trademarks) |
P0902 | Licensing of originals or prototypes (manuscripts, films, IP) |
Consulting, freelance and professional services (P10 series)
Code | Use it when the receipt is for |
P1002 | Trade-related commission on exports/imports |
P1004 | Legal services |
P1005 | Accounting, auditing, bookkeeping and tax consulting |
Business and management consultancy, including BPO and KPO | |
P1007 | Advertising, trade fair and market research services |
P1008 | Research and development services |
P1009 | Architectural, engineering and technical services |
Personal remittances
Code | Use it when the receipt is for |
Family maintenance and savings sent by an NRI | |
P1302 | Personal gifts and donations |
Income, investment and others
Code | Use it when the receipt is for |
P1401 | Salary or compensation from a foreign employer |
P1406 | Repatriation of profits to an Indian entity |
P1407 | Dividends received from abroad |
P0006 | Foreign direct investment into Indian equity |
P0009 | Foreign portfolio investment into Indian equity |
P1501 | Refunds and rebates on imports |
P1502 | Reversal of wrong entries, refunds for non-import remittances |
P1590 | Other receipts below USD 10,000 with no specific code |
If you receive payments through Infinity, you do not have to memorise any of this. Infinity has a built-in purpose code finder that suggests the correct code based on what your payment is actually for, so you are not left guessing between P0802 and P1006 on your own. Also, your dedicated account manager will help you at every step so that you are not stuck with matters like purpose code, and you receive international payments seamlessly.
How to pick the correct purpose code (step-by-step)
Identify what the money is actually for. Not your industry, not your company type, but the specific work this particular invoice covers.
Check if it is goods or a service. Goods exports fall under the P01 series. Services fall under P08, P09, or P10 depending on the type of service.
Match the code to the exact nature of the service. A software build is P0802. A consulting or BPO engagement is P1006. A market research project is P1007. These get mixed up often, so read your own invoice line item carefully before picking a code.
Check if it is a full payment or an advance. For goods, a shipped-order payment is P0102, while an advance is P0103.
Keep it consistent with any related filing. If you are filing SOFTEX for software exports or EDPMS for goods exports, the purpose code needs to match that filing. If this is unmatched, then your export record can be flagged as unrealised.
If you are ever unsure, it is always better to have someone double-check before the payment is initiated rather than after. This is one of the things Infinity’s personal account managers help with directly; they will confirm the right code with you before your client sends the payment, so you are not troubleshooting it after the money is already stuck.
What your client or payer should write in the wire transfer
The purpose code your bank applies is often influenced by what your overseas client writes in the payment narration. A vague description like “consulting fee” or “services” on a software payment can push your bank towards the wrong code, even if your invoice is perfectly clear.
Before your client sends a payment, share the exact nature of the work with them in plain language (for example, “payment for software development services”) so their bank’s narration and your invoice describe the same thing. This one step prevents a large share of purpose code mismatches before they even happen.
What happens if you use the wrong purpose code
Using an incorrect purpose code does not always block a payment outright, but it usually creates one or more of these problems:
Delayed or held credit. Your bank may pause crediting the amount to your account until the code is confirmed or corrected.
Mismatched export records. If you are filing SOFTEX or EDPMS, a mismatched code can leave your export shipment or invoice showing as unrealised.
FIRA/FIRC discrepancies. The purpose code appears on your Foreign Inward Remittance Advice or Certificate, so a wrong code here can cause issues later if you need it for GST refund claims or tax filing.
Repeated scrutiny. Banks tend to flag accounts that repeatedly use incorrect codes, which can mean more questions on future remittances.
How to fix a wrong purpose code
If you notice the wrong code has already been applied to a payment, here is what to do:
Contact your bank’s forex or remittance desk immediately. The sooner you raise it, the easier the correction.
Share the transaction details. This includes the UTR (Unique Transaction Reference) number, amount, currency, and the date the payment was credited.
Submit supporting documents. An invoice, contract, or work order that clearly states the actual nature of the payment is usually enough.
Request a corrected FIRA or FIRC. Once the bank updates the code, ask for a revised document reflecting the correct purpose, since this is what you will need for any future compliance or refund filing.
This is another place where having support matters. Infinity auto-generates your FIRA for every payment you receive. If ever a correction is needed, your dedicated account manager will help you directly rather than leaving you to chase the bank’s forex desk on your own.
FAQs
What is a purpose code for inward remittance?
It is a 5-character RBI code, starting with P, that tells your bank why a foreign payment has arrived in your account. It is mandatory under FEMA reporting.
What is the difference between P codes and S codes?
P codes are used for inward remittances (money coming into India). S codes are used for outward remittances (money going out of India).
Which purpose code should freelancers use?
It depends on the nature of the work. Software and IT freelancers typically use P0802. Consultants, including BPO and KPO work, typically use P1006. Design, research, or advertising-related work usually falls under P1007.
What happens if the purpose code is wrong?
Your payment may be delayed or held by the bank, and your export or FIRA records can show a mismatch. You can request a correction from your bank with supporting documents.
Where do I find my purpose code after receiving a payment?
It is listed on your FIRA or FIRC, usually alongside the transaction’s UTR number and payment details.
Can I correct a purpose code after the transaction is reported?
Yes, in most cases. Contact your bank with the correct details and supporting documents such as an invoice. The process varies slightly by bank, so it is best to raise it as soon as you notice the error.
Do domestic transfers like UPI or RTGS need a purpose code?
No. Purpose codes apply only to foreign inward and outward remittances reported under FEMA, not domestic transfers.





