P0103 Purpose Code: Advance receipts against export contracts

Skydo makes compliance easy with free and automated FIRA and assisted eBRC closure.
Purpose code P0103 is used when an Indian exporter receives payment from an overseas buyer in advance, before the goods are shipped.
| Field | Details |
|---|---|
| Purpose Code | P0103 |
| Category | Exports (of Goods) |
| Used by | Indian exporters receiving advance payment against confirmed export orders |
| Transaction direction | Inward |
| What it covers | Receiving advance payment against an export contract, ahead of shipment, other than to Nepal and Bhutan |
Revenue Leak Calculator

- ✓ Fees quietly eating margin?
- ✓ Current provider vs Skydo
- ✓ Reclaim what's yours
What is the P0103 purpose code?
Purpose code P0103 is used when an overseas buyer pays an Indian exporter before the goods leave India, whether that is a deposit on order, a milestone payment, or the full amount up front. What separates it from the other export codes is timing: the money arrives first and the shipment follows, so the export declaration that covers the consignment comes later rather than accompanying the receipt. That sequence creates an obligation, since an advance received against an export contract has to be followed by the actual export within the period FEMA allows, or refunded, and the period is worth confirming with your bank before you accept the money. Under RBI FEMA guidelines, this inward payment is classified under Exports (of Goods) and reported accordingly.
When to use P0103 purpose code?
Use P0103 when you receive money against a confirmed export order before the goods have shipped. It is the correct RBI receipt code for advance export payments, whether the advance is partial or covers the full contract value. P0103 applies to the timing of the receipt rather than to the goods or the buyer, so the same customer can pay you under this code on one order and under a different one on the next.
When to use a different code:
- Use P0101 when the goods have shipped and your bank negotiated, purchased, or discounted the export bill
- Use P0102 when the goods have shipped and the export bill was sent on collection
- Use the matching S-code when you are paying a foreign vendor rather than receiving money
Who typically uses P0103 purpose code
Indian goods exporters whose overseas buyers pay up front or on order, including manufacturers taking deposits against production runs, exporters working with new customers on advance terms, and businesses shipping made-to-order goods. It applies whether you export as a proprietorship, a partnership, or a registered company.
Examples of transactions covered under P0103 purpose code
- Deposit received from an overseas buyer on placing an export order
- Full payment taken up front from a new international customer before production begins
- Milestone payment received against a confirmed export contract ahead of despatch
- Advance received to fund raw material purchase for a made-to-order export consignment
When NOT to use P0103 purpose code
- The goods have already shipped and the bill was negotiated, purchased, or discounted by your bank (use P0101)
- The goods have already shipped and the bill went out on collection (use P0102)
- The goods were exported to Nepal or Bhutan, which are excluded from this code and reported separately
- You are paying a foreign vendor rather than receiving (use the matching S-code)
Documents required for P0103 purpose code
To receive a payment under P0103, keep the following documents ready so your bank or platform can verify the transaction and report it correctly under FEMA.
- Export contract or confirmed purchase order - Evidences the order the advance is being paid against and the agreed shipment terms
- Proforma invoice - Sets out what will be supplied and the amount being received in advance
- 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
- The shipping bill and export declaration follow later, when the goods actually ship, and close out the advance against the consignment.
How is a P0103 Purpose Code declared?
Declaring the code is pretty straightforward. Here's how the payment gets tagged and reported.
- Confirm the order: Agree the export contract or purchase order the advance will be paid against.
- Receive the advance: The overseas buyer remits the money before the goods ship.
- Declare the purpose: State the purpose of the inward remittance, on your bank's form or through your platform.
- Submit supporting documents: Provide the contract, proforma invoice, and KYC so the bank can verify the transaction.
- Ship and close it out: Export the goods within the period allowed, file the shipping bill and export declaration, and your FIRA and the shipment records tie the advance to the consignment.
- 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 P0103 purpose code
A few common slips can hold up your payment or cause compliance issues. Here's what to watch for.
- Treating the advance as finished business: Assuming the transaction is complete when the money lands, when an advance against an export contract carries an obligation to actually ship within the period allowed or refund it.
- Coding a post-shipment receipt as an advance: Using P0103 for money that arrived after the goods went out, which belongs under P0101 or P0102 depending on how the bill was handled.
- Code and document mismatch: The code not matching what your export contract describes, which flags the payment.
- Incomplete documents: Missing the contract or proforma invoice, so the bank cannot establish what the advance is against and 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 P0103 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 P0103 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
P0103 is the RBI purpose code for advance payments received against export contracts, where the money arrives before the goods ship. It applies to Indian exporters shipping to overseas buyers other than in Nepal and Bhutan, 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