<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Change Brief</title>
    <description>The latest articles on DEV Community by Change Brief (@briefchange).</description>
    <link>https://dev.to/briefchange</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4208088%2Fbbbeb65e-e84c-46bb-9a51-f6bf5c709fae.png</url>
      <title>DEV Community: Change Brief</title>
      <link>https://dev.to/briefchange</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/briefchange"/>
    <language>en</language>
    <item>
      <title>3 Late-Payment Emails for Freelance Developers</title>
      <dc:creator>Change Brief</dc:creator>
      <pubDate>Mon, 26 Oct 2026 09:54:45 +0000</pubDate>
      <link>https://dev.to/briefchange/3-late-payment-emails-for-freelance-developers-35g8</link>
      <guid>https://dev.to/briefchange/3-late-payment-emails-for-freelance-developers-35g8</guid>
      <description>&lt;p&gt;You shipped the feature, fixed the bugs, and answered the "quick question" that turned into a two-hour debugging session. The invoice went out on the first of the month. Thirty days later: nothing.&lt;/p&gt;

&lt;p&gt;The most I have ever waited on was $4,800. The client answered every message within a day - "accounts is processing it", "the approver is on holiday", "next Friday, promise". What got it paid was not a longer or angrier email. It was the third email in a sequence I already had sitting in my drafts folder, sent on day 30, worded almost exactly like the one below. The money arrived in 48 hours.&lt;/p&gt;

&lt;p&gt;If you freelance or run a small dev shop, chasing payment for finished work is one of the worst parts of the job. The fix is not a better apology for asking. It is a process: the same three emails, on the same days, every time.&lt;/p&gt;

&lt;p&gt;Here they are, copy-paste.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 7: the polite nudge
&lt;/h2&gt;

&lt;p&gt;At seven days past the due date, assume a boring explanation. The invoice was missed, routed to the wrong person, or stuck in an approval queue. Your goal is a response without friction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subject: Quick follow-up on invoice #[NUMBER]&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi [CLIENT NAME],&lt;/p&gt;

&lt;p&gt;I'm following up on invoice #[NUMBER] for [PROJECT/DELIVERABLE], which was due on [DUE DATE].&lt;/p&gt;

&lt;p&gt;Could you confirm that it's been received and let me know when I can expect payment?&lt;/p&gt;

&lt;p&gt;For reference, the outstanding amount is [AMOUNT].&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br&gt;
[YOUR NAME]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why this works: you identify the invoice, state the amount, and ask for one specific next step. No accusation, no essay.&lt;/p&gt;

&lt;p&gt;Send it in the original invoice thread so the context travels with it. If they reply with a payment date, write it down. A promise in a casual email is easy to forget - yours and theirs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 14: the firm follow-up
&lt;/h2&gt;

&lt;p&gt;Two weeks late, be more direct. This message says the balance needs attention; it does not ask whether anyone saw your last email.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subject: Payment overdue - invoice #[NUMBER]&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi [CLIENT NAME],&lt;/p&gt;

&lt;p&gt;Invoice #[NUMBER] for [AMOUNT] was due on [DUE DATE] and remains unpaid.&lt;/p&gt;

&lt;p&gt;Please confirm the scheduled payment date by [RESPONSE DEADLINE].&lt;/p&gt;

&lt;p&gt;If payment has already been processed, please disregard this reminder and let me know so I can update my records.&lt;/p&gt;

&lt;p&gt;Thank you,&lt;br&gt;
[YOUR NAME]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why this works: it replaces a vague request with a clear action and a deadline, and it gives the client an easy out if payment is already moving.&lt;/p&gt;

&lt;p&gt;Set the response deadline at two business days. If the answer is "waiting for approval," ask when approval is expected. If "accounting pays on Fridays," ask which Friday your invoice is scheduled for. Turn "we'll get to it" into something you can track.&lt;/p&gt;

&lt;p&gt;Check your contract before this email. If it allows late fees, interest, or pausing work, know the terms before you invoke them. Never add fees the contract does not mention.&lt;/p&gt;

