DEV Community

delhitaxsolutions
delhitaxsolutions

Posted on

A Developer's Guide to GST and Income Tax in India When Working With Foreign Clients

If you're a software developer in India working with clients outside India, there's a good chance you've already dealt with questions like:

“Should I register for GST?”

“My client is in the US. Do I need to charge GST?”

“How should I report payments received in USD?”

“Which ITR should a freelancer file?”

These questions become more important once freelancing stops being occasional and becomes a regular source of income.

The good news is that you don't need to become a tax expert.

But you do need a system.

This guide explains the basic framework an Indian developer or technical freelancer can use to keep their GST and income-tax compliance organised.

  1. First, separate GST from income tax

This is probably the most important concept.

GST and income tax are not the same thing.

If you're a developer providing software development, consulting, DevOps, cybersecurity, UI/UX or another professional service, your income-tax treatment and GST treatment need to be considered separately.

For example:

You receive ₹20 lakh from a US client.

You cannot simply conclude:

“It's an export, so there is no tax.”

Export treatment under GST and your income-tax liability are separate questions.

Your income may still need to be reported under the applicable income-tax provisions.

  1. Does a developer automatically need GST registration?

No single answer applies to every developer.

The GST registration question can depend on:

Your aggregate turnover
The nature of your services
Where your customer is located
Where the service is supplied
Whether your transactions qualify as export of services
Whether any compulsory-registration provision applies
Other facts surrounding your business

So there are two mistakes to avoid:

Mistake #1: “I'm a freelancer, so GST doesn't apply.”

Mistake #2: “My client is foreign, so GST registration doesn't matter.”

Both can be oversimplifications.

If you need to understand the registration process, Delhi Tax Solutions' GST Registration Guide covers the practical process.

You can also review the GST Registration Threshold Limit 2026.

  1. Working with a US client doesn't automatically solve the GST question

Let's take a simple example.

You are a backend developer in Bengaluru.

A US startup hires you to build APIs.

You send the startup an invoice for $3,000 every month.

The payment reaches your Indian bank account.

What should you do?

Don't start by asking:

“Do I add 18% GST?”

Start with:

“Does this transaction qualify as an export of services under the applicable GST rules, and what are my registration/compliance obligations?”

The details matter.

You should retain your:

Agreement/SOW
Invoices
Payment records
Bank statements
Foreign remittance documentation
GST records, where applicable

Think of these documents as the audit trail of your freelance business.

  1. Your GitHub account doesn't replace your accounting records

As developers, we're used to version control.

Git keeps track of what changed in a codebase.

Your financial records need the same mindset.

For every project, you should ideally be able to answer:

Who was the client?
What service did I provide?
When did I invoice?
How much did I invoice?
In which currency?
When was payment received?
What was the INR value?
What expenses were related to the work?
How was the income reported?

You don't need to build a complicated accounting application.

A spreadsheet can be enough when you're starting.

The important thing is consistency.

  1. Don't treat every bank transaction as business income

Here's a common problem.

Your bank account shows ₹35 lakh of credits during the year.

You conclude:

“My business turnover is ₹35 lakh.”

Not necessarily.

Your bank statement could also contain:

Transfers between your own accounts
Mutual fund redemptions
Loans
Refunds
Family transfers
Reimbursements
Interest
Personal transactions

This is why developers who freelance should reconcile invoices + bank transactions + accounting records.

A separate account for professional transactions can make this significantly easier.

  1. What about expenses?

A developer may have genuine professional expenses such as:

Cloud services
Software subscriptions
Domain names
Hosting
Development tools
Professional services
Business travel
Equipment
Internet
Workspace costs

But don't interpret this as:

“Anything I buy for myself can be deducted.”

The tax treatment of an expense depends on the applicable rules and the nature/use of the expense.

Keep invoices and payment records.

If an expense is partly personal and partly professional, don't blindly classify 100% of it as a business expense.

  1. Which ITR should a software freelancer use?

This is another area where developers sometimes copy what their friends are doing.

That's risky.

Your ITR selection depends on your income profile and applicable rules.

A person earning professional income can have different filing requirements from a salaried employee.

For example, someone with:

Salary
Bank interest

has a very different income profile from someone with:

Software consulting income
Foreign clients
Professional expenses
TDS
Capital gains

The Income Tax Department's current guidance makes clear that ITR-1 is not intended for taxpayers having income from business or profession.

So don't select an ITR simply because:

“My friend uses ITR-1.”

Check your own income profile.

  1. Keep your invoice simple but professional

A developer invoice doesn't need to be complicated.

At minimum, it should clearly identify things such as:

Invoice Number
Invoice Date
Your Name / Business Name
Client Name
Client Address
Description of Services
Amount
Currency
Payment Terms
Bank/Payment Details

If GST applies to your transaction, the invoice needs to follow the applicable GST requirements.

For foreign clients, keep the underlying agreement and supporting payment/remittance documentation as well.

  1. A practical monthly workflow

Here's a workflow that works surprisingly well:

Step 1 — Create the invoice

Give every invoice a unique number.

Step 2 — Record the invoice

Maintain a simple spreadsheet or accounting system.

Step 3 — Match the payment

When the money arrives, mark the invoice as paid.

Step 4 — Save supporting documents

Keep the bank/remittance record and client documentation.

Step 5 — Record expenses

Don't wait until the end of the year.

Step 6 — Reconcile

Compare:

Invoices ↔ Bank ↔ Accounting records

Step 7 — Review GST and tax obligations

Do this periodically rather than discovering everything during ITR season.

  1. What if you have multiple income streams?

This is common in tech.

A developer might simultaneously earn from:

Full-time employment
Freelancing
Open-source sponsorships
Consulting
YouTube
Blogging
Affiliate marketing
SaaS
Digital products
Investments

Don't assume all of these receipts have identical tax treatment.

The nature of each activity matters.

For example, regularly providing software consulting is different from occasionally selling an investment.

Likewise, income from a digital business needs to be analysed based on what you're actually doing and how the income is generated.

  1. Build a “tax repository”

Here's a small productivity trick.

Create one folder for each financial year/tax year.

Inside it:

01_Invoices
02_Client_Agreements
03_Bank_Statements
04_Foreign_Remittances
05_Expenses
06_GST
07_TDS
08_ITR

At the end of each month, put the relevant documents in the folder.

This takes very little time.

But if you ever need to explain a transaction, you'll have the evidence ready.

  1. The developer mindset actually helps

Good developers already understand a few concepts that make tax compliance easier.

Version control → Keep records of changes

Logs → Keep transaction trails

Backups → Keep copies of important documents

Automation → Automate repetitive bookkeeping where practical

Testing → Reconcile numbers before filing

Documentation → Keep contracts and invoices organised

Think of tax compliance as another production system.

You don't want to discover a broken system after deployment.

Final takeaway

If you're an Indian developer working with foreign clients, don't make GST and income tax an end-of-year problem.

Build a small financial workflow alongside your development workflow.

Track:

Client → Contract → Invoice → Payment → Bank → Expense → GST → ITR

Once this becomes a habit, tax compliance becomes much less intimidating.

And if your situation includes significant foreign receipts, GST registration, export-of-services questions, multiple income sources or complex expenses, it's worth getting the complete facts reviewed by a qualified tax professional.

For developers who are starting with GST registration, this GST registration guide is a useful starting point.

For the registration-document side, see the GST Documents Checklist.

Disclaimer: This is general educational information, not individual tax advice. GST and income-tax treatment depends on the specific facts and applicable law.

Top comments (0)