Skip to content

Invoicing and Getting Paid: Tools and Best Practices

DodaTech Updated 2026-06-22 5 min read

In this tutorial, you'll learn everything about invoicing and getting paid as a freelance developer. Why it matters: getting paid consistently is the lifeblood of your freelance business. By the end, you will have a reliable invoicing system that ensures timely payments.

Invoicing might seem like a simple task, but poor invoicing practices cause unnecessary payment delays and cash flow problems. A professional invoicing system speeds up payments and reduces administrative overhead.

Essential Invoice Elements

Every invoice must include specific information to be valid and professional.

Element Why It Matters
Invoice number Tracking and reference
Your business name and address Legal requirement in most jurisdictions
Client name and address Identification
Invoice date Payment timeline reference
Payment terms When payment is due
Itemised services What the client is paying for
Total amount due Clear figure
Payment instructions How to pay
Late payment policy Encourages timely payment
# Invoice template

INVOICE #2026-001

From:
Your Name / Business Name
Your Address
Your Tax ID / VAT Number

To:
Client Name
Client Address

Date: June 22, 2026
Due Date: July 7, 2026 (Net 15)

Description                    Quantity    Rate        Amount
Website landing page design    1           $2,500      $2,500.00
Contact form integration       1           $500        $500.00
SEO setup                      1           $300        $300.00
----------------------------------------
Subtotal:                                              $3,300.00
Tax (0%):                                              $0.00
Total Due:                                             $3,300.00

Payment Methods: Bank Transfer / PayPal / Stripe
Bank: [Bank Name], Account: [Number], Routing: [Number]

Late payments subject to 1.5% monthly fee after 15 days.

Expected output: A professional invoice that includes all essential elements.

Invoicing Tools Comparison

Tool Price Best Feature Best For
FreshBooks $15-50/month Automated reminders Small businesses
Wave Free No monthly fee Solo freelancers
Stripe Invoicing 0.4% per invoice Payment processing Tech-savvy freelancers
QuickBooks $25-150/month Full accounting Growing agencies
Bonsai $19-39/month Contract + invoicing Freelancers wanting all-in-one

Payment Terms and Strategies

Set clear payment terms to maintain healthy cash flow.

def calculate_payment_due(invoice_date_iso, terms_days):
    from datetime import datetime, timedelta
    date = datetime.fromisoformat(invoice_date_iso)
    due_date = date + timedelta(days=terms_days)
    return due_date.strftime("%Y-%m-%d")

print(f"Due date: {calculate_payment_due('2026-06-22', 15)}")
print(f"Due date: {calculate_payment_due('2026-06-22', 30)}")

Expected output: Due dates of "2026-07-07" for Net 15 and "2026-07-22" for Net 30.

Handling Late Payments

Late payments are unfortunately common. Have a system for handling them.

flowchart LR
    A[Invoice Sent] --> B{Due Date Passed?}
    B -->|No| C[Wait]
    B -->|Yes| D[Send Gentle Reminder]
    D --> E[Day 7: Friendly Follow-up]
    E --> F[Day 14: Firm Notice]
    F --> G[Day 21: Final Notice + Late Fee]
    G --> H[Day 30: Escalate / Stop Work]
    H --> I[Collections or Legal]

Late Payment Email Templates

# Gentle reminder (Day 1 past due)

Subject: Friendly reminder - Invoice #2026-001

Hi [Client Name],

Just a quick note that invoice #2026-001 for $3,300 was due yesterday.
Please let me know if you need any clarification on the invoice.

Best,
Your Name
# Firm notice (Day 14 past due)

Subject: Overdue invoice #2026-001 - $3,300

Hi [Client Name],

Invoice #2026-001 for $3,300 is now 14 days overdue. Per our agreement,
a late fee of 1.5% per month has been applied.

Updated balance: $3,349.50
Please remit payment within 5 business days.

Best,
Your Name

Expected output: A late payment sequence that escalates appropriately.

International Payments

Working with international clients introduces currency and transfer complexity.

Consideration Best Practice
Currency Specify invoice currency and include exchange rate clause
Transfer fees Add 2-3% to cover conversion costs
Payment method Wise (TransferWise) or Paypal for international
VAT / GST Understand your obligations for cross-border services
function calculateInternationalTotal(baseAmount, currency, feePercentage) {
  const fees = baseAmount * (feePercentage / 100);
  const total = baseAmount + fees;
  return {
    base: baseAmount,
    currency: currency,
    fee: fees,
    total: total
  };
}

console.log(calculateInternationalTotal(5000, "EUR", 3));

Expected output: Total of 5,150 EUR including 3% international fee.

Recurring Billing Setup

For retainer clients, automate your invoicing to save time and ensure consistency.

class RecurringInvoice:
    def __init__(self, client, amount, frequency, start_date):
        self.client = client
        self.amount = amount
        self.frequency = frequency
        self.start_date = start_date

    def generate_schedule(self, months):
        from datetime import datetime, timedelta
        dates = []
        current = datetime.fromisoformat(self.start_date)
        for _ in range(months):
            dates.append(current.strftime("%Y-%m-%d"))
            if self.frequency == "monthly":
                current += timedelta(days=30)
            elif self.frequency == "weekly":
                current += timedelta(days=7)
        return dates

retainer = RecurringInvoice("Acme Corp", 2000, "monthly", "2026-07-01")
print(retainer.generate_schedule(3))

Expected output: Invoice dates for July 1, July 31, and August 30.

Tax Compliance on Invoices

Ensure your invoices comply with tax regulations in your jurisdiction.

Requirement Example
Tax ID / VAT number Your business registration number
Tax rate 0%, 5%, 20% depending on location
Reverse charge For EU B2B services
Receipts Retain copies for 5-7 years

Practice Questions

  1. What are the nine essential elements of a professional invoice?
  2. What is the recommended payment term for freelance projects?
  3. How should you escalate a late payment over 30 days?
  4. What tool is best for international payments?
  5. How do recurring invoices benefit your freelance business?

Answers:

  1. Invoice number, your info, client info, date, terms, itemised services, total, payment instructions, late policy.
  2. Net 15 or Net 30, with 25-50% upfront for larger projects.
  3. Gentle reminder, friendly follow-up, firm notice, final notice with late fee, then escalation.
  4. Wise (TransferWise) for low-fee international transfers.
  5. They save time on manual invoicing and ensure consistent cash flow from retainer clients.

Challenge

Set up a recurring invoice system for a hypothetical retainer client. Create three months of invoices with different amounts to test proration and adjustments.

Real-World Task

Review your current invoicing Process. Identify one improvement from this guide and implement it. Create a new invoice template that includes all nine essential elements.

When should I send an invoice?

Send invoices upon project completion, at agreed milestones, or on the first of the month for retainer work. The sooner you invoice, the sooner you get paid.

What if a client says they never received my invoice?

Use invoicing software that shows when invoices are opened. Send invoices as PDF attachments and follow up with a link. Keep proof of sending in your records.

Should I charge late fees on overdue invoices?

Yes, but communicate the late fee policy upfront in your contract and on each invoice. Waive the first late fee as a courtesy, but enforce it consistently afterward.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro