169 lines
5 KiB
Markdown
169 lines
5 KiB
Markdown
Got you — here’s a clean, founder-brain-friendly summary of **Stripe → Invoice (Stripe → Xero)** based on everything you’ve been working through, plus **tight next steps** that fit your nights/weekends reality.
|
||
|
||
---
|
||
|
||
## 🧾 What Stripe → Invoice Is (current state)
|
||
|
||
* **Problem you’re 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 it’s 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 you’ve 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 you’re in (important)
|
||
|
||
* You’re 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 it’s 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
|
||
|
||
> You’ve said it yourself: getting paid energises you — lean into that.
|
||
|
||
---
|
||
|
||
### 4️⃣ Do *targeted* cold outreach (low volume, high signal)
|
||
|
||
* 5–10 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 **~3–5 paying users**
|
||
* And they’re still using it after month 1
|
||
|
||
---
|
||
|
||
## 🧠 The big picture (sanity check)
|
||
|
||
* You’re *not* early anymore — you’re **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 — don’t 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.
|