P0804 Purpose Code: Repair and maintenance of computer and software

Skydo makes compliance easy with free and automated FIRA and assisted eBRC closure.
Purpose code P0804 is used when an Indian business receives payment from a foreign client for maintaining or supporting computer systems and software.
| Field | Details |
|---|---|
| Purpose Code | P0804 |
| Category | Telecommunication, Computer & Information Services |
| Used by | Indian IT support, maintenance and managed services providers serving foreign clients |
| Transaction direction | Inward |
| What it covers | Receiving payment for repair and maintenance of computers and software provided to clients abroad |
Revenue Leak Calculator

- ✓ Fees quietly eating margin?
- ✓ Current provider vs Skydo
- ✓ Reclaim what's yours
What is the P0804 purpose code?
Purpose code P0804 is used when an Indian business receives money from abroad for keeping computer systems and software working, as distinct from building or installing them in the first place. This covers support contracts, bug fixing, patching, upgrades, and the repair and upkeep of hardware. The line that matters runs between creating and maintaining: implementing a system is consultancy under P0801 or P0802, and supporting it afterwards is this code, even where the same firm does both for the same client. Under RBI FEMA guidelines, this inward payment is classified under Telecommunication, Computer & Information Services and reported accordingly.
When to use P0804 purpose code?
Use P0804 when you receive money from a foreign client for maintaining, supporting, or repairing their computer systems or software. It is the correct RBI purpose code for ongoing upkeep rather than initial delivery, and it covers both the hardware and software sides of maintenance. P0804 applies to the service itself, whatever your business structure.
When to use a different code:
- Use P0802 when the payment is for software consultancy or implementation rather than maintaining what is already built
- Use P0801 when the payment is for hardware consultancy or implementation
- Use the matching S-code when you are paying a foreign vendor rather than receiving money
Who typically uses P0804 purpose code
Indian IT support and managed services providers billing foreign clients for keeping systems running, including firms on annual maintenance contracts, application support teams, and businesses providing hardware repair and upkeep for overseas customers. It applies whether you invoice as an individual, a proprietorship, or a registered company.
Examples of transactions covered under P0804 purpose code
- Monthly retainer for application support and bug fixing for an overseas client
- Annual maintenance contract fees received from a foreign customer
- Payment for patching and upgrading software already delivered to an international client
- Charges for repair and upkeep of computer hardware at a foreign company's site
When NOT to use P0804 purpose code
- The payment is for building or implementing software rather than maintaining it (use P0802)
- The payment is for hardware consultancy or implementation rather than repair and upkeep (use P0801)
- The payment is for data processing or database services (use P0803)
- The contract bundles implementation and subsequent maintenance together, in which case confirm with your bank how the receipt should be split or classified
Documents required for P0804 purpose code
To receive a payment under P0804, keep the following documents ready so your bank or platform can verify the transaction and report it correctly under FEMA.
| Document | Purpose |
|---|---|
| Commercial invoice - Describes the maintenance or support provided and the amount billed to the foreign client | Maintenance or support agreement - Confirms the scope, the period covered, and the terms agreed with the client |
| Purpose declaration form - The inward remittance form where the purpose of funds is formally stated | KYC documents (if requested) - Used to verify your identity and business during onboarding or compliance checks |
How is a P0804 Purpose Code declared?
Declaring the code is pretty straightforward. Here's how the payment gets tagged and reported.
- Raise your invoice: Bill your foreign client for the maintenance or support work, clearly describing the service and the period.
- Receive the payment: The client sends the money to your bank or receiving account.
- Declare the purpose: State the purpose of the inward remittance, on your bank's form or through your platform.
- Submit supporting documents: Provide invoice, support agreement, and KYC 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 P0804 purpose code
A few common slips can hold up your payment or cause compliance issues. Here's what to watch for.
- Carrying the build code into the support phase: Continuing to use P0802 for a client after the project ends and the relationship becomes maintenance, when ongoing support belongs here.
- Coding upgrades as new development: Treating patches and version upgrades on existing software as fresh implementation, when maintaining what is already delivered sits under this code.
- Code and invoice mismatch: The code not matching what your invoice describes, which flags the payment.
- Incomplete documents: Missing invoice, support agreement, or KYC, 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 P0804 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 P0804 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
P0804 is the RBI purpose code for receiving payment for repair and maintenance of computers and software from a foreign client. It applies to Indian support and managed services providers billing clients abroad, and classifies the payment under Telecommunication, Computer & Information Services 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