Signup flow
Registration happens in the SohoPay Dashboard — there is no API for account creation.- Go to the dashboard and choose Sign up → Merchant.
- Verify your work email.
- Pick an environment: Developer sandbox or Production.
mch_...). Production accounts require KYB before they can receive real settlements.
KYB requirements
KYB (Know Your Business) verification is required for all merchants on mainnet. You’ll need:
Supporting documents (certificate of incorporation, proof of address) are uploaded in the same form. All documents must be current — registries older than 12 months are commonly rejected.
Verification timeline
Verification is powered by Didit and typically completes in 1–3 business days. You’ll see status in the dashboard under Settings → Verification, and SohoPay emits webhook events when the decision lands:merchant.kyb.approved— you can accept mainnet paymentsmerchant.kyb.rejected— see the rejection reason in the dashboard
Sandbox skips KYB entirely. Sandbox merchant accounts are approved instantly and run on Base Sepolia with test funds. Nothing in this section blocks sandbox development.
Troubleshooting KYB rejection
Most rejections fall into three buckets:High-risk industry
High-risk industry
SohoPay cannot onboard merchants in certain restricted categories (e.g. gambling, adult content, sanctioned jurisdictions). This is a compliance constraint, not a review error — if your business genuinely falls outside these categories, reply to the rejection email with a description of your actual business activity and supporting documentation.
Document mismatch
Document mismatch
The most common rejection. The legal entity name on your registration certificate doesn’t exactly match what you typed in the form, or the registration number belongs to a different entity (e.g. a parent company). Fix: resubmit with the name copied character-for-character from the official document.
req_ request ID from the rejection notice. Normal-priority support responds within 8 hours.
Dashboard walkthrough
Once you’re in, four areas matter for merchants:1
Settings → API Keys
Create your first key. Sandbox keys start with
sk_test_, mainnet keys with sk_live_. Keys are shown once — store them in a secrets manager, never in code. See Authentication & Security.2
Agents → Allowlist
The UI view of your agent allowlist. Empty at first — no agent can pay you until you add one here or via the API.
3
Settlements
Every payment that has settled to your payout address, with on-chain transaction hashes and CSV export. Covered in Settlements and payouts.
4
Developers → Webhooks
Register webhook endpoints and inspect delivery logs. The Live Feed next to it shows events streaming in real time — useful while testing.
Test it
Before moving on, confirm in sandbox:- You can log in to the dashboard and see a
mch_...merchant ID under Settings - You created an API key and a
GET /merchants/{id}call with it returns200 - (Production only) KYB status shows approved, and you received
merchant.kyb.approvedif a webhook is registered - Your payout address is set and correct — verify the checksummed address character by character
Next steps
Allowlist Management
Add your first agent so payments can start flowing.
KYB Reference
Full verification policy, document requirements, and re-review rules.
Webhooks
Get notified programmatically when KYB is decided.

