When the Client Forgets to Pay You (or Pretends They Did)

by Arif Ikhsanudin, Backend Developer

It’s awkward, frustrating, and more common than you think.
Handling unpaid invoices gracefully can save relationships—and your sanity.

Don’t Panic, Stay Professional

Your first instinct might be to shout or send a passive-aggressive email. Resist it.

  • Take a deep breath before contacting the client.
  • Assume good intent initially; maybe the payment genuinely slipped through.
  • Keep all communication polite and factual.

Professionalism keeps doors open, even when money is involved.

Gather Your Facts

Before sending any reminder, know exactly where things stand:

  • Check your invoices, payment records, and contract terms.
  • Note the date, amount, and any agreed-upon deadlines.
  • Document previous communications regarding payment.

Having clear facts strengthens your position and avoids misunderstandings.

Send a Clear, Friendly Reminder

A short, direct message works best:

  • Reference the invoice number and amount due.
  • Politely mention the original due date.
  • Ask if there’s any issue preventing payment.

Example: “Just checking in on Invoice #123, due last Friday. Please let me know if there’s any problem with processing it.”

Escalate Tactfully if Needed

If reminders go unanswered:

  • Follow up with a firmer email or phone call.
  • Offer multiple payment options if possible.
  • Mention consequences lightly, like late fees or pausing work, without sounding hostile.

Firmness protects your business while maintaining professionalism.

Learn and Protect Yourself

After the issue is resolved—or even if it isn’t—think about prevention:

  • Consider contracts with clear payment terms and late fees.
  • Use milestone payments for larger projects.
  • Keep communications and invoices organized for future reference.

Good habits reduce stress and prevent repeat problems.

Closing Thought

Unpaid invoices are painful, but how you handle them defines your business reputation.
Stay calm, be clear, and protect your work—money will follow.

Scale Your Backend - Need an Experienced Backend Developer?

We provide backend engineers who join your team as contractors to help build, improve, and scale your backend systems.

We focus on clean backend design, clear documentation, and systems that remain reliable as products grow. Our goal is to strengthen your team and deliver backend systems that are easy to operate and maintain.

We work from our own development environments and support teams across US, EU, and APAC timezones. Our workflow emphasizes documentation and asynchronous collaboration to keep development efficient and focused.

  • Production Backend Experience. Experience building and maintaining backend systems, APIs, and databases used in production.
  • Scalable Architecture. Design backend systems that stay reliable as your product and traffic grow.
  • Contractor Friendly. Flexible engagement for short projects, long-term support, or extra help during releases.
  • Focus on Backend Reliability. Improve API performance, database stability, and overall backend reliability.
  • Documentation-Driven Development. Development guided by clear documentation so teams stay aligned and work efficiently.
  • Domain-Driven Design. Design backend systems around real business processes and product needs.

Tell us about your project

Our offices

  • Copenhagen
    1 Carlsberg Gate
    1260, København, Denmark
  • Magelang
    12 Jalan Bligo
    56485, Magelang, Indonesia

More articles

How Small Is a Microservice Supposed to Be

Service size is the wrong metric. Cohesion, team ownership, and bounded context alignment are what determine whether a service is well-sized — and most teams are making their services too small, not too large.

Read more

Why Some Software Projects Are Doomed From the Start

“We know this won’t work… but we have to do it anyway.” Sometimes, failure isn’t accidental — it’s scheduled.

Read more

Testing Is Not About Proving Your Code Works. It Is About Knowing When It Breaks.

Most developers write tests to confirm their code does what they just wrote it to do. That is the wrong goal entirely — and it explains why test suites so often fail the team the moment something actually goes wrong.

Read more

Common SQL Anti-Patterns That Slowly Destroy Your Database Performance

SQL anti-patterns are not dramatic failures — they are quiet, compounding inefficiencies that degrade performance gradually until a table grows large enough to make the problem impossible to ignore.

Read more