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

5 KiB
Raw Blame History

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.