P0104 Purpose Code: Receipts against export of goods not covered by GR/PP/SOFTEX/EC copy of shipping bill

Skydo makes compliance easy with free and automated FIRA and assisted eBRC closure.
Purpose code P0104 is used when an Indian exporter receives payment for goods sent abroad that fall outside the standard export declaration requirements.
| Field | Details |
|---|---|
| Purpose Code | P0104 |
| Category | Exports (of Goods) |
| Used by | Indian exporters receiving payment for goods shipped outside the standard export declaration route |
| Transaction direction | Inward |
| What it covers | Receiving export proceeds for goods that no standard export declaration or shipping bill covers |
Revenue Leak Calculator

- ✓ Fees quietly eating margin?
- ✓ Current provider vs Skydo
- ✓ Reclaim what's yours
What is the P0104 purpose code?
Purpose code P0104 is used when goods have physically left India and payment comes back for them, but the shipment sits outside the categories that require a standard export declaration. Every other code in the export family assumes a declaration exists to tie the money to the consignment, and this one exists because a narrow set of exports genuinely do not generate one. The condition is that the documentation requirement does not apply to your shipment, not that you did not complete it, and those are different situations with different consequences. Under RBI FEMA guidelines, this inward payment is classified under Exports (of Goods) and reported accordingly.
When to use P0104 purpose code?
Use P0104 when you receive payment for goods exported from India and the shipment legitimately falls outside the standard export declaration requirement. It is the correct RBI receipt code for that narrow case, and it is worth confirming with your bank that your shipment actually qualifies rather than assuming it does. Where a declaration was required and simply was not filed, the answer is to sort the documentation out, not to pick a different code.
When to use a different code:
- Use P0102 when the goods were shipped under a standard export declaration and the bill went out on collection
- Use P0103 when the money is an advance received against an export contract before shipment
- Use the matching S-code when you are paying a foreign vendor rather than receiving money
Who typically uses P0104 purpose code
Indian exporters whose shipments fall outside the standard declaration route, which is a narrow and specific set of cases rather than a general category of business. Because the qualifying conditions are the whole question here, the right first step is confirming with your AD bank that your particular shipment belongs under this code.
Examples of transactions covered under P0104 purpose code
- Payment received for goods despatched abroad where no standard export declaration was required for the shipment
- Proceeds for an export falling within a category exempted from the usual declaration requirement
- Money received against goods sent out under a scheme where the standard shipping documentation does not apply
- Export proceeds where the AD bank has confirmed the shipment sits outside the standard declaration route
When NOT to use P0104 purpose code
- A standard export declaration and shipping bill do cover the shipment (use P0101 or P0102 depending on how the bill was handled)
- The money is an advance received against an export contract before shipment (use P0103)
- The payment is for software or services rather than goods physically leaving India, which reports under the services codes rather than the export of goods family
- You are paying a foreign vendor rather than receiving (use the matching S-code)
Documents required for P0104 purpose code
To receive a payment under P0104, keep the following documents ready so your bank or platform can verify the transaction and report it correctly under FEMA.
| Document | Purpose |
|---|---|
| Exporter declaration - States why the shipment falls outside the standard export declaration requirement, which is the central question on this code | Commercial invoice and despatch proof - Set out what was sent, its value, and evidence that the goods physically left India |
| Purpose declaration form - The inward remittance form where the purpose of funds is formally stated | KYC documents (if requested) - Used to verify your business during onboarding or compliance checks |
How is a P0104 Purpose Code declared?
Declaring the code is pretty straightforward. Here's how the payment gets tagged and reported.
- Confirm the shipment qualifies: Establish with your bank that the goods fall outside the standard export declaration requirement before relying on this code.
- Despatch the goods: Send the consignment and keep proof that it left India.
- Declare the purpose: State the purpose of the inward remittance, on your bank's form or through your platform.
- Submit supporting documents: Provide the exporter declaration, invoice, and despatch proof so the bank can verify the transaction.
- Get your FIRA: Once processed, your FIRA is issued as proof and the payment is reported under FEMA.
- With a traditional bank you handle each step of your payment journey. But with a platform built for cross-border payments, you can preselect a default purpose code so that the payments land smooth.
Save 50% on every international transfer
- Receive from 150+ countries
- Get global accounts
- Zero forex margin
Common mistakes to avoid while using P0104 purpose code
A few common slips can hold up your payment or cause compliance issues. Here's what to watch for.
- Using it to work around missing paperwork: Reaching for P0104 because a declaration was not filed, when the code applies only where the requirement genuinely does not apply to the shipment. A missing declaration is a documentation problem to fix, not a coding choice.
- Coding a services receipt as a goods export: Using P0104 for software or service income because no shipping bill exists, when services report under their own codes and never under the export of goods family.
- Code and document mismatch: The code not matching what your invoice and despatch proof describe, which flags the payment.
- Incomplete documents: Missing the exporter declaration explaining why standard documentation does not apply, so the bank holds funds until provided.
- Missing PAN or KYC: Incomplete verification stops the bank from releasing the payment.
- Using an inward code for an outward payment: Applying a receipt code to money you're sending out instead of the matching outward code.
How Skydo simplifies inward remittance under P0104 Purpose Code
With a bank, you declare the purpose code on your own for every single payment. With Skydo, you can preselect your code once and every payment gets tagged automatically.
- Preselect the code once: Set P0104 as your default and Skydo tags every incoming payment for you, so there's no form to fill on each one.
- No repeat declarations: A bank makes you restate the purpose for every remittance. Skydo does it in the background, the same way each time.
- Instant, free FIRA: Your remittance proof is generated and stored on every payment, ready for your CA, GST, and audits, with no request and no fee.
- Zero FX markup: You get the live mid-market rate with a flat, visible fee, instead of a markup hidden inside the bank's rate.
- Settled in 24 hours: Your payment reaches your Indian bank within a day, fully reported and compliant.
Get international bank accounts in 5 mins
Save as much as ₹10 lakh annually with Zero FX Margin
Real time payment tracking and instant FIRA
Get international bank accounts in 5 mins
Save as much as ₹10 lakh annually with Zero FX Margin
Real time payment tracking and instant FIRA
Frequently asked questions
P0104 is the RBI purpose code for export proceeds on goods that no standard export declaration covers. It applies where the shipment falls outside the usual declaration requirement, and classifies the payment as an inward goods export receipt under FEMA. A platform like Skydo lets you preselect it so every payment is tagged automatically.
About the author

Solution & Banking
With a decade of experience at Citi Bank, Prashanth leads payments partnerships and solutions at Skydo.
Verified by
Abhilove Sharda