&lt;p&gt;These templates are communication examples, not legal advice. Check your contract and applicable local law before adding late fees or taking collection action.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 30: the final notice
&lt;/h2&gt;

&lt;p&gt;A month overdue changes the conversation. Stay polite, but do not send a third email that sounds like the first one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subject: Final payment notice - invoice #[NUMBER]&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi [CLIENT NAME],&lt;/p&gt;

&lt;p&gt;Invoice #[NUMBER] for [AMOUNT], originally due on [DUE DATE], remains outstanding despite my previous follow-ups.&lt;/p&gt;

&lt;p&gt;Please arrange payment in full by [FINAL DEADLINE] or contact me by that date to confirm a concrete payment arrangement.&lt;/p&gt;

&lt;p&gt;If the balance remains unpaid and I have not received an agreed resolution, I will consider the next steps available under our agreement and applicable law, which may include formal collection or recovery proceedings.&lt;/p&gt;

&lt;p&gt;Please confirm receipt of this notice.&lt;/p&gt;

&lt;p&gt;Regards,&lt;br&gt;
[YOUR NAME]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why this works: it is factual, it documents the history, and it sets an explicit deadline without threats you cannot carry out.&lt;/p&gt;

&lt;p&gt;Only name actions you are genuinely prepared and legally entitled to take. Before formal recovery, review your agreement, preserve the invoices and correspondence, and check the rules in the relevant jurisdiction. And do not assume you can shut down a live service, revoke access, or withhold source code - your contract decides that, not your frustration.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens between the emails matters as much
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Keep a payment log.&lt;/strong&gt; Invoice number, amount, due date, reminder dates, responses, promised dates. The day you have three late invoices, this log is the only thing keeping the story straight.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separate payment from new work.&lt;/strong&gt; A client who has not paid asking for another feature is not an automatic yes. Review the agreement and discuss a pause or revised schedule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make paying easy.&lt;/strong&gt; Every email includes the invoice, the amount, payment instructions, and the reference their accounting needs. Every extra step is another week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix the next contract.&lt;/strong&gt; Explicit payment terms, a defined invoicing schedule, a stated late-fee rule. For larger projects, milestone payments instead of one big invoice at the end.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do not let one client be your whole business.&lt;/strong&gt; A great relationship is still a financial risk if one unpaid invoice stops you paying your own bills.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Build the system before you need it
&lt;/h2&gt;

&lt;p&gt;The best time to decide how you handle late payment is before an invoice goes overdue. Set three calendar reminders for days 7, 14, and 30, save the scripts as templates, and when the day comes you fill in the brackets and send. You follow a process instead of writing an email while frustrated.&lt;/p&gt;

&lt;p&gt;Your turn: what is worse - clients who ignore reminders, clients who keep promising "next week," or clients who dispute the invoice after the work is done? And what actually worked for you?&lt;/p&gt;




&lt;p&gt;Written by the Change Brief team - we build practical, no-signup toolkits for freelancers.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;AI assistance was used in drafting this article. The publisher reviewed and edited the content and takes responsibility for the final version.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Your client added 'one small thing' again. Here is the exact reply.</title>
      <dc:creator>Change Brief</dc:creator>
      <pubDate>Mon, 26 Oct 2026 08:00:31 +0000</pubDate>
      <link>https://dev.to/briefchange/your-client-added-one-small-thing-again-here-is-the-exact-reply-2a38</link>
      <guid>https://dev.to/briefchange/your-client-added-one-small-thing-again-here-is-the-exact-reply-2a38</guid>
      <description>&lt;p&gt;You shipped the fixed-price site. Then the client emails: "Can you just add a blog section? Should be quick." If you freelance or run a small dev shop, you know exactly what happens next.&lt;/p&gt;

