
- Enterprise SaaS
- 7x customer acquisition
- Featured at Stripe Sessions 2025
Stripe + Taxually
Designing for compliance with constraints

Designing for compliance with constraints
How should a merchant selling in 100 countries file taxes without ever leaving Stripe?
Sidebar-native by default
Filing happens inside Stripe's dashboard, end to end.
Account creation, jurisdiction setup, and filing all happen inside Stripe's sidebar, not a separate destination.
Compliance density made approachable
100+ jurisdictions, up to 10 plain-language questions per country.
Each jurisdiction auto-populates from Stripe merchant data, so the merchant never retypes what Stripe already knows.
Removed the abandonment point
MVP put account creation outside Stripe. V2 brought it back in.
Usability data showed users dropping at the external step. Closing that gap was the highest-leverage post-launch fix.
An embedded tax-filing solution living inside Stripe's dashboard, designed to Stripe's UI rules, shippable for Stripe Sessions.
Stripe processes $1.4T annually across 100+ countries but doesn't file taxes. Merchants selling abroad either file manually, hire accountants, or fall out of compliance. A previous Stripe-TaxJar integration had failed to fix this.
Taxually, a Hungarian VAT/GST specialist covering 100+ jurisdictions, was the next bet. They'd recently acquired LumaTax, the US/Canada compliance company I'd led UX for since 2021.
12 people across 2 orgs
6 internal collaborators
6 external collaborators
Three principals, three different priorities. Every screen had to encompass all three.
| Stakeholder | Wanted | Constraint they couldn't bend |
|---|---|---|
| Taxually | Grow the user base, become Stripe's premier tax partner | Keep filing-workflow ownership |
| Stripe | Premier tax partner filing for millions of merchants | Embedded inside the dashboard |
| Merchants | Understand obligations, file without leaving Stripe, onboard seamlessly | Don't make me learn 100 tax systems |
Primary metric is user growth from a 200-merchants/month baseline.
The Taxually app lives as a sidebar widget inside the Stripe Dashboard. A 60-day free trial invites Stripe Marketplace users in.

Jurisdictions auto-populate from Stripe merchant data. Status chips (Onboarding / Ready to file) show where every country stands. "Continue onboarding" drops the merchant straight into the per-jurisdiction setup.

Tax setup is dense by nature. Some jurisdictions need 10 questions, others need 2. The screen makes that density feel ordinary. A persistent progress indicator (3 of 10 here, with the UK selected). A dropdown to jump to any question. Plain-language help written against each country's tax authority. Inline validation as the merchant types. Clear Previous / Next. The validation copy is mine. "That's a good VAT!" sits inline when a merchant enters a valid tax ID. A small warmth in a regulatory dry zone.

V2 redesign of account creation. A multi-step in-sidebar flow (email → password → company → payment) with merchant data auto-populated from Stripe throughout. MVP usability data flagged the external account-creation step as the primary abandonment point. V2 closed it.

The user is authorizing an actual filing with a real government. The screen earns its weight. Summary card with total estimated tax due ($1.2M USD in this example), status dashboard (Awaiting / Pending / Filed / Error), deadline warnings, multi-select for bulk approval, and explicit authorization above the submit button. "By clicking the button, you authorize Taxually to file selected returns on your organizations behalf."
Two constraints framed every decision. The Stripe Apps SDK and a three-week deadline against Stripe Sessions.
The SDK gave us a pre-built kit and a 320px sidebar width. No calendar component. No navigation primitive. Every visual decision had to come from what Stripe shipped. The constraint forced craft. Date entry became a dropdown. Section navigation became a custom drill-down. Jurisdictions at the top level as the merchant's compliance overview, drilling into settings or filings per jurisdiction, back-button to return. The narrow width was a welcome inheritance. Years designing for mobile made 320px feel like familiar territory.
The deadline ruled out the standard UX ritual. The trade-off was real and chosen. Speed over comprehensiveness. Missing Sessions would have cost more than skipping the ritual.
| Before Taxually | After Taxually |
|---|---|
| Manual tracking | One click in the Stripe Dashboard |
| Hire an accountant | Automated filing across jurisdictions |
| File manually in 100+ jurisdictions | No accountant needed |
| Days to weeks of effort, $$$$, high risk | Minutes, $, low risk |
The path-to-market trade-off was account creation. Stripe wanted frictionless in-sidebar onboarding. I designed it that way. Technical reasons pushed it out of MVP scope against the Stripe Sessions three-week clock. We shipped with account creation outside Stripe. A known-imperfect first impression in exchange for hitting the date.
Stripe Sessions 2025 launched on time. Our work went on stage as Stripe Tax. Partnership branding meant Taxually wasn't named, but the product Vivek Sharma announced from the keynote was the integration we built.
"Stripe Tax is now available in 102 countries, up from 57 last year. [...] Today we're introducing one of your most requested features: global tax registration and filing."
V2 followed. Stripe ran usability studies on the live integration, identified the external account-creation drop-off as the primary friction point, and validated the redesign I had already drawn for MVP. The in-sidebar onboarding became the version every merchant sees today.
| Outcome | Detail |
|---|---|
| 7× merchant acquisition growth | 200 → 1,500 per month |
| 57 → 102 country coverage | Stripe Tax availability nearly doubled, directly attributable to the Taxually integration |
| Stripe Sessions 2025 stage feature | Stripe Tax announced in Vivek Sharma's keynote as one of merchants' most requested features |
In-sidebar account creation was pushed out of MVP for technical reasons. V2 proved how much friction that trade-off introduced. Next time, advocate for it earlier.