Overview
SettleBolt lets businesses create payment links and invoices for crypto payments. The customer pays on-chain. Funds settle directly to the merchant wallet that is verified in the dashboard.
SettleBolt does not hold merchant or customer funds.
Share links at settlebolt.com/l/..., settlebolt.com/pay/..., /checkout/?kind=..., or your custom domain.
SettleBolt charges for software, not a percentage of customer payments.
SettleBolt does not automatically pull crypto from a customer's wallet, hold balances, exchange tokens, or custody funds. Customer payments are initiated by the payer and recorded after chain confirmation.
Quick Start
After signup, enter the 6-digit code before accessing the dashboard. You can resend once every 3 minutes, up to 3 resends in a rolling 24-hour period. The daily limit resets automatically.
Enable an authenticator in Settings → Security, then open Wallet. Choose each network explicitly and verify its receiving address. EVM browser wallets use a network-bound signature; receive-only addresses require confirmation.
In Settings, add legal name, VAT/tax ID, registration number, business email, website, and address. These details appear on invoices and branding previews.
Use Payment Links for reusable checkout links, or Invoices for customer-specific billing with line items, due date, and email delivery.
Payments appear in Payments after the watcher sees a supported transfer to your verified wallet and enough confirmations have passed.
Plans and Limits
| Plan | Included | Gated features | Support |
|---|---|---|---|
| Starter EUR 19/mo or EUR 190/year | 25 successful payments/month, 10 active payment links, unlimited invoice drafts, 1 team seat, supported assets, customer management, WooCommerce integration, custom branding, and basic CSV export. | No general API access, custom webhooks, custom domains, Telegram or WhatsApp automation, advanced analytics, or audit logs. | Normal support |
| Pro EUR 49/mo or EUR 490/year | 200 successful payments/month, unlimited payment links, unlimited invoice drafts, 3 team seats, 1 custom domain. | API keys, webhooks, WooCommerce, CSV exports, custom branding, Telegram and WhatsApp integrations, analytics, audit logs. | Priority support |
| Business EUR 149/mo or EUR 1,490/year | 500 successful payments/month, everything in Pro, unlimited payment links, unlimited invoice drafts, 10 team seats with the same standard roles as Pro. | 1 custom checkout domain, standard CSV payment exports, onboarding, and priority technical support. | Onboarding call and priority technical support |
| Enterprise Custom from EUR 499/mo | Custom successful-payment limits, custom API and webhook throughput, SLA, custom domains, dedicated support channel, security review, custom contract/DPA. | White-label, wallet-screening, custom chain/token, and SSO/SAML requirements are scoped case by case. | Dedicated support |
A successful payment is any confirmed payment through an invoice, payment link, checkout, WooCommerce, or API. Drafts, failed payments, expired links, and test-mode payments do not count.
Basic invoice and fixed-amount payment-link collection remains available without a current paid billing period, subject to account, wallet and payment-detection checks. Paid Starter enables its subscription features, including the WooCommerce connection and basic CSV export; general API access and custom webhooks require active Pro or Business access. An expired term does not cancel previously issued payment obligations.
Annual billing includes 2 months free. Monthly billing has no free months. The monthly allowance counts successful live payments, not payment volume, and does not block payment requests or customer checkouts. The dashboard shows usage and warns when the allowance is reached. Monthly usage follows your billing start date, including on annual plans; accounts without a current billing period use calendar months. Contact support if you regularly need a larger plan or want to change tiers during an active paid term.
Supported Assets
Availability depends on the token, chain, and the merchant's verified wallet setup. Checkout always shows the exact asset, network, amount, and recipient address before payment.
Match the contract shown on checkout, not just the wallet symbol. Native USDC and bridged USDC.e/USDbC are different assets. The registered USDT contracts on Arbitrum and Polygon are displayed as USDT0; Optimism uses its legacy bridged USDT contract, not the separate USDT0 contract. Avalanche DAI is DAI.e. Other bridged representations carry bridge risk and may not be supported by your exchange. Confirm the selected network and contract before receiving funds.
Checkout and the payment-link form disclose whether an EVM token is issuer-native, bridged, or omnichain. Circle's USDC registry, Tether's supported protocols, and USDT0 deployments are the primary references. The public GET /api/checkout/assets endpoint returns supported EVM contracts, decimals, display symbols and disclosure text.
| Asset | Supported networks | Notes |
|---|---|---|
| USDC, USDT, DAI | Base, Ethereum, Arbitrum, Optimism, Polygon, Avalanche, zkSync Era, Linea, Scroll where configured | EVM token transfers to your verified EVM wallet. |
| ETH | Base, Ethereum, Arbitrum, Optimism, zkSync Era, Linea, Scroll | Native ETH only. Polygon and Avalanche native assets are not ETH. |
| BTC | Bitcoin mainnet | Native BTC only. |
| SOL, USDC, USDT | Solana mainnet | Native SOL and SPL USDC/USDT. |
| TRX, USDT | Tron mainnet | Native TRX and TRC-20 USDT. Tron USDC is not supported. |
Solana USDC/USDT checkout requires an initialized, unfrozen associated token account for that mint and owner wallet. In Wallet settings, choose Check token accounts. Initialize missing accounts in your wallet; account storage and transaction fees require SOL. SettleBolt only checks readiness and never creates accounts or moves funds. Native SOL does not require a token account.
Every supported asset uses a locked checkout quote. Stablecoin amounts include the EUR exchange rate. Send the exact amount shown, on the specified network.
Automatic recovery or credit is not supported for payments sent on a different network or in a different token, including look-alike or bridged tokens with the same symbol. Contact the merchant with the transaction hash, actual network, token contract and amount. Do not send another payment until the merchant has reviewed the transfer. SettleBolt cannot move funds from the merchant wallet or guarantee recovery; a refund must be arranged separately with the merchant.
For Bitcoin, a transfer observed by our watcher before quote expiry can confirm within the following 24 hours. Checkout shows that confirmation is pending; Bitcoin settlement requires six confirmations, usually about an hour and sometimes longer. Receipts are periodically rechecked against the canonical chain. Receipts less than 144 blocks deep require verification within the last hour; older verified receipts remain in a bounded rotating audit. Any detected mismatch pauses Bitcoin acceptance. A detected reorganization pauses Bitcoin acceptance for review while retaining the original payment and order history; it does not reverse fulfilled orders or issue refunds. Acceptance resumes only after the same transaction output, address and amount are canonical with at least six confirmations and all scan and verification checks are current. If the watcher missed the broadcast, the transfer arrives later, or a replacement transaction was not observed in time, the merchant must review the receipt. Do not send a second payment while waiting.
Bitcoin quote amounts are reserved against earlier quotes. If no unused amount is available within the small rounding allowance, checkout asks you to use another payment method or contact the merchant. Bitcoin outputs that return funds to the sending wallet require review instead of automatic order completion.
LIVE / TEST Mode
Every SettleBolt account has two modes, switched from Settings, LIVE / TEST Mode. The current mode is stored per account, and only an owner or admin can change it. Switching modes never converts or deletes anything. It only changes which records you see and what new links or invoices are created as.
Live mode
The default. Payment links, invoices, hosted checkout, webhooks, and revenue records are all real. Customers pay your verified wallet directly on-chain.
Test mode
For product demos, WooCommerce test setups, and integration testing. New links and invoices are created as demo. Demo checkout uses the same checkout UI with a DEMO * DEMO * DEMO warning and a Complete demo payment button that records a simulated confirmed payment. No funds move on-chain and no real customer emails are sent.
What stays isolated
- Live and demo data never mix. Lists, KPIs, payment counts, and recent activity are filtered by the active mode.
- Demo invoices never send real customer emails.
- Demo checkout confirmation only works for demo links and invoices, never a live one. Demo creation does not require a real receiving wallet or consume the live link allowance. Demo amounts use fixed fixture rates, not market quotes: EUR/USD 1.10, ETH EUR 3,000, BTC EUR 60,000, SOL EUR 150 and TRX EUR 0.25.
- Demo payments are rate-limited, idempotent, and excluded from live payment accounting.
- On-chain settlement only ever attaches real payments to live links and invoices. Demo targets are never settled with real funds.
- Every webhook event carries a
modefield (liveordemo) so integrations can ignore demo events in production.
In the Agent API, set "mode":"demo" when creating a payment link or invoice, and filter list endpoints with ?mode=live or ?mode=demo. An unrecognized mode value is rejected with 400 Invalid mode.
Wallets and Chains
Your wallet is your settlement destination. A payment link or invoice only works when the selected chain has a verified primary receiving wallet.
Base, Ethereum, Arbitrum, Optimism, Polygon, Avalanche, zkSync Era, Linea, and Scroll. Pay with USDC, USDT, and DAI where each is enabled, plus native ETH on ETH-native chains.
Bitcoin - native BTC. Solana - native SOL plus USDC and USDT. Tron - native TRX plus USDT. Supported Solana software wallets can prove ownership with raw Ed25519 signMessage; supported Tron wallets can use TIP-191 v2 signMessageV2. These account-bound, short-lived messages do not send transactions or funds. Solana accounts must be absent or System Program-owned; Tron accounts must be absent or have supported original single-owner permissions verified against solidified chain state. Bitcoin, unsupported message formats, custom programs, multisig or changed permissions, and unavailable account evidence require administrator ownership review. New self-attested EVM receive-only addresses also require review; existing verified wallet records are preserved. Open a support ticket after submitting the address, identify the network and wallet, and provide independently checkable ownership evidence. Administrators review the pending Wallet reviews queue, check the account type on-chain, and record the support-ticket or ownership evidence before enabling receiving. Never send a seed phrase or private key. Supply the owner wallet address, never a token mint, token account, or contract.
Stablecoins USDC / USDT / DAI (EVM), USDC / USDT (Solana), USDT (Tron); and native ETH, BTC, SOL, and TRX, which are quoted live at checkout.
Add a wallet
- Open Wallet in the dashboard.
- Choose a chain and enter a wallet name if you want one.
- For browser wallets, switch to the selected network and sign the challenge. EOA, ERC-1271 and ERC-6492 ownership proofs are supported when that network's RPC is available. For receive-only addresses, paste the exact address and confirm it.
- Set a primary wallet per chain when you have more than one verified address.
Changing a primary payout wallet is delayed by 24 hours. Adding a new network to an established account uses the same delay. Each network has its own primary wallet and pending change. Admins can freeze payout changes if an account looks risky. Connecting one network never configures another.
Replace a primary wallet before retiring it. Verified retired wallets remain watched for at least 30 days and until scan coverage is confirmed; existing payment records remain available. Pending payout targets cannot be removed. Safety limits are 20 connected addresses per network and 100 per account, including addresses still retiring. Contact support if you need more.
Payment Links
Payment links are reusable hosted checkout URLs for fixed EUR amounts. Customers pay in the token and chain you select, and SettleBolt records the on-chain payment when it confirms. Hosted checkout can appear as /l/{slug} or /checkout/?kind=l&slug={slug}.
Reusable live payment links offer an optional email receipt. Check ?Send one receipt to this email after this payment is verified? and choose ?Save receipt preference? before paying. The preference belongs to that checkout quote and session; it is not a marketing subscription or a saved customer profile. A receipt is attempted only after verified, attributed payment. Single-use store orders and invoices keep their existing store or invoice receipt flow. Receipt delivery is not guaranteed: successful or uncertain delivery attempts are not automatically repeated. The receipt preference expires after 7 days. The email address is cleared after the attempt or by scheduled cleanup when it expires; scheduled cleanup removes minimal deduplication and rate-limit records after 30 days from creation. This receipt is not a tax invoice.
Demo links simulate one successful payment per link; repeated simulation returns the existing result. Create another demo link to test another payment. Fixed positive amounts are required. Merchant-editable link expiry is not currently offered; checkout quote expiry is separate.
WooCommerce and Shopify order requests are single-use and keep their original amount, asset and network. Manage their cancellation in the store. They do not consume the reusable-link allowance. After a verified payment, WooCommerce checkout offers a return link to the store. Closed or replaced orders require merchant review of late receipts.
Create a payment link
- Go to Payment Links and click New payment link.
- Enter title, optional description, amount, token, and chain.
- Save the link and copy the checkout URL.
- Share it with your customer.
| Field | Rule |
|---|---|
| Title | Required, up to 120 characters. |
| Description | Optional, up to 500 characters. |
| Amount | EUR cents, minimum EUR 0.01, maximum EUR 1,000,000. |
| Status | Active links can be paid. Inactive or deleted links cannot be paid. |
You can edit a link, deactivate it, reactivate it, copy it, view its payments, or delete it. Deleting is a soft delete: the link is hidden and its active quotes are expired. If an existing link displays Open amount, the customer enters the amount at checkout; otherwise the amount is fixed.
Invoices
Invoices are customer-specific bills with line items, due dates, and a hosted pay page. They start as drafts, then become sent invoices when emailed to the customer.
Create and send an invoice
- Open Invoices and click New invoice.
- Add customer name and email. If you already added the customer, use the customer record.
- Use the suggested invoice number or enter your own unique number.
- Choose currency EUR, token, chain, due date, and line items.
- Click Save draft to keep editing, or Save and send to email the pay link.
Editable. Does not require a verified wallet until you send it.
Can be resent or cancelled. The customer can pay via the invoice checkout page.
Locked after settlement. Confirmed live payments count toward the successful-payment allowance for the month.
Checkout is closed. Payments already sent can still arrive and require review. Use a new invoice to bill again.
The invoice amount must match its line items. Quantities must be positive whole numbers. Sending requires a verified receiving wallet and a healthy payment watcher. Due dates expire at the end of the named day in UTC.
Sent means the invoice has been issued. Its separate email status shows whether the email provider accepted the message, failed, or has an uncertain result. Provider acceptance does not confirm arrival in the customer's inbox. Failed messages can be resent from the invoice detail page or POST /api/agent/invoices/:id/resend.
Invoice email limits: one attempt per invoice per 10 minutes, five per invoice per rolling day, and 500 per account per rolling day with active Pro or Business access (20 otherwise). Failed attempts also count.
Use the printable invoice view and your browser's Print to PDF action. Newly issued invoices preserve seller and customer billing details at issue time; older invoices identify when current profile details are being shown. Tax is not calculated or itemized, and no PDF attachment is emailed.
Customers
Customers appear automatically when you invoice them. You can also add manual contacts before billing them.
First name, middle name, last name, email, phone, and profile notes.
Company/legal name, billing contact, billing email, phone, address, tax status, and VAT/tax ID. Reserved fields may not appear in every dashboard form yet.
Tax status
Business customers can be marked as Taxable, Exempt, or Reverse charge. Use the status your accountant expects for that customer's location and tax relationship.
Customer detail pages show total billed, paid, outstanding, average invoice, invoices, and payments. Removing a manual contact removes the saved contact profile, not historical invoices or payments.
Payments
The Payments ledger shows confirmed, pending, underpaid, overpaid, failed, invoice, link, and direct payments. You can filter by date, status, token, chain, source, transaction hash, or payer address.
SettleBolt verifies the recipient, asset, network, exact raw amount and inclusion window against a session-bound quote. An unambiguous quote can attach a receipt automatically. Unmatched receipts remain unattributed or in review. An owner or admin can reconcile verified receipts to an eligible quote, including partial payments and top-ups; an underpaid order remains unpaid.
Refunds
Because SettleBolt is non-custodial, customer refunds are transfers you arrange from your wallet. Confirm the refund address and network with the customer; the displayed payer address may belong to an exchange or contract. Recording a refund in SettleBolt does not send funds.
Payment CSV export is available on Starter and higher. Customer CSV and analytics exports require Pro or Business. Business uses the same export formats as Pro.
Branding and Custom Domains
Branding controls supported checkout, invoice, and receipt presentation. Custom branding is available on Starter, Pro and Business; one custom checkout domain requires Pro or Business.
| Asset | Rule | Suggestion |
|---|---|---|
| Logo | PNG up to 2 MB. Transparency is recommended, not required. | 600 x 240 px |
| Icon | Square PNG up to 2 MB. Transparency is recommended. | 512 x 512 px |
| Colors | Use valid hex colors such as #0B0B0C. | Brand color for headers, accent color for buttons. |
Custom checkout domain
- Use Pro or Business.
- Open Branding, enter a domain you own, such as
pay.yourbrand.com. - Add the CNAME record shown in the dashboard. The default target is
settlebolt.pages.dev. - If the dashboard shows TXT validation, add that TXT record too.
- Wait for Cloudflare certificate validation to complete.
Do not use settlebolt.com or a *.settlebolt.com hostname as your custom domain.
Team Access
| Role | Access |
|---|---|
| Owner | Full access, billing, team management, ownership transfer, and account deletion. |
| Admin | Manages team, links, invoices, payments, wallet, branding, and settings, except owner-only actions. |
| Member | Manages payment links, invoices, customers, and payments. |
| Viewer | Read-only dashboard access. |
Invites are emailed to teammates. Removing a teammate revokes their sessions for this merchant account. Starter includes 1 seat, Pro includes 3, and Business includes 10.
Billing
Billing is for the SettleBolt SaaS subscription only. Merchants pay SettleBolt with a one-time quoted crypto transfer. This is separate from customer payments.
- Change plan: choose Starter, Pro, or Business and monthly or annual billing.
- Crypto subscription payment: merchants pay SettleBolt from their own wallet with a quoted one-time transfer.
- Pay with crypto: send the exact quoted amount before the payment window expires. This pays SettleBolt's SaaS subscription only.
- Cancel subscription: cancellation stops renewal immediately, and you will not be charged again for that subscription.
- Reactivate: available when a cancelled subscription can still be resumed.
- Receipts: view SettleBolt receipts and invoices for crypto subscription payments. Legacy card receipts may remain visible for older accounts.
- Billing history: admins can view purchases, downgrades, checkout starts, plan changes, and receipts from the admin dashboard.
Help, Tickets, and Feedback
The dashboard sidebar includes Help and Feedback near the bottom.
Create support tickets, view active tickets, and open a ticket detail thread.
Send product feedback, bugs, ideas, praise, and an optional 1-5 rating.
Ticket categories are General, Billing, Payments, Wallets, Technical, Security, and Privacy. Priorities are Normal, Low, High, and Urgent. Ticket subjects can be up to 140 characters and messages up to 4,000 characters.
Analytics
Analytics is available on Pro and Business. It shows total volume, payment count, average payment, average invoice, time series, by-token breakdown, by-chain breakdown, top customers, and top payment links.
Supported ranges include 7D, MTD, 30D, 90D, YTD, 12M, and Custom. Empty states stay quiet when there is no activity in the selected range.
API Overview
The production API base is:
https://api.settlebolt.com
Dashboard routes use the authenticated dashboard session token:
Authorization: Bearer <dashboard-session-token>
Content-Type: application/json
Creating or using general API keys requires an active Pro or Business entitlement. Owners and admins can list and revoke existing keys and messaging connections on every plan, including after expiration. API keys are for SettleBolt's dedicated, scoped server-to-server Agent API (/api/agent/*) - each key carries per-operation scopes (for example invoices:create, payments:read). They are not accepted on dashboard routes, so a key can never manage wallets, billing, team, or account settings. Keys are shown once; treat them like passwords and revoke a leaked key in Developers. Do not expose dashboard session tokens in public client code.
Starter can still use WooCommerce through the dedicated plugin key created by the Connect SettleBolt flow. That key is limited to payment_links:create and webhooks:write.
Endpoint tables, examples, webhook signatures, and payload shapes live in the API and webhook reference.
Machine-readable implementation guidance is available at /docs/llm.txt. The standard /llms.txt path redirects there.
Telegram and WhatsApp
Pro and Business can pair Telegram or WhatsApp senders to scoped agent actions. These channels are for quick operations, not account administration.
Create a 10-minute pairing code in Developers, then send /pair ABCD234567 to the bot. The bot uses buttons for payment links, invoices, customers, payments, account status, help, and clearing recent bot messages.
Create a 10-minute pairing code in Developers, then send link ABCD234567 from WhatsApp. Commands use the same safe agent scopes as the Agent API.
Invoice and payment-link commands first show a preview with the amount, recipient and crypto network. Confirm or cancel within 10 minutes. Telegram has confirmation buttons; WhatsApp shows the exact confirm command to reply with. Repeated taps reuse the same request. Receiving must be available before a request is issued.
For example: send invoice to Alex alex@example.com for EUR 120.50 due 2027-07-16 using USDT on Tron. Use a complete email address or an exact saved customer name. Write amounts as 1234.50 or 1 234,50; ambiguous three-decimal/grouped values such as 1.234 are rejected. Use ISO dates or a written month, such as 16 July 2027.
Recent payments shows live receipts with their raw crypto amounts, network and invoice or link. A missing EUR valuation is marked unavailable. Telegram and WhatsApp cannot manage wallets, payout changes, billing, team access, sessions, account deletion, custom domains, or dashboard settings.
WooCommerce
The SettleBolt WooCommerce gateway creates a hosted checkout payment link for each WooCommerce order, redirects the customer to SettleBolt, and marks the order paid only after a signed payment.confirmed webhook arrives.
Upload settlebolt-for-woocommerce.zip in WordPress Admin, Plugins, Add New, Upload Plugin.
Click Connect SettleBolt in WooCommerce, approve the store in the SettleBolt dashboard, and the plugin key is created automatically with payment_links:create and webhooks:write.
The approval flow registers https://your-wordpress-site.example/?wc-api=settlebolt_gateway and WordPress exchanges a one-time code for the signing secret.
How checkout works
- The shopper chooses SettleBolt at WooCommerce checkout.
- The plugin creates a SettleBolt payment link through
/api/agent/payment-links. - The shopper pays on SettleBolt hosted checkout.
- SettleBolt watches the selected chain and records the payment after confirmation.
- A signed webhook reaches WordPress and the WooCommerce order is marked paid.
Use plugin 0.1.22 or later for a new connection or reconnect. Setup saves replacement credentials in WordPress before activating them. If an activation response is lost, the plugin retries using its saved credentials. The previous connection stays active until activation; existing installations can continue processing without reconnecting. Activation retries depend on WordPress scheduled tasks running.
The WooCommerce store currency must be EUR. The merchant needs an active paid SettleBolt plan. Starter can use the WooCommerce gateway through the dedicated plugin key created by Connect SettleBolt, while general API keys and custom webhooks remain Pro and Business features. Manual key entry is only a support fallback. The plugin never stores wallet private keys and never touches funds.
WooCommerce settings expose the configured EVM, Bitcoin, Solana and Tron asset pairs. Each store selects one pair, and checkout is offered only when that pair and the store's registered webhook are ready.
Webhooks
General webhook creation requires paid Pro or Business access; paid Starter stores connect through WooCommerce. Existing endpoint recovery and delivery history remain available on every plan. Copy the signing secret once and verify every delivery.
Eligible receipts create durable signed payment.confirmed events. Recoverable failures retry for 72 hours with backoff. Automatically disabled endpoints retain paused work. Resume an endpoint or reconnect WooCommerce to recover retained unsuccessful deliveries. The event log shows recorded attempts and errors; manual redelivery queues work for the sender.
POST /api/agent/invoices/:id/issue requires invoices:send and activates a draft without emailing the customer. It checks receiving readiness, snapshots invoice details, and returns the payable checkout URL with email.sent=false, email.skipped=true, and email.code=email_not_requested. Replays for sent, overdue or paid invoices do not send email or create another invoice.
payment.confirmed is the currently delivered merchant webhook event. Ignore other event labels unless this API reference lists them as delivered.
For new live Solana receipts, payer_address is the verified transfer source or null, and payer_role is sender or unknown. fee_payer_address separately records the transaction fee payer, which may be a sponsor. Existing live Solana ledger rows with unproven source identity are marked unknown; historical immutable webhook payloads retain their original contents. Never infer a refund destination from these fields.
A Solana receipt's log_index is the recipient index in the complete transaction account-key list: static keys, then loaded writable and readonly addresses. Receipt identity also includes chain, token and transaction signature. External /payments/ingest is disabled; callers must not synthesize alternate receipt indexes.
X-SettleBolt-Event: payment.confirmed
X-SettleBolt-Event-Id: <opaque-event-id>
X-SettleBolt-Timestamp: 1783100000
X-SettleBolt-Signature: t=1783100000,v1=<hmac>
The signature is HMAC-SHA256 over:
<timestamp>.<event_id>.<raw_json_body>
Webhook URLs must be public HTTPS endpoints on port 443. Internal, loopback, link-local, metadata, credentialed, IPv6 literal, and non-443 URLs are rejected.
Security Checklist
- Verify your email before using the dashboard.
- Enable 2FA in Settings.
- Name wallets clearly so payout destinations are easy to inspect.
- Use separate support/admin accounts instead of shared logins.
- Keep API keys and webhook secrets in server-side secret storage.
- Verify webhook signatures and reject stale timestamps.
- Use HTTPS-only webhook endpoints.
- Review Billing and Support history after plan or access changes.
Troubleshooting
Payment is not showing
Check that the customer paid the exact token and chain on the checkout page, that the recipient address is your verified primary wallet for that chain, and that enough confirmations have passed.
Invoice cannot be sent
The invoice chain needs a verified wallet before sending. Draft invoices can be saved before a wallet is connected.
Custom domain is pending
Confirm the CNAME target and any TXT validation records exactly match the Branding screen. Certificate validation can take time after DNS propagation.
Customer did not get an invoice email
Use Resend on sent or overdue invoices. Also confirm the customer email is valid and check spam/quarantine filters.
Need help
Open Help in the dashboard, create a ticket, and include invoice IDs, link URLs, wallet addresses, transaction hashes, and screenshots when relevant.