Back to blog
Business

Working with international clients in USD: complete setup (from contract to payment)

By Flávio Emanuel · · 11 min read

I received $8500 from an international client in 2024. I charged in BRL, received in BRL. It was safe, but they asked for a discount because “it was expensive for them”.

2025 I decided to charge in USD. Offered $5000 for similar project. American client accepted. French project I offered $6500, accepted. Dutch project, $7800, yes.

Difference isn’t just a bigger number in my account. It’s that client finances in their currency. They don’t see exchange, they see direct cost. And when clients see direct cost, negotiation is another level.

This post is for anyone wanting to monetize in USD without fiscal or operational complications.

Your receiving stack

Three main ways:

  1. Wise: you create account, client sends money directly (like American checking account). You withdraw in BRL. Wise fee is 0.5-1% average.

  2. PayPal: everyone knows it. 2.5% fee plus $0.30 per transaction. Slower than Wise to withdraw.

  3. Husky: new, Brazilian startup. You receive USD in Husky account, withdraw in BRL. 0.5% fee, instant withdrawal. Better than Wise/PayPal operationally.

The truth:

  • If client is in Silicon Valley: Wise. Direct bank, familiar.
  • If client doesn’t want complications: PayPal. More expensive, but everyone uses it.
  • If you want best rate + fast withdrawal: Husky.

I use Wise + Husky. Wise for clients asking for invoice/IBAN. Husky for clients who just want quick transfer.

Bilingual contract

Here’s the legal part. You don’t need a lawyer. A template works. Let me write the minimum:

WEB DEVELOPMENT SERVICES - INTERNATIONAL CONTRACT

Client: [Name]
Freelancer: Flávio Emanuel
Date: [DD/MM/YYYY]

1. SCOPE OF WORK
   - Homepage with 5 responsive sections
   - Blog integrated with Sanity CMS
   - Contact form
   - Deploy on Cloudflare
   - Performance testing (Lighthouse)

2. PRICE AND PAYMENT
   Price: USD $5,000.00 (five thousand US dollars)
   Currency: Transactions in USD
   Exchange rate: Uses exchange rate on day of receipt (no markup)
   
   Payment schedule:
   - 50% ($2,500) on contract signature (deposit)
   - 50% ($2,500) on final delivery (approval)
   
   Payment method: International bank transfer (SWIFT/Wire)
   Bank details provided separately via encrypted email

3. TIMELINE
   - Kick-off meeting: [date]
   - Design approved: [date]
   - MVP ready: [date]
   - Deploy: [date]
   - Final deadline: [date]

4. APPROVALS AND REVISIONS
   - Up to 3 revision rounds included
   - Each additional revision: USD $200

5. INTELLECTUAL PROPERTY
   All code and design generated is Client property after full payment.
   Freelancer retains right to use project as portfolio/case study.

6. LIABILITY LIMITATION
   Freelancer is not responsible for hosting, security, or maintenance after delivery.
   Post-launch support: USD $150/hour (optional).

7. TERMINATION
   Either party may terminate with 7 days written notice.
   If Client terminates, completed work will be paid proportionally.

8. APPLICABLE LAW
   This contract follows Brazilian law and jurisdiction of [City], Brazil.
   Any dispute will be resolved through mediation before litigation.

Digitally signed by:
Flávio Emanuel
Freelancer
CPF: [your CPF]
Email: [your email]

Client:
[Name]
Date: [DD/MM/YYYY]

Send via DocuSign, HelloSign, or even signed PDF. International client wants receipt documentation? Send this contract + your invoice.

Invoice

Do you need to issue tax invoices? No. Do you need a receipt to send to client? Yes.

Simple template:

INVOICE

Invoice #: 001/2025
Invoice Date: May 26, 2025
Due Date: June 26, 2025

FROM:
Flávio Emanuel
CPF: [your CPF]
Email: [your email]
Address: [your address]
Brazil

TO:
[Client Name]
[Company]
[Address]
[Country]

DESCRIPTION OF SERVICES:
Web Development Project - Homepage and Blog
(as per contract dated [DD/MM/YYYY])

AMOUNT: USD $5,000.00

Payment Terms: 50% upon signing, 50% upon delivery

Payment Instructions:
Bank: Wise / Husky
Account: [your banking details]
SWIFT Code: [if applicable]

Currency: USD
Exchange Rate Applied: [rate on day of receipt]
Conversion to BRL: R$ [value in BRL, for reference]

Notes:
- This invoice is for international freelance services
- Payment should be made in USD to the provided account
- Invoice is provided for record-keeping and potential tax purposes

---
Flávio Emanuel
Freelancer Web Developer
Brazil

Create a template in Google Docs, download as PDF, send to client with email:

“Hi [Client],

As agreed, here’s the invoice for our project. Payment should be made to the account details provided separately. Let me know if you need any clarification.

