juntekim.com/stripe_to_invoice/README.md
2026-02-07 15:17:10 +00:00

169 lines
5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Got you — heres a clean, founder-brain-friendly summary of **Stripe → Invoice (Stripe → Xero)** based on everything youve been working through, plus **tight next steps** that fit your nights/weekends reality.
---
## 🧾 What Stripe → Invoice Is (current state)
* **Problem youre solving**
* UK VAT-registered small businesses using Stripe struggle with **audit-safe, VAT-correct invoices** in Xero
* Existing tools are overbuilt, accountant-first, or break down on VAT, clearing accounts, or reconciliation
* This is fundamentally a **VAT + audit correctness problem**, not just “sync data”
* **Who its for**
* UK solo founders / one-person companies / tiny teams
* Using **Stripe only** (Payment Links + Subscriptions)
* Using **Xero**
* Not accountants, not agencies, not complex multi-channel setups
* **What the MVP does today**
* Stripe OAuth + Xero OAuth both working
* Webhooks flow end-to-end (validated against real finance manager)
* Automatically:
* Creates **clean Xero invoices** from Stripe payments
* Applies VAT correctly
* Posts payments via a **Stripe Clearing account**
* Validated by a finance manager → *very happy* (huge signal)
* **Key MVP constraints (intentional)**
* UK + GBP only
* Stripe Payment Links + Subscriptions only
* Xero contacts matched/created by **email only**
* Willing to:
* Run one-off scripts
* Do manual fixes early
* Goal: **first ~5 paying customers**, not scale yet
---
## ⚠️ Known issues youve already identified
* Xero contact creation:
* Need to **check for existing contact by email first** (currently can fail automation)
* Stripe OAuth:
* Currently creates a **new Stripe app every time** instead of reusing → needs fixing
* Account codes:
* Default behaviour needed on first Xero connection:
* `salesAccountCode = 200`
* `stripeClearingAccountCode = 610`
* Future: auto-detect or create a proper “Stripe Clearing” account and store it
* Missing UX guardrails:
* No clear **pre-payment checklist** before enabling sync
* No UI yet to review/change account codes (fine for v1, but coming)
---
## 🧪 Current mode youre in (important)
* Youre correctly running this in **“design partner / friend test” mode**
* Payments disabled
* Banner: *“Internal test not a commercial product”*
* Clear paper trail of non-commercial intent
* CFO + finance manager already acting as **design partners**
* This massively de-risks VAT/audit assumptions before charging anyone
---
## ✅ What you should do next (ordered, ruthless, realistic)
### 1⃣ Finish the last **correctness blockers** (highest ROI)
These unlock charging real money.
* [ ] Fix Xero contact creation:
* Check by email → reuse if exists → only create if missing
* [ ] Fix Stripe OAuth app reuse (stop creating new apps)
* [ ] Ensure default Xero account codes are set **on first connection**
* sales = 200
* clearing = 610
* [ ] Re-enable “mark invoice as paid” via Stripe Clearing once accounts are valid
> Outcome: rock-solid, boring, accountant-approved flow
---
### 2⃣ Add a tiny **pre-flight checklist UI** (not a full settings page)
* One screen before enabling sync:
* ✔ Stripe connected
* ✔ Xero connected
* ✔ VAT status detected
* ✔ Sales account code shown (read-only for now)
* ✔ Stripe clearing account shown
* Even if its ugly — this prevents 80% of future support pain
---
### 3⃣ Switch from “design partner” → **first paid customer mode**
* Pick **one**:
* A founder you already know **OR**
* A cold UK Stripe + Xero business with obvious VAT needs
* Offer:
* £10£30/month
* “Early access / founder pricing”
* Manual support included
* Goal is **money changing hands**, not scale
> Youve said it yourself: getting paid energises you — lean into that.
---
### 4⃣ Do *targeted* cold outreach (low volume, high signal)
* 510 emails max, not a campaign
* Target:
* UK SaaS / indie founders
* Stripe Payment Links or Subscriptions
* Clearly VAT-registered
* Lead with:
* “I built this because my accountant hated existing tools”
* Emphasise **audit-safe, VAT-correct invoices**
* Not “automation”, not “syncing”
---
### 5⃣ Only then: small UX polish + automation
* UI to review/change account codes
* Auto-detect or create Stripe Clearing account
* Reduce manual fixes you find yourself repeating
* Nothing else until:
* You have **~35 paying users**
* And theyre still using it after month 1
---
## 🧠 The big picture (sanity check)
* Youre *not* early anymore — youre **post-validation, pre-pricing**
* The hard bit (VAT correctness + finance approval) is already done
* The remaining work is boring plumbing + selling
* This is exactly where most side projects die — dont overbuild now
If you want, next we can:
* Draft the **first cold email**
* Write the **“Why this exists” landing page copy**
* Or map a **2-week nights/weekends execution plan**
Just say the word.