&lt;p&gt;Here is the reply I send now:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Happy to help with this. It falls outside the original scope, so I can either swap it for [existing deliverable] or quote it as an additional item. Which works better for you?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is Script 1 of 9. The rest of this post is why it works, the other two scripts I use most, and the math that made me stop giving this work away.&lt;/p&gt;

&lt;p&gt;A client of mine once ended a call with the blog-section line. I said "sure, no problem" because that is what you say when you like the client and want the next invoice paid on time. The blog section was two weeks of work. I did the two weeks. I did not invoice for them. That was an expensive way to learn that scope creep is not a communication problem. It is a billing problem, and it has a script.&lt;/p&gt;

&lt;h2&gt;
  
  
  The framework: acknowledge, clarify, price
&lt;/h2&gt;

&lt;p&gt;Every scope-creep request gets the same three-part reply:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Acknowledge the request positively.&lt;/strong&gt; You are not refusing. You are being a professional who tracks what things cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clarify: swap or add?&lt;/strong&gt; Every new item either replaces an existing deliverable or is new work. Make the client pick. This one question kills most scope creep, because it forces the trade-off into the open.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State the cost in writing.&lt;/strong&gt; Not on a call. In writing, with a number, before the work starts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The order matters. If you skip to step 3, you sound adversarial. If you skip step 2, you end up doing the original scope &lt;em&gt;and&lt;/em&gt; the additions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Script 2: the big ask
&lt;/h2&gt;

&lt;p&gt;When the request is clearly a new phase of work:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is a great idea and I want to do it properly. It is outside what we scoped, so I will put together a short change brief: what it includes, what it costs, and how it moves the timeline. You will have it tomorrow, and nothing starts until you approve it in writing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Note what this does: you said yes to the relationship, yes to the work, and no to doing it for free. All in three sentences. "Nothing starts until you approve it in writing" is the load-bearing sentence. Say it every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Script 3: the retroactive ask
&lt;/h2&gt;

&lt;p&gt;The worst kind: they mention, after the fact, that they assumed something was included.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I understand you read it that way, and I should have caught the ambiguity earlier. Looking at our agreement from [date], the scope covers [X, Y, Z]. This item is new, so here are the two ways we can handle it: swap it for something in the current scope, or I quote it separately. I do not want billing surprises for either of us.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;"I should have caught the ambiguity earlier" is deliberate. You give them a face-saving exit, and in exchange the swap-or-pay frame stands. You are not conceding the work is free. You are conceding that contracts are read optimistically by people who want things.&lt;/p&gt;

&lt;h2&gt;
  
  
  The math that makes this non-negotiable
&lt;/h2&gt;

&lt;p&gt;Freelancers treat each "small thing" as too petty to bill. Run the annual number instead. If you give away 30 minutes a day on a $100/hour rate, that is $12,500 a year. That is not a rounding error. That is a used car, or two months of runway, every single year.&lt;/p&gt;

&lt;p&gt;The five-minute reply that prevents it costs nothing but the discomfort of sending it. The discomfort fades after the third time. The $12,500 does not fade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Approvals live in writing, or they do not exist
&lt;/h2&gt;

&lt;p&gt;Every scope decision, every approval, every "yes go ahead" gets an email or a message you can point to later. Not because clients are dishonest. Because in six weeks, both of you will remember the conversation differently, and the written record is the only version that invoices.&lt;/p&gt;

&lt;p&gt;My rule: after any call where scope comes up, I send a two-line recap. "Confirming: we are swapping the testimonial section for the FAQ block, no price change." One reply of "confirmed" and I am covered. It takes ninety seconds.&lt;/p&gt;




&lt;p&gt;The client with the blog section? I still work with them. The next time they called with "one small thing," I sent Script 1. They chose the swap, we both knew exactly what the project was, and the invoice after that was paid in four days.&lt;/p&gt;

&lt;p&gt;Scope creep is a billing problem. Treat it like one.&lt;/p&gt;

&lt;p&gt;What is the worst "one small thing" you have ever gotten?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: this article was drafted with AI assistance and reviewed and edited by the Change Brief team before publication.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>career</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