Best, Flávio”

Done. Client is secure, you’re documented.

Brazilian tax declaration

The part everyone wants to know: is this legal? How do you declare it?

Short answer: Yes, totally legal. You declare as international freelancer.

How to declare:

In your Income Tax Return, you fill:

  1. IRPF (Individual Income Tax):

    • Select “Taxable Income Received from Abroad”
    • Fill with amount received IN BRL (using exchange rate on day of receipt)
    • Declare as “Professional Technical Services”
  2. Conversion value:

    • Use official Central Bank (BC) rate on day of receipt
    • Don’t invent your own rate
    • This is all documented in your bank/Wise/Husky
  3. Example:

    • Received USD 5,000
    • Rate that day: 1 USD = R$ 5.10
    • Declare as: R$ 25,500 foreign income

Honestly, you should declare. Brazilian IRS does check freelancers receiving from abroad without declaring.

Worst case? If you get audited, you need to prove you received USD (your bank proves it), converted to BRL (conversion proof), and declared in tax return (IRPF proof).

If you do everything documented, no legal problem.

How to price in USD

Everyone wants a formula. There isn’t one. But there’s heuristic.

Rule 1: Is your client Brazilian or abroad?

If Brazilian: charge in BRL. If abroad: charge in USD and let them convert if they want.

Rule 2: What’s their budget?

  • Small American startup (seed): USD 3-5k
  • Medium American agency: USD 5-10k
  • Large US company: USD 15k+

Rule 3: Selic rate vs exchange

Here’s the economic question. Selic is 10.5% annually (2026). Exchange varies 2-3% monthly.

If you charge in BRL, your client suffers from high Selic. If you charge in USD, you sometimes suffer from exchange (sometimes).

But practical truth:

International client that comes to you and says “I’ll pay you in USD”, they’re implicitly offering discount. Because in their head, USD is “cheap”. And for you receiving in BRL, it’s even cheaper because exchange keeps varying.

Real strategy:

  1. Think minimum price in BRL (R$5000, R$10k, whatever)
  2. Convert at today’s rate (divide by ~5)
  3. Round to a nice number (USD 1000, USD 2500)
  4. That’s your USD price
  5. American client thinks it’s cheap? Great, you keep bigger margin

My example:

  • Project I charged R$12k from Brazilian client
  • Same project in USD? USD 2500 (which is ~R$12.75k)
  • American client thinks USD 2500 is a great deal
  • You have exchange margin

Real cases

Case 1: Dutch agency

  • Project: Landing page + Stripe integration
  • Quote: USD 4500
  • Wise receipt: 1-2 days
  • Exchange rate that day: 1 USD = R$ 5.15
  • Total received: R$ 23,175
  • My BRL price for similar project: R$ 25k
  • Exchange margin: R$ 1,825 (7%)

Case 2: German startup

  • Project: SaaS app, 6 weeks
  • Quote: USD 8000
  • Wise receipt: 2 days
  • Exchange rate: 1 USD = R$ 5.08
  • Total: R$ 40,640
  • My BRL price: R$ 45k
  • Margin: R$ 4,360 (9%)

Case 3: French freelancer (paying me)

  • Project for him: USD 2200
  • Husky receipt: instant
  • Exchange: 1 USD = R$ 5.20
  • Total: R$ 11,440
  • My BRL price for similar project: R$ 12k
  • Margin: -R$ 560 (5% loss)

Moral: if exchange is very high when you receive, you lose a bit. But long-term, it’s variation game. Sometimes you win, sometimes you lose.

Setup checklist

  • Create Wise and/or Husky account
  • Test small transfer (USD 1-10) to validate banking details
  • Prepare bilingual contract template (store in Google Docs)
  • Prepare invoice template in English + Portuguese
  • Study IRPF form (Foreign Income)
  • Learn Central Bank rate on transaction day (BC website has history)
  • Communicate to client that you accept USD (when appropriate)
  • Define your “price table” in USD
  • Document each transaction (bank, date, amount, rate)
  • Prepare receipts for file (prepare for possible audit)

Final tip

International client in USD is great. You open international market, exchange is usually in your favor, and client is happy paying in their currency.

Brazilian bureaucracy is annoying, but not complicated:

  1. Receive: Wise / Husky (5 minutes)
  2. Withdraw: Automatic in BRL
  3. Declare: Annual IRPF (1 hour)

That’s it. No lawyer, no special accountant.

Want more on freelancing? Read how to price web projects, freelance dev contract essentials, and MEI vs Simples Nacional for devs.

Read also: How to price web projects | Freelance dev contract essentials | MEI vs Simples Nacional

Next step

Need a dev who truly delivers?

Whether it's a one-time project, team reinforcement, or a long-term partnership. Let's talk.

Chat on WhatsApp

I reply within 2 hours during business hours.