Managed Merchant Onboarding to First Payment
Create a sub-merchant, submit compliance documents, and take payments on their behalf.
Persona: Marketplace operator, platform-as-a-service, franchise management system, accounting software with multi-entity support.
Scenario: Your platform needs to onboard a new sub-merchant (e.g. a business signing up to your product), submit their identity and compliance documents to Pinch, wait for approval, and then collect payments on their behalf using a single set of master API credentials.
Before building this flow, make sure Managed Merchants are enabled on your master account. Contact [email protected] if you're unsure.
Endpoint sequence
POST /merchants/managed: create the sub-merchant accountPOST /merchants/upload-document: submit compliance documents (one file per call)compliance-updatedwebhook event: wait for approvalPOST /webhooks: set up event delivery for the sub-merchantPOST /payers+POST /payments: collect payments on behalf of the sub-merchant
All calls from step 2 onwards use the Current-Merchant: mch_XXXXXXXX header to act on behalf of the sub-merchant.
Step 1: Create the sub-merchant
Use your master merchant API credentials (no Current-Merchant header required here):
POST https://api.getpinch.com.au/test/merchants/managed
Authorization: ******
pinch-version: 2020.1
Content-Type: application/json
{
"companyName": "Acme Pty Ltd",
"contactFirstName": "John",
"contactLastName": "Smith",
"contactEmail": "[email protected]",
"contactPhone": "0400000000",
"abn": "12345678901"
}Save the id from the response (mch_XXXXXXXX). This is the sub-merchant's Merchant ID and is required for all subsequent calls on their behalf.
Step 2: Submit compliance documents
Pinch must verify the sub-merchant's identity before they can take live payments. Upload their documents using POST /merchants/upload-document with the Current-Merchant header set to their Merchant ID.
Upload is one file per request. You will typically need multiple calls.
# Identity document (driver's licence front)
curl -X POST https://api.getpinch.com.au/test/merchants/upload-document \
-H "Authorization: ******" \
-H "Current-Merchant: mch_XXXXXXXX" \
-H "pinch-version: 2020.1" \
-F "documentType=identity-document" \
-F "file=@/path/to/drivers-licence-front.pdf"
# Identity document (driver's licence back)
curl -X POST https://api.getpinch.com.au/test/merchants/upload-document \
-H "Authorization: ******" \
-H "Current-Merchant: mch_XXXXXXXX" \
-H "pinch-version: 2020.1" \
-F "documentType=identity-document" \
-F "file=@/path/to/drivers-licence-back.pdf"
# Financial document (bank statement)
curl -X POST https://api.getpinch.com.au/test/merchants/upload-document \
-H "Authorization: ******" \
-H "Current-Merchant: mch_XXXXXXXX" \
-H "pinch-version: 2020.1" \
-F "documentType=financial-document" \
-F "file=@/path/to/bank-statement.pdf"
# Business registration (ASIC extract or ABN registration)
curl -X POST https://api.getpinch.com.au/test/merchants/upload-document \
-H "Authorization: ******" \
-H "Current-Merchant: mch_XXXXXXXX" \
-H "pinch-version: 2020.1" \
-F "documentType=business-registration" \
-F "file=@/path/to/asic-extract.pdf"See the Compliance Guide for the full list of accepted document types, file requirements, and details on UBOs and trust structures.
| Document type | What to provide |
|---|---|
identity-document | Driver's licence (front + back) or passport + utility bill for each director and UBO (≥25% shareholder) |
financial-document | Bank statement issued within the last 3 months for the account that will receive settlements |
business-registration | ASIC company extract, ABN registration, or equivalent government registration |
additional-verification | Any supplementary evidence Pinch requests (e.g. trust deed) |
Step 3: Wait for compliance approval
Compliance review is a human-in-the-loop process at Pinch. Subscribe to the compliance-updated webhook event. Pinch will POST to your endpoint when the review is complete.
{
"Type": "compliance-updated",
"Data": {
"ComplianceSubmission": {
"SubmissionStatus": "approved",
"MerchantStatus": "active"
}
}
}SubmissionStatus | Meaning |
|---|---|
pending | Documents received, review not yet started |
in-review | Under active review |
approved | Sub-merchant is cleared for live payments |
rejected | Documents insufficient; sub-merchant must resubmit |
Once MerchantStatus is active, the sub-merchant can take live payments.
If the status is rejected, surface a clear message to the sub-merchant and provide a path to upload corrected documents.
Step 4: Set up a webhook for the sub-merchant
Before collecting payments, subscribe to the sub-merchant's payment events using the Current-Merchant header:
POST https://api.getpinch.com.au/test/webhooks
Authorization: ******
Current-Merchant: mch_XXXXXXXX
pinch-version: 2020.1
Content-Type: application/json
{
"url": "https://yourplatform.com/webhooks/pinch",
"eventTypes": ["bank-results", "realtime-payment", "transfer"],
"format": "camelCase"
}Step 5: Collect payments on behalf of the sub-merchant
All payment API calls use your master merchant credentials with the Current-Merchant header. Create a payer and a payment as you would normally:
POST https://api.getpinch.com.au/test/payers
Authorization: ******
Current-Merchant: mch_XXXXXXXX
pinch-version: 2020.1
Content-Type: application/json
{
"firstName": "Jane",
"lastName": "Smith",
"email": "[email protected]"
}POST https://api.getpinch.com.au/test/payments
Authorization: ******
Current-Merchant: mch_XXXXXXXX
pinch-version: 2020.1
Content-Type: application/json
{
"payerId": "pyr_XXXXXXXX",
"sourceId": "src_XXXXXXXX",
"amount": 15000,
"description": "Invoice #001",
"transactionDate": "2026-08-01"
}Key caveats
Current-Merchantis required for all sub-merchant operations. Every API call you make on behalf of a sub-merchant (payers, payments, sources, webhooks, documents) must includeCurrent-Merchant: mch_XXXXXXXX. Without it, the call is attributed to your master account.- Do not take live payments until
MerchantStatus: "active". A sub-merchant account created via API is in an unverified state until compliance is approved. - Document uploads are one file per request. Plan your upload flow to loop through each required document.
- Files must be less than 20MB and uploaded as
multipart/form-data. - Compliance review is not instant. Build your onboarding UI to clearly communicate that approval is pending and to surface a prompt if documents are rejected.
What to do next
- Managed Merchants Guide: conceptual overview of the Managed Merchants model
- Compliance Guide: full document requirements
- Vault a Payment Source: collecting and storing payment details from a sub-merchant's customers
- Webhooks: setting up and securing webhook endpoints
Got feedback on this feature?
Send an email to [email protected] or book in a chat with our API team.
Updated about 10 hours ago
