RunoSO - Business OS for Solo Operators LogoRunoSO
FeaturesPricingTemplatesBlogAbout
Sign inStart free
RunoSO LogoRunoSO

Run your solo business. From one place.

Built in India 🇮🇳

Product

FeaturesPricingBlogChangelogRoadmap

Legal

Terms & ConditionsPrivacy PolicyRefund PolicyCookie PolicyData Deletion

Connect

Twitter/XLinkedInInstagramhello@runoso.in
Made by RunoSO
© 2026 RunoSO. All rights reserved.
Back to Blog

Featured Articles

Build in Public

Why I Ditched Notion & Sheets to Build RunoSO

7 min read
Technical Deep-Dive

How I Built a Zero-Knowledge Vault with AES-256

10 min read
Productivity

Best Freelance Tools in 2026 — Honest Stack Review

11 min read
View all posts
  1. Home
  2. Blog
  3. USD to INR Freelance Payments: Fees, FIRC & Invoicing
Finance

USD to INR Freelance Payments: Fees, FIRC & Invoicing

By Gautam Parmar21 September 20268 min read
USD to INR Freelance Payments: Fees, FIRC & Invoicing — featured image

You quote USD 2,000 US client. Wise INR 1,66,000 vs PayPal 1,62,000. Client GST? you Export, no GST? CA LUT? You log INR 1,66k Income without invoiceId src/lib/db/schema.ts:98 — next month FIRC missing, bank purpose code?, hunt email 40 mins.

USD to INR isn't conversion. It's invoice → fee → FIRC → GST → linked transaction.

Why USD to INR Leaks 2-4% Quietly

Three gaps tax foreign income:

  • Fee opacity. Wise 0.6% vs PayPal 4.5% + FX 3% — USD 2000 ×3% = USD 60 = ₹5k lost per invoice, invisible in Sheet USD 2000 → 166000 without fee line. invoices items jsonb src/lib/db/schema.ts:74 can hold Platform fee -₹5k; Sheets Amount text can't.
  • Currency mismatch. invoices currency varchar(10) src/lib/db/schema.ts:70 USD but transactions amount numeric src/lib/db/schema.ts:92 logs INR 166000 — FX delta ₹4k untracked → 2.3% leak.
  • Compliance gaps. FIRC + purpose P0802 + LUT needs invoiceNumber unique src/lib/db/schema.ts:67 + issueDate + amount + clientId chain. Sheet PDF without taxType none|igst src/lib/db/schema.ts:77 + invoiceId → bank Reissue LUT delay 5d.

Without currency + fee + FIRC linked, you celebrate USD 2000 and keep USD 1920.

Platform Fees — The Real Math on USD 2,000

PlatformFeeNet on USD 2,000 = ₹1,70,000FIRC
Wise0.43% + USD 4₹1,68,900 fee ₹1,100Auto
Payoneer3%₹1,64,050 fee ₹5,950On request
PayPal4.4% + FX 3%₹1,57,250 fee ₹12,750No
SWIFTUSD 20 + FX 2%₹1,65,300 fee ₹4,700Auto

₹1,68,900 vs ₹1,57,250 = ₹11,650 per USD 2000 — 6.8% swing. Track Platform Fee transactions src/app/api/transactions/route.ts:91 per payment.

The Linked USD → INR Graph

invoices(currency USD|INR src/lib/db/schema.ts:70, amount numeric src/lib/db/schema.ts:69, taxType none|igst src/lib/db/schema.ts:77, taxRate numeric(5,2) src/lib/db/schema.ts:76, items jsonb src/lib/db/schema.ts:74)
  transactions(currency INR, amount numeric, category Invoice Payment|Platform Fee, invoiceId fk src/lib/db/schema.ts:98, clientId fk, date timestamp src/lib/db/schema.ts:96)
  clients(id, name, email)
investments? not needed here, but wealth after net
cron flips sent→overdue src/app/api/cron/daily/route.ts:46 keeps USD receivables visible

Workflow that keeps proof:

  1. Invoice USD or INR. POST /api/invoices currency:USD amount:2000 taxType:none for export LUT — or currency:INR 170000. items jsonb holds Design USD 2000 ×1. Server computedTotal src/app/api/invoices/route.ts:127 ensures typed numeric.
  2. Send via portal. draft→sent + sendInvoiceEmail portal src/lib/emails/send.ts:347 — client pays Wise NET 7.
  3. Log two transactions. POST type:income category:Invoice Payment INR 168900 invoiceId + POST category:Platform Fee 1100 INR — syncInvoicePaidStatus src/app/api/transactions/route.ts:44 flips sent→paid. Net ₹1,67,800 clear.
  4. Attach FIRC. vaultItems category other src/lib/db/schema.ts:123 name FIRC INV-014 linked clientId src/lib/db/schema.ts:133 — CA finds in 10s.

Excel vs QuickBooks vs FreshBooks vs RunoSO — FX Truth

