Merchant Onboarding
This guide walks you through onboarding a new merchant — from creating the entity hierarchy to going live with real payments.
Onboarding Lifecycle
Every merchant goes through the following steps before processing live transactions:
- Create Company — set up the legal entity container
- Create Merchant under the Company
- Set up Terminal and Channel — connect the merchant to a payment provider
- Submit KYB documents — Know Your Business verification at the company level
- Configure fees and routing — assign fee schedules and routing rules
- Create API keys for the merchant
- Merchant integrates using developer documentation
- Test payment flow in sandbox
- Request live access — merchant or operator calls
POST /merchants/{id}/request-live(sandbox→pending_approval). Requires a FeeSchedule assigned (422 if missing) and Company KYB submitted (if required by tenant feature flag). - Operator approves — operator calls
POST /merchants/{id}/approve(pending_approval→live). Requiresaccount-management:merchant:approvepermission and Company KYB status =approved.
If the request is rejected, the operator calls POST /merchants/{id}/reject (pending_approval → sandbox) with a rejection reason logged. The merchant can address the issues and request live access again.
Merchant Statuses
| Status | Description |
|---|---|
sandbox | Immediate access after creation. Test transactions only. Auto-provisioned with test terminals and a zero-cost test FeeSchedule. |
pending_approval | Merchant has requested live access. Awaiting operator approval. A fee schedule must be assigned before requesting live access (returns 422 if missing). |
live | Approved for production. Real transactions are processed. |
suspended | Temporarily blocked due to risk or compliance concerns. |
disabled | Permanently deactivated. No further processing. Triggers final settlement generation. |
Status transitions are controlled by operators with the appropriate permissions. See the merchant management spec for the full state machine.
Prerequisites
- An operator account with merchant management permissions
- Access to the Miracle Portal
- At least one payment provider integration configured at the tenant level
Step-by-Step Guides
| Step | Guide |
|---|---|
| Create Company, Merchant, Terminal, Channel | Create Entity Hierarchy |
| Submit and review KYB | KYB Process |
| Generate API keys for merchant developers | API Key Provisioning |
| Final checks before going live | Go-Live Checklist |