On this page
Rethinking how freelancers and SMBs create, send, and track invoices. Making the end-to-end billing flow faster, clearer, and built for cross-border payments.
My Role
Lead Product Designer
Company
Sorbet
Timeline
3 weeks (2026)
Team
6 cross-functional
Responsibilities
Overview
For freelancers and SMBs using Sorbet, invoicing isn't a nice-to-have. It's the primary way they request and receive payments from clients. The invoice flow needed to handle cross-border complexity like multiple currencies, stablecoin settlement, and varying payment rails while feeling as simple as sending a text. Every extra step or unclear label was a reason for a client not to pay.
The Problem
The MVP invoice experience shipped with the minimum viable set of fields and flows. It worked, but users were hitting friction in key areas. There was no way to set up recurring invoices, the table lacked clear indicators for amounts received, and the overall flow didn't support the way freelancers and SMBs actually bill.
No recurring invoices
Users could only create one-time invoices. There was no option to set up recurring billing for retainer clients or subscription-based work
No amount received flags
The invoice table had no visual indicators showing how much had actually been received against each invoice, leaving users to manually track partial payments
Limited invoice types
No distinction between one-time and recurring invoices meant users couldn't tailor their billing to different client relationships
Research
We benchmarked against established invoicing tools like Stripe, Acctual, and Wallex, analysing how each structured their invoice creation and payment flows. Some of the gaps we noticed in our own experience became clear:
Invoice type selection
Competitors let users choose the type of invoice upfront. One-time, recurring, or milestone-based. Our flow had no such distinction
Currency control
Users could expressly choose the currency they wanted the invoice to be denominated in. Our flow defaulted without giving control
Payment preview
Proper details on the preview showed exactly how the client would pay the invoice. Payment method, amount in their currency, and settlement details were all visible upfront
I mapped out the invoice flows to cover both paths, one-time and recurring. The flows branch early based on invoice type, with each path handling its own set of inputs before converging at the preview and send steps.
One-time invoice flow
Recurring invoice flow
Solution
The redesigned experience focuses on three things: speed of creation, clarity of status, and transparency for the recipient. Invoices can be created in under a minute with smart defaults. A clear status pipeline shows draft, sent, viewed, paid, and overdue states. And the recipient gets a clean payment page where they choose to pay via stablecoin or fiat, with local currency context so they know exactly what they're paying.
open_in_fullClick any video to expand and watch the full interaction
One-time invoice
Recurring invoice
Invoice details
Client view
Design System
I created a shared component library with colour tokens, typography, spacing, and reusable patterns. This meant the engineering team could build new screens without guessing, and everything stayed visually consistent across the product.
Impact
The new invoice flow cut creation time significantly and gave users real-time visibility into payment status. Support tickets related to invoicing dropped, and the payment completion rate from recipients improved as the payment experience became clearer.
60%
Faster creation
Avg time to send
45%
Fewer tickets
Invoice-related support
28%
Higher completion
Recipient pay rate
Reflections
Invoicing sits at the intersection of two user experiences: the sender creating the invoice, and the recipient paying it. Designing for both audiences simultaneously meant every decision had a dual impact. A field that made the sender's life easier could confuse the recipient, and vice versa. The key was finding the right balance. Enough detail for the sender to feel in control, enough simplicity for the recipient to just pay.
Cross-border payments add a layer of complexity that most invoicing tools ignore. Currency conversion, settlement timing, and payment rail selection all happen behind the scenes, but the design needs to communicate enough about these processes to build trust without overwhelming the user with technical details.
More case studies
Other projects I've worked on