ForHosting KIT · Documents & PDF

Generate a demand letter structure template

Three dated facts about an unpaid invoice become a structured letter: the facts first, then your exact request, a 10-day deadline after receipt and your next step. An editable starting point, not legal advice. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Dispute type
Unpaid invoice
Requested resolution
Pay the outstanding balance of $1,250 by bank transfer.
Deadline days
10
Sender name
North Street Studio
Recipient name
Harbor Retail LLC
You get
Subject
Demand concerning unpaid invoice

A useful demand letter is easier to review when its purpose and supporting facts are separated clearly. This generator organizes the information you provide into a neutral template for an unpaid invoice, a security deposit dispute, or a breach of contract. It places the facts first, states the requested resolution, gives a response deadline, and explains the proposed next step. The result is an editable starting point, not legal advice or a determination that any claim, deadline, or remedy is valid.

Start with specific, verifiable facts

A demand letter becomes more useful when another person can follow its history without guessing. Enter each key fact as a separate, concise statement and place events in chronological order when possible. Include exact dates, invoice or agreement references, amounts paid or owed, property addresses, notice dates, and the obligation you believe was not performed.

Describe communications accurately without adding motives you cannot prove. For an unpaid invoice, identify the invoice, due date, balance, and prior reminders. For a security deposit, identify the tenancy, move-out date, deposit amount, deductions or missing statement, and communications with the landlord.

For a contract dispute, identify the agreement, the relevant promise, your own performance, and the conduct you consider a breach. The generator preserves your facts rather than investigating them, so check spelling, arithmetic, names, and supporting records before sending. Avoid including sensitive identifiers that are unnecessary.

Attachments can be listed or provided separately when appropriate, but the letter itself should remain readable and focused on the facts that support the demand.

State one concrete demand and a workable deadline

After the factual background, say exactly what would resolve the dispute. A clear demand might request payment of a stated balance, return of a stated deposit, delivery of promised work, correction of defective performance, or another specific cure. If you leave the requested resolution blank, the generator supplies a broad placeholder suited to the selected dispute type; replace it with accurate details before sending.

The deadline is expressed as a number of calendar days after receipt, which avoids pretending the tool knows when delivery will occur. Choose a period that is lawful and reasonable for the circumstances, and verify whether a contract, statute, court rule, or required pre-suit notice imposes different timing. Do not use the deadline to overstate urgency or threaten action you cannot take.

The assembled section is deliberately direct, but it does not calculate interest, damages, fees, or statutory penalties. If those items matter, verify the basis and calculation independently and describe them transparently. A recipient should be able to understand both the requested action and the time allowed without interpreting vague language.

Describe the next step without making improper threats

The consequence section explains what you intend to consider if the recipient does not comply. Keep it accurate, lawful, and proportionate. Examples may include using a contractually required dispute process, filing an appropriate claim, referring the matter to counsel, or pursuing another remedy that is genuinely available.

The default language is intentionally neutral because available remedies vary by jurisdiction, contract terms, amount, and dispute type. Avoid threats of criminal exposure, public embarrassment, harassment, or unrelated harm as leverage in a private dispute. Before sending, review the complete template for tone and internal consistency, confirm that the named parties are correct, and make sure the demand matches the facts.

Check any notice address, delivery method, signature, attachment, or service requirement that may apply. Keep a copy of the final letter and reliable delivery records. This tool only structures the information supplied; it does not decide whether you have a valid claim, establish that the recipient is liable, or replace advice from a qualified professional familiar with the facts and governing law.

Request payment of an overdue invoice

Turn invoice dates, the unpaid balance, and reminder history into a direct payment demand with a response period.

Request return of a security deposit

Organize tenancy, move-out, deposit, deduction, and notice facts before asking for return or an itemized statement.

Seek a cure for breach of contract

Set out the agreement, promised performance, alleged breach, requested cure, deadline, and intended lawful next step.

Is this legal advice?

No. It is a deterministic writing aid that structures facts you provide. It does not assess liability, select a legal remedy, or determine local notice requirements.

How is the deadline calculated?

The template states the number of calendar days after receipt that you provide. It does not calculate a calendar date or verify whether that period is legally sufficient.

Can the template include my preferred next step?

Yes. Supply a consequence that accurately describes a lawful option you genuinely intend to consider, or use the neutral default wording.

What happens if I leave the requested resolution blank?

The letter gets general wording suited to the dispute type you chose. Replace it with the exact payment or action you want before sending, because a vague demand is harder to answer.

Which facts should I include in a demand letter?

List each key fact as a short, separate statement, in date order where possible: dates, invoice or agreement references, amounts paid or owed, and the obligation you believe was not performed. You can enter up to twenty.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/legal2/demand-letter-structure

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/legal2/demand-letter-structure \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dispute_type":"unpaid_invoice","key_facts":["Invoice INV-104 for $1,250 was issued on June 2, 2026.","Payment was due on July 2, 2026 and remains unpaid."]}'
{
  "dispute_type": "unpaid_invoice",
  "key_facts": [
    "Invoice INV-104 for $1,250 was issued on June 2, 2026.",
    "Payment was due on July 2, 2026 and remains unpaid."
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "legal2.demand_letter_structure",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.
What happens if I provide no key facts?

The request returns an invalid-input error because at least one non-empty fact is required.

What does an API request cost?

Each API request costs $0.002. The browser version can run the same deterministic assembly locally.

Read the full KIT documentation →