# Merchants

Merchant-scoped operations for managing sub-merchant resources.

The merchant document upload endpoint creates a document record and starts transfer into Resolve-managed storage for validation.

 - [GET /merchants](https://docs.resolvepay.com/partners-api/openapi/merchants/listmerchants.md): Returns sub-merchants under the authenticated partner account. Supported query options: - Pagination: `limit`, `page` - Text search: `search` - Sorting: `sort` - Field filters: `filter[field][eq]=valu
 - [POST /merchants](https://docs.resolvepay.com/partners-api/openapi/merchants/createmerchant.md): 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.
 - [GET /merchants/{merchant_id}](https://docs.resolvepay.com/partners-api/openapi/merchants/getmerchant.md): Retrieves a single sub-merchant belonging to the authenticated partner. Only merchants scoped to the authenticated partner are returned. Requests for unknown merchants or merchants outside that scope
 - [PUT /merchants/{merchant_id}](https://docs.resolvepay.com/partners-api/openapi/merchants/updatemerchant.md): Updates a sub-merchant belonging to the authenticated partner. For the **partner API** contract, `id` is immutable and cannot be updated via request payload. Post-underwriting restrictions apply once
 - [GET /merchants/{merchant_id}/documents](https://docs.resolvepay.com/partners-api/openapi/merchants/listmerchantdocuments.md): Returns document presence and validation lifecycle status for a specific sub-merchant. This endpoint is metadata-only and does not return file bodies or signed retrieval URLs. Supported query options:
 - [POST /merchants/{merchant_id}/documents](https://docs.resolvepay.com/partners-api/openapi/merchants/createmerchantdocumentuploadrequest.md): Creates a new merchant document record for a sub-merchant and initializes document transfer to the Resolve document validation service. The transfer method is determined by request shape: - If `downlo
