Outpay
Non-custodial USDC checkout that merchants can actually reconcile.
checkout
128.40 USDC
order #A-4417 · base
reconciliation
export → csv · matches order ledger
Non-custodial
Funds move customer to merchant directly. The platform is never in the path.
Reconciliation ledger
On-chain transfers matched back to order references, exportable for accounting.
Settlement state
Optimistic confirmation at checkout, resolved to final in the background.
Hover a marker to see what each part of the interface does.
Settlement time
01{{SETTLEMENT_TIME}}
Fee vs card rails
02{{FEE_DELTA}}
Checkout completion
03{{CHECKOUT_COMPLETION}}
Merchants onboarded
04{{MERCHANTS_ONBOARDED}}
The problem
What was broken before any of this existed.
Crypto checkout products are built for crypto users. Merchants care about settlement, refunds, chargeback exposure and whether their accountant can close the month.
Small ecommerce merchants who want stablecoin settlement without custody risk or a finance rewrite.
Constraints I worked inside
ownership
end to end
role span
of four tracks
shipped
reached users
What changed
The same job, before and after the work.
Before
- Crypto checkout built for crypto users
- Custody risk merchants would not accept
- Payments that accounting could not reconcile
- Checkout spinning through block confirmations
After
- Non-custodial by design, no funds held
- Order references matched to on-chain transfers
- Exports an accountant can close the month with
- Optimistic confirmation, reconciled in the background
The system, end to end
How a request travels through it.
merchant creates a payment intent with amount and order reference
customer pays USDC on Base directly to the merchant address
confirmation watcher reconciles on-chain transfer to the intent
merchant system receives a settled event with the order reference
dashboard exports rows an accountant can match to orders
Where the effort went
Effort split and how quality moved.
$stat --effort
Where the time actually went
- Merchant dashboard38%
- Settlement and reconciliation37%
- Checkout surface25%
$plot --trend
How it moved
Decisions
Every call I made, and the tradeoff I took for it.
Why
Custody turns a software product into a regulated money business, and it is the single biggest reason merchants say no.
Tradeoff accepted
Refunds and disputes get harder, because there is no pooled balance to reverse from.
Weighting
gaincostmy judgement, not a measurement
Why
A checkout that spins for block confirmations loses the sale.
Tradeoff accepted
A small window where an order is marked paid before it is fully final, which the ledger has to resolve.
Weighting
gaincostmy judgement, not a measurement
Why
The buying decision happens when a merchant sees their month close cleanly.
Tradeoff accepted
Slower top of funnel while the product had no public face.
Weighting
gaincostmy judgement, not a measurement
Outcome
What was true after it shipped.
Merchants can accept stablecoin payments without custody exposure or a new finance process.
Reconciliation exports mean crypto revenue lands in the same books as everything else.
The webhook contract mirrors familiar payment processors, so integration is a small change rather than a project.
What worked
Designing backwards from the accountant instead of forwards from the chain.
What was hard
Refund flows. Non-custodial refunds are genuinely harder and I underestimated that at the start.
What I would change
I would validate merchant willingness to pay earlier, with a pricing conversation before the dashboard build.
$./next-step
Hiring for a product engineer who can carry the whole thing?
Send me the role and the problem behind it. I will tell you honestly whether I am the right fit.