Get paid in stablecoins. See every step.
Invoices, checkout and an API for USDC and USDT.
Private beta in development. We will email you when access opens.


Brightline Studio · Brand site, phase 2
- Detected, not started
- Confirming, not started
- Paid, not started
- Settled, not started
Waiting for network confirmations…
Planned networks and stablecoins
- Base
- Arbitrum
- Arc
- Tempo
- USDC
- USDT
- Base
- Arbitrum
- Arc
- Tempo
- USDC
- USDT
From invoice to your wallet, on one visible path.
Create an invoice
Set the amount, the stablecoin and the network. Share a link or a PDF.
Your client pays
From a wallet or straight from an exchange withdrawal. No account needed to pay.
We confirm it on chain
You see detected, then confirmed. Nothing counts as paid until the network finalizes it.
It settles to your wallet
The invoice amount moves to your profile wallet. Keep it, send it, or withdraw to a bank.
One login. A profile for each way you get paid.
Keep personal money, client work and a store apart, each with its own wallet and history.
Invoices your clients can actually pay
Saved clients, due dates and a payment page that shows the exact token and network. Partial payments show what is still due.
Invoice FW-0042
Brightline Studio · due in 7 days
Brand site, phase 2
1,- Detected, done
- Confirming, done
- Paid, done
- Settled

A checkout that names the network.
The payer sees the exact stablecoin, network and amount next to the address and QR code, with a clear warning before they send.
- Pay from a wallet or from an exchange
- Live status from detected to settled
- No sign-up for the person paying
Pay Brightline Studio
SampleSend to this invoice's address
0x7a1c…1d420x7a1c4e2b9d3f60a85c1e7b2d4f9a03c6e8b51d42Send only USDC on Base. Sending another token or using another network may make the funds unrecoverable.
- Detected, done
- Confirming8 of 12
- Paid, not started
- Settled, not started
When a payment does not match, the rules are written down.
Blockchain transfers cannot be stopped once sent, so every case has a rule instead of a surprise.
- Partially paid
- The invoice waits for the rest until it expires. You and your client see exactly what is still due.
- Overpaid
- You receive the invoice amount. The extra is held separately so the payer can claim it back.
- Expired, partially paid
- You can reopen it once, within 6 days after it closes, to collect the rest. Otherwise what arrived is held until a verified refund.
- Sent on the wrong network
- Open a support request from the invoice page. Recovery is reviewed case by case and is never promised.
Refunds come only from held money, one per approved claim. Money already settled to you is never pulled back.
An API that tells you what actually happened.
Built around the problems developers report most with crypto payments.
- Idempotent invoice creation: retries never create a second invoice
- Separate detected, confirmed and settled events
- Signed webhooks with retries and manual replay
- Fetch the current state of any invoice at any time
// Create an invoice (preview)
const invoice = await forwend.invoices.create(
{ amount: "1250.00", token: "USDC", network: "base" },
{ idempotencyKey: "order-1042" },
);
// Handle a signed webhook
const event = forwend.webhooks.verify(rawBody, headers, secret);
if (event.type === "invoice.settled") {
await markOrderPaid(event.data.reference);
}Preview. The API is in design and names may change.
See the net amount before you confirm.
Withdrawals to a bank are always your choice. Before you approve, the quote shows the rate, each fee and what reaches your account.
Withdrawal quote
You send 500.00 USDC
- Exchange rate
- Stablecoin to your bank's currency
- Network fee
- Moving the stablecoin on chain
- Provider fee
- Charged by the payout partner
- Arrives in your bank
- The exact amount, before you approve
Pricing is not set yet. Bank withdrawals depend on your country and our payout partner.
Questions
Be first to get paid with Forwend.
Join the waitlist for early access to invoices, checkout and the API.