Stripe + Taxually

  • Enterprise SaaS
  • 7x customer acquisition
  • Featured at Stripe Sessions 2025

Stripe + Taxually

Designing for compliance with constraints

Sector
Fintech / Tax compliance SaaS
Platform
Web · Stripe Apps SDK
Era
2025
Team
Team of 12
Role
Head of UX, Taxually
Audience
Global Stripe merchants

How should a merchant selling in 100 countries file taxes without ever leaving Stripe?

  1. 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.

  2. 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.

  3. 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.

The brief

An embedded tax-filing solution living inside Stripe's dashboard, designed to Stripe's UI rules, shippable for Stripe Sessions.

The partnership

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.

The team

12 people across 2 orgs

Taxually

6 internal collaborators

  • 1 head of UXme
  • 2 founders
  • 2 PMs (onboarding + filings)
  • 1 lead engineer
Stripe

6 external collaborators

  • 2 tax designers
  • 1 director of partnership
  • 2 tax engineers
  • 1 head of product, tax

My scope

  • Embed at Budapest HQ for 10 days to triage approach with leadership
  • Define workflow and information architecture
  • Adapt Stripe Apps SDK design system and container constraints
  • 30+ Figma screens
  • Interactive prototypes for stakeholder buy-in and engineering hand-off
  • Daily Figma-comment loop with Stripe's design team across the Atlantic
  • Follow-up and finalize delivery at Stripe HQ in San Francisco

Goals

Three principals, three different priorities. Every screen had to encompass all three.

StakeholderWantedConstraint they couldn't bend
TaxuallyGrow the user base, become Stripe's premier tax partnerKeep filing-workflow ownership
StripePremier tax partner filing for millions of merchantsEmbedded inside the dashboard
MerchantsUnderstand obligations, file without leaving Stripe, onboard seamlesslyDon't make me learn 100 tax systems

Primary metric is user growth from a 200-merchants/month baseline.

The work · MVP, 0 to 1 in 3 weeks

Stripe merchants need tax automation, globally

Cactus Practice merchant view in the Stripe Dashboard, with Taxually's "Let's get started filing" email verification step in the right sidebar

The Taxually app lives as a sidebar widget inside the Stripe Dashboard. A 60-day free trial invites Stripe Marketplace users in.

Managing complexity: 100+ countries made manageable

Jurisdictions screen in the Taxually sidebar showing a status header (1 of 11 jurisdictions ready for filing), Continue onboarding link, a list of 9 countries (Australia, Canada, Denmark, France, Italy, Netherlands, Thailand, USA-Alabama, USA-California) with tax-owed amounts and Onboarding or Ready-to-file status chips, and a primary Go to Filings CTA. Callouts label onboarding-progress visibility, per-jurisdiction setup with 10 questions each, Stripe-driven auto-population, chips as instant status indicators, and the primary CTA pointing at the most important next action

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.

Per-jurisdiction setup: tax questions made approachable

Per-jurisdiction setup screen for United Kingdom in the Taxually sidebar, showing a Jurisdiction details header with UK flag, a 3 of 10 completed progress indicator, an All questions dropdown, the third question What is your VAT/TAX ID for this country? with plain-language help text, an Enter VAT number input filled with 123456789 and a green check, the inline validation message Thats a good VAT!, and Previous / Next navigation. Callouts label the always-visible progress indicator, the question dropdown for jumping to any of 10 questions, the plain-language help text explaining tax terminology, the inline validation that catches errors immediately, and Previous/Next for navigation between questions.

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.

Integrated account creation: eliminating the abandonment point

Taxually app sidebar showing General company information as part of integrated account creation. Top bar with Taxually logo, an ellipsis menu, and close X. Settings and Support buttons below the title. A Company and contact section with three input fields (Legal entity name: Cactus Practice; Contact first name: Cathy; Contact last name: Caruso), each labeled Provided by Stripe. A purple Verify company and contact CTA at the bottom. Three callouts on the left identify the in-sidebar account creation as a Stripe Dashboard placement, the multi-step flow (Email > Password > Company > Payment), and auto-population from Stripe merchant account data.

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.

Filing approval: the highest-stakes screen

Taxually app sidebar showing the Filings approval screen. Top bar with Taxually logo, ellipsis menu, and close X. Filings title with a Back link. Settings and Support buttons. A Reporting period ending July 2024 dropdown. A Summary card showing ESTIMATED TAX DUE of $1,234,567 USD and a status dashboard (Awaiting 8 / Pending 0 / Filed 0 / Error 0). Search Filings input. An Awaiting approval section header with Tax due / Due date / Filing frequency columns. A yellow warning box reading Approve by end of day on March 8 in Hungary (CET). Taxually will automatically file return(s) due this month if not approved by the specified date. List items with checkboxes for Australia and Canada at $1,234,567 each, due Aug 15 2024. A purple Approve 8 returns for Jul 2024 CTA. Authorization text below: By clicking the button, you authorize Taxually to file selected returns on your organizations behalf. Five callouts on the right identify the summary card for total tax due at-a-glance, the status dashboard for visual tracking of filing states, deadline warnings for time-sensitive actions, multi-select for bulk approval across jurisdictions, and explicit consent authorization language before submission.

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."

Strategic considerations

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 / after

Before TaxuallyAfter Taxually
Manual trackingOne click in the Stripe Dashboard
Hire an accountantAutomated filing across jurisdictions
File manually in 100+ jurisdictionsNo accountant needed
Days to weeks of effort, $$$$, high riskMinutes, $, low risk

MVP → V2

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.

Outcomes

OutcomeDetail
7× merchant acquisition growth200 → 1,500 per month
57 → 102 country coverageStripe Tax availability nearly doubled, directly attributable to the Taxually integration
Stripe Sessions 2025 stage featureStripe Tax announced in Vivek Sharma's keynote as one of merchants' most requested features

What I'd do differently

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.