For businesses
Invoices
Send one-time USDC payment requests with a hosted invoice page: the customer pays with one tap, the invoice reconciles itself, and both sides get a receipt.
An invoice is a one-time payment request: an amount, a description, and a hosted page where your customer pays it. When they do, the invoice marks itself paid, the money settles to your wallet, and a receipt exists for both sides. There is no need to chase bank references or match deposits by hand.
How do I create an invoice?
Go to Dashboard → Invoices → New invoice. Two fields are required; the rest make the record more useful:
- Amount: in USDC.
- Description: what the invoice is for; shown to the customer on the payment page.
- Due date (optional): invoices past due show as overdue so you can follow up.
- Bill to (optional): a name, email, or wallet address, for your records and the invoice itself.
- Settles to (optional), which of your named wallets receives this specific payment; defaults to your default wallet.
- Invoice number and memo (optional): your own reference and any note, so Soca invoices slot into your existing numbering.
Developers can create the same invoices programmatically. See the API quickstart.
What does my customer receive?
A link to a hosted invoice page showing your business, the description, the amount, and any due date. Paying takes one tap: the customer signs in with email or Google (or connects their own Solana wallet) and approves a single USDC transfer, with no card, bank details, or account setup friction. Customers never pay network fees. Soca sponsors gas on every transaction.
Like every Soca payment, a customer paying with their Soca account pays 1% less than the listed amount, itemized on their receipt as a discount. Paying from a connected wallet without an account costs the full amount, and you receive the same net either way — Soca covers the customer's discount out of its own fee, never from your share.
What are the invoice statuses?
| Status | Meaning |
|---|---|
| Open | Created and awaiting payment. Share or re-share the link any time. |
| Paid | The payment confirmed on-chain and settled to your wallet. Final. |
| Overdue | Still unpaid after its due date. The link keeps working. The status is a nudge for you, not a lock for the customer. |
How does reconciliation work?
Automatically. That is the point. The moment the payment is confirmed on Solana, the invoice flips to paid and the payment appears in your Payments ledger with gross, fee, and net, linked back to the invoice. There is no matching step: an invoice can only be paid through its own page, so payment and invoice can never disagree. Nothing is marked paid on a timer or a promise, only on on-chain confirmation.
What about receipts and exports?
- Receipts. Every paid invoice has a printable receipt with the details and the settled amount; your customer gets their copy at payment time.
- CSV export. The Export CSV button on the Invoices page downloads all invoices, including amounts, bill-to details, settlement wallet, and status, for your bookkeeping.
- Totals at a glance. The Invoices page tracks total invoiced, paid, and outstanding, and can be filtered by wallet if you route different invoices to different wallets.
Invoice or plan?
Use an invoice for one-time amounts: a project, a deposit, a custom order. If the same customer should pay the same amount on a schedule, create a plan instead and let renewals run themselves.
Was this page helpful?
A quick signal helps us improve the right pages.