Product Updates
Inside the TheyPaid Dashboard: Invoice Status That Actually Helps
4 min readTheyPaid
See how TheyPaid invoice statuses, blockchain monitoring and payout-to-wallet actually appear in the merchant dashboard — with a status map operators can use.
- dashboard
- invoices
- monitoring
Most payment dashboards show a balance you do not fully control. The TheyPaid merchant dashboard is the other way around: the coins never live there. What you are looking at is invoice state — created, watching the chain, paid, short, or expired — while settlement already happened in the wallet you configured.
This is a status map for operators. Pair it with the non-custodial gateway guide if you need the model, or the online store checklist if you are wiring checkout.
What the dashboard is for
TheyPaid describes itself as software for invoices, payment details, public-chain monitoring, and notifications. Open dashboard.theypaid.io when you need to:
- See which invoices are still waiting on a customer.
- Confirm that a “customer says they paid” email matches a transaction the network actually has.
- Check which assets your store currently accepts.
- Pull an invoice ID for support or for your own database.
It is not a place to “release” funds. If the payment was valid, your wallet already has it. If it was not, staring at the dashboard will not create coins.
A status map you can brief support on
Name the states the same way in the dashboard, in your store admin, and in customer emails. A workable map:
| Status | What it means | What you do |
|---|---|---|
| Created / monitoring | Invoice is live. TheyPaid is watching the address for the quoted amount. | Wait. Do not ship. Tell the customer the exact amount and network if they ping you. |
| Paid | Detected payment meets the invoice. | Fulfil according to your confirmation policy. The wallet credit is already yours. |
| Insufficient | Something arrived, but not enough. | Do not fulfil. Send the shortfall or issue a fresh invoice. Never “split the difference” silently. |
| Expired | The monitoring window ended without a qualifying payment. | Issue a new invoice. Do not reuse copy-pasted addresses from old chats. |
The public SDK treats paid, insufficient, and expired as terminal. Your plugin or backend should too. Polling (invoices.poll() in the SDK) is for the in-progress window, not for hoping a terminal invoice changes its mind.
Monitoring is the product, not a spinner
Non-custodial checkout only works if something is looking at the chain. TheyPaid’s own materials describe monitoring windows (short real-time windows versus longer periodic checks) and that usage stops when payment is detected. That is the operator-relevant part: you are not paying to watch an invoice forever after it has already paid.
Practically:
- Short invoices (pay-now checkouts) should use short, real-time monitoring.
- “Pay this quote this week” invoices need a longer window and a clear expiry in the email you send.
- Once status is paid, stop polling. Your systems should key off the terminal state.
If an invoice sits in monitoring longer than your customer claims they paid, the next step is not “trust the screenshot.” Open the invoice, compare asset, destination, and amount to the transaction they sent. Wrong network is still the most common miss.
API, callbacks, and not getting spoofed
Dashboard clicks do not scale. Production stores should:
- Create invoices from the backend (
POST /invoice). - Persist the TheyPaid invoice ID next to your order ID.
- Either poll
GET /invoice/{id}or receive the callback payload. - On any status change, re-fetch or compare id and amounts with what you stored. Fulfil only when those match and status is paid.
TheyPaid’s SDK webhook helpers parse a body and check status === 'PAID'. They also warn that there is no HMAC signature — which means the callback URL must not be the only control. The dashboard remains the human audit trail when a callback fails or a shop staff member needs to see the same object the API returned.
Fees you will see next to an invoice
The pricing page calculates a processing fee from invoice amount (0.65% on very small invoices, stepping down to 0.35% on very large ones). That fee is independent of which coin the customer used. Network fees still belong to the blockchain transaction.
Two numbers people mix up in support tickets:
- Invoice amount — what the customer was asked to send.
- Paid amount — what the API reports actually arrived.
If those diverge, you are in insufficient or overpayment territory. The dashboard is where you reconcile that before anyone ships a box.
A 10-minute operator drill
Before you give customer-support access:
- Create a tiny invoice in the dashboard.
- Pay it from a wallet you control on the correct network.
- Confirm the coins in the wallet and the invoice status in the dashboard.
- Create a second invoice and send the wrong amount. Confirm it lands on insufficient, not paid.
- Let a third invoice expire. Confirm your storefront copy asks for a new invoice, not a retry to the same QR in a stale email.
When those three paths look right, the dashboard is doing its job: it is a status surface for money that already moved on-chain.
Open the TheyPaid dashboard and run the drill with the starting balance from signup before you put crypto on a production checkout.
FAQ
Where do I track TheyPaid invoices?
In the merchant dashboard at dashboard.theypaid.io. Each invoice has a status derived from public blockchain activity for the payment address and amount you issued.
What invoice statuses should my store handle?
Plan for paid, insufficient, and expired as terminal states, plus an in-progress monitoring state while the gateway is watching the chain. Do not fulfil until your rule for “paid” is met.
Do funds sit in the TheyPaid dashboard until I withdraw?
No. TheyPaid is non-custodial. Detected payments are already in your wallet. The dashboard tracks invoice state; it is not a custody balance you withdraw from.