Creates a sub-merchant under the authenticated partner and starts underwriting lifecycle tracking.
For the partner API contract, id is server-managed and is not accepted in the request payload. Resolve derives/assigns the merchant identifier from merchant naming inputs (dba_name or legal_business_name) with random alphanumeric fallback for collisions.
Core merchant validation includes:
business_phonemust be a valid US phone numberformation_statemust map to a valid US state- US business addresses validate
stateandpostal_code - beneficial owner US addresses validate
stateandpostal_code authorized_signer.phone, when provided, must be a valid US phone numbereinmust be a valid EIN format- banking fields validate account-number shape and ABA routing number format
bank_account_numbermust be different frombank_routing_number
This endpoint also supports optional inline document URL ingestion. If document arrays are provided (bank_statements, financial_statements, credit_references, personal_guarantee, other_documents), Resolve queues download_url ingestion jobs equivalent to the document endpoint.
Inline document requests require:
filenamewith an extension- supported
filetypefor the merchant underwriting document profile download_urlusinghttporhttps- matching filename extension and
filetype
Merchant creation is not rolled back for inline document ingestion failures.
Inline download dispatch is performed after database commit. Dispatch failures are surfaced per-item in document_ingestion.results, and the affected merchant document/file metadata is marked failed even though the merchant and some/all document rows were already persisted.
Request body for creating a partner sub-merchant.
Business phone number. Must be a valid US phone number and is normalized to E.164.
Business formation state. Must map to a valid US state and is normalized to the state code.
Plaid access token when a bank connection has already been established.
Bank account number. Must satisfy Resolve account-number validation and must be different from bank_routing_number.
Optional document ingestion on merchant create. Each item queues a background download job (equivalent to calling the document endpoint with download_url).
Optional inline financial_statements document ingestion requests.
Optional inline credit_references document ingestion requests.
Optional inline personal_guarantee document ingestion requests.
- Mock serverhttps://docs.resolvepay.com/_mock/partners-api/openapi/merchants
- Sandbox serverhttps://app-sandbox.resolvepay.com/api/merchants
- bearerAuth
- basicAuth
- Create merchant
- Create merchant with inline document URL ingestion
curl -i -X POST \
https://docs.resolvepay.com/_mock/partners-api/openapi/merchants \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"legal_business_name": "Acme Supply LLC",
"business_address": {
"line1": "100 Main St",
"city": "Austin",
"state": "TX",
"postal_code": "78701",
"country": "US"
},
"business_email": "ops@acmesupply.com",
"business_phone": "+15125550123",
"entity_type": "llc",
"formation_state": "TX",
"ein": "12-3456789",
"website": "https://acmesupply.com",
"metadata": {
"partner_reference": "mt-merchant-1029"
}
}'A merchant object.
Resolve merchant identifier (lowercase alphanumeric).
For partner API create flows, ID assignment behavior is:
- Resolve may derive a human-friendly alphanumeric candidate from merchant naming fields.
- If the candidate collides with an existing merchant ID, Resolve generates a random lowercase alphanumeric ID.
- Merchant create/get response without inline document ingestion
- Merchant create response with partial inline document ingestion
{ "id": "mrc_1234567890abcdef", "legal_business_name": "Acme Supply LLC", "dba_name": "Acme Industrial", "business_address": { "line1": "100 Main St", "city": "Austin", "state": "TX", "postal_code": "78701", "country": "US" }, "business_email": "ops@acmesupply.com", "business_phone": "+15125550123", "entity_type": "llc", "formation_state": "TX", "underwriting_status": "pending", "seller_amount_approved": 0, "active_subscription": { "id": "sub_1234567890abcdef", "tier": "trial" }, "metadata": { "partner_reference": "mt-merchant-1029" }, "created_at": "2026-02-26T10:00:00.000Z", "updated_at": "2026-02-26T10:00:00.000Z" }