NeedExcel/SheetsQuickBooksFreshBooksRunoSO
Multi-currencyText USD 2000 — no FX ledgerMulti-currency USMulti-currencyinvoices currency varchar(10) src/lib/db/schema.ts:70 + transactions currency separate — quote USD, receive INR linked
Fee trackingINR 166k flat, fee hiddenExpense Bank Fee manualExpense manualtransactions category Platform Fee + invoiceId → net per invoice auto
Auto compute=2000*85 manual FX errAutoAutoServer taxable*rate/100 src/app/api/invoices/route.ts:121 + computedTotal src/app/api/invoices/route.ts:127 for INR GST side; USD taxType none zeroed correctly
Overdue USDOverdue? YES manualFlagReminderCron sent→overdue lt(dueDate, now) src/app/api/cron/daily/route.ts:49 30 3 * * * vercel.json:4 + daily digest — no USD receivable missed
Recurring USD retainerCopy USD 1500 row, dupRecurring USRecurring`recurringInterval monthlyquarterlyyearly src/lib/utils/recurring.ts:5 clones currency USD amount taxType` correctly
India proofNo LUT, no FIRC linkUS 1099, not FIRCUSinvoiceNumber unique + issueDate + transactions invoiceId chain = FIRC/LUT pack ready; free 5/mo src/lib/plans/limits.ts:28 → Solo ∞

Excel hides FX fee; QuickBooks/FreshBooks auto USD but US proof not FIRC purpose P0802. RunoSO keeps USD→INR net + fee + invoiceId as graph.

GST on Export — Don't Guess

  • With LUT: taxType none taxRate 0 src/app/api/invoices/route.ts:29 — Export under LUT without IGST items note LUT No: ARN.... Zero invoice amount 2000 USD, no cgst_sgst|igst.
  • Without LUT: taxType igst taxRate 18 on taxable INR value — IGST 18% payable, claim refund. Most freelancers get LUT Feb-Mar for next FY — set recurring yearly before FY roll.

Log correct at POST /api/invoices — March GSTR 1 export + LUT reconciliation takes 5m, not 2h.

Mistakes That Cost USD Freelancers

Quoting INR but logging USD hides ₹4k leak — quote USD 2000 then split INR net + Platform Fee. One Income without fee split hides true margin — always split. No invoiceId → bank Which invoice? → always link.


RunoSO invoices USD, logs INR net + fee as linked transactions, keeps invoiceId for FIRC — so every dollar's net is known, not guessed.

→ Keep More of Every Dollar — Try RunoSO Free


By Gautam Parmar — solo founder. Foreign payments that stay profitable and proof-ready.


Keep Reading

  • Quote right: How to Quote in USD & Get Paid in INR.
  • GST: GST Invoicing for Indian Freelancers.
  • Fast invoice: Professional Invoice 60 Seconds.

FAQ

Wise vs PayPal for USD 1500? Wise ₹1,26k net vs PayPal ₹1,17k on USD 1500 @85 — ₹9k diff monthly ₹1.08L/yr. Track transactions category Platform Fee for 3 months, decide with data not anecdote.

Do I charge GST on USD invoices? With valid LUT, taxType:none taxRate 0 — zero-rated export. Without LUT, taxType:igst 18% and claim refund. Set at POST /api/invoices src/app/api/invoices/route.ts:30 — not March fix.

How to prove FIRC quickly? invoices invoiceNumber + issueDate + amount linked transactions invoiceId src/app/api/transactions/route.ts:98 + vaultItems stored FIRC PDF src/lib/db/schema.ts:125 = 3-file pack bank loves. GET /api/transactions?invoiceId=xxx src/app/api/transactions/route.ts:87 pulls chain instantly.

Try RunoSO for Free

Manage clients, invoices, vault, content, and finances — all from one beautiful dashboard.

Start free
Meet RunoSO
SaaS
Unified Workspace
Finance & Invoicing
Credentials Vault
Content Pipeline

Unified Workspace

The ultimate command center for solo operators. Replace Notion, Sheets, and password managers.

  • Unified client database
  • Real-time key metrics
  • Intuitive navigation
Start free todayLearn more about RunoSO

Featured Articles

Build in Public

Why I Ditched Notion & Sheets to Build RunoSO

7 min read
Technical Deep-Dive

How I Built a Zero-Knowledge Vault with AES-256

10 min read
Productivity

Best Freelance Tools in 2026 — Honest Stack Review

11 min read
View all posts
Meet RunoSO
SaaS
Unified Workspace
Finance & Invoicing
Credentials Vault
Content Pipeline

Unified Workspace

The ultimate command center for solo operators. Replace Notion, Sheets, and password managers.

  • Unified client database
  • Real-time key metrics
  • Intuitive navigation
Start free todayLearn more about RunoSO

Related Posts

Finance

How to Invoice International Clients from India Compliantly

Invoice international clients from India — LUT, FIRC, USD quote and IGST handling linked to transactions cleanly daily. Track in RunoSO with linked clients,.

Finance

Freelance Health Insurance & GST: What’s Deductible

Health insurance for freelancers — 80D, GST input and category mapping so premium doesn’t hide in misc expenses yearly. Track in RunoSO with linked clients,.