Merchant Account - Create
POST /accounts
Create a merchant account with minimal fields.
Request
Headers
Content-Type: application/json
api-key: (required) Admin API keys allow privileged actions such as creating a merchant account and Merchant Connector account.
Body (application/json) — example minimal payload:
{
"sub_merchants_enabled": false,
"enable_payment_response_hash": false,
"redirect_to_merchant_with_http_post": false
}cURL example:
curl --request POST \
--url https://sandbox.hyperswitch.io/accounts \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"sub_merchants_enabled": false,
"enable_payment_response_hash": false,
"redirect_to_merchant_with_http_post": false
}
'Request Body fields (selected)
merchant_id (string, required) The identifier for the Merchant Account. Required string length: 1 - 64. Example:
"y3oqhf46pyzuxjbcn2giaqnb44"merchant_name (string | null) Name of the Merchant Account. Example:
"NewAge Retailer"merchant_details (object) See child attributes in the API reference for full structure.
return_url (string | null) The URL to redirect after the completion of the operation. Maximum length: 255. Example:
"https://www.example.com/success"webhook_details (object) See child attributes in the API reference for full structure.
payout_routing_algorithm (object) See child attributes in the API reference for full structure.
sub_merchants_enabled (boolean | null, default: false) Indicates if the merchant is a sub-merchant under a parent merchant. Example:
falseparent_merchant_id (string | null) Parent Merchant ID when creating a sub-merchant. Max length: 255. Example:
"xkkdf909012sdjki2dkh5sdf"enable_payment_response_hash (boolean | null, default: false) Indicates if payment response hash should be enabled. Example:
truepayment_response_hash_key (string | null) Hash key used for webhook/redirect signatures. If omitted, a value is auto-generated.
redirect_to_merchant_with_http_post (boolean | null, default: false) Indicates if redirect to merchant with HTTP POST should be enabled. Example:
truemetadata (object) Unstructured metadata.
publishable_key (string | null) API key used for client-side access. Example:
"AH3423bkjbkjdsfbkj"locker_id (string | null) Identifier for vault storing payment method information. Example:
"locker_abc123"primary_business_details (object) See child attributes in the API reference.
frm_routing_algorithm (object) FRM routing algorithm details.
organization_id (string | null) Organization id the merchant belongs to; if not passed, an organization is created. Required string length: 1 - 64. Example:
"org_q98uSGAYbjEwqs0mJwnz"pm_collect_link_config (object) GenericLinkUiConfig object; see child attributes.
product_type (enum) Available:
orchestration,vault,recon,recovery,cost_observability,dynamic_routingmerchant_account_type (enum) Available:
standard,connected
(For full schema and all child attributes, refer to the API reference.)
Response
Status: 200 application/json Merchant Account Created — example:
Response fields (selected)
merchant_id (string, required) The identifier for the Merchant Account. Max length: 64. Example:
"y3oqhf46pyzuxjbcn2giaqnb44"enable_payment_response_hash (boolean, required, default: false) Example:
trueredirect_to_merchant_with_http_post (boolean, required, default: false) Example:
trueprimary_business_details (object[]) (required) Details about the primary business unit.
organization_id (string, required) Organization id merchant is associated with. Required length: 1 - 64. Example:
"org_q98uSGAYbjEwqs0mJwnz"is_recon_enabled (boolean, required) Whether recon service is enabled.
recon_status (enum, required) Available:
not_requested,requested,active,disabledmerchant_account_type (enum, required) Available:
standard,platform,connectedmerchant_name (string | null) Example:
"NewAge Retailer"return_url (string | null) Maximum length: 255. Example:
"https://www.example.com/success"payment_response_hash_key (string | null) Max length: 255. Example:
"xkkdf909012sdjki2dkh5sdf"merchant_details (object) See child attributes.
webhook_details (object) See child attributes.
payout_routing_algorithm (object) See child attributes.
sub_merchants_enabled (boolean | null, default: false) Example:
falseparent_merchant_id (string | null) Example:
"xkkdf909012sdjki2dkh5sdf"publishable_key (string | null) Example:
"AH3423bkjbkjdsfbkj"metadata (object) Unstructured information.
locker_id (string | null) Example:
"locker_abc123"frm_routing_algorithm (object) See child attributes.
default_profile (string | null) Default profile used for creating accounts/payments. Max length: 64.
pm_collect_link_config (object) GenericLinkUiConfig object; see child attributes.
product_type (enum) Available:
orchestration,vault,recon,recovery,cost_observability,dynamic_routing
Suggest edits: https://github.com/juspay/hyperswitch/edit/main/api-reference/v1/merchant-account/merchant-account--create.mdx Raise issue: https://github.com/juspay/hyperswitch/issues/new?title=Issue%20on%20docs&body=Path:%20/v1/merchant-account/merchant-account--create