Profile - Update
Update a business profile.
Endpoint POST /account/{account_id}/business_profile/{profile_id}
Try it
cURL example
curl --request POST \
--url https://sandbox.hyperswitch.io/account/{account_id}/business_profile/{profile_id} \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"enable_payment_response_hash": true,
"redirect_to_merchant_with_http_post": false,
"payment_link_config": {
"display_sdk_only": false,
"enabled_saved_payment_method": false,
"hide_card_nickname_field": false,
"show_card_form_by_default": true,
"business_specific_configs": {
"display_sdk_only": false,
"enabled_saved_payment_method": false,
"hide_card_nickname_field": false,
"show_card_form_by_default": true
}
},
"collect_shipping_details_from_wallet_connector": false,
"collect_billing_details_from_wallet_connector": false,
"always_collect_shipping_details_from_wallet_connector": false,
"always_collect_billing_details_from_wallet_connector": false,
"payout_link_config": {
"payout_test_mode": false
}
}
'Successful response (200)
Authorizations
api-key (string, header) — required Use the API key created under your merchant account from the HyperSwitch dashboard. API key is used to authenticate API requests from your merchant server only. Don't expose this key on a website or embed it in a mobile application.
Path parameters
account_id (string) — required The unique identifier for the merchant account.
profile_id (string) — required The unique identifier for the profile.
Request body (application/json)
Supported fields (selection of notable fields shown; nested objects have their own child attributes in the API reference):
profile_name — string | null The name of profile. Maximum length: 64.
return_url — string | null The URL to redirect after the completion of the operation. Maximum length: 255. Example: "https://www.example.com/success"
enable_payment_response_hash — boolean | null (default: true) Enable payment response hash. Example: true
payment_response_hash_key — string | null Hash key used for calculating signature for webhooks and redirect response. If not provided, it is generated automatically.
redirect_to_merchant_with_http_post — boolean | null (default: false) Redirect to merchant with HTTP POST. Example: true
webhook_details — object Webhook configuration (payment/refund statuses enabled, webhook URL, username/password, etc.)
metadata — object Additional unstructured information.
routing_algorithm — object Routing algorithm used for routing payments to desired connectors.
intent_fulfillment_time — integer | null Time (seconds) a payment will be active after session start. Required range: x >= 0. Example: 900
frm_routing_algorithm — object FRM routing algorithm.
payout_routing_algorithm — object Payout routing configuration.
applepay_verified_domains — string[] | null Verified Apple Pay domains for the profile.
session_expiry — integer | null Client Secret default expiry for all payments under this profile. Required range: x >= 0. Example: 900
payment_link_config — object UI and behavior customization for payment links (theme, logo, seller_name, sdk_layout, transaction_details, allowed_domains, etc.)
authentication_connector_details — object Authentication connector settings (3DS connectors, requestor URL/app URL).
use_billing_as_payment_method_billing — boolean | null Whether to use billing details passed when creating the intent as payment method billing.
collect_shipping_details_from_wallet_connector — boolean | null (default: false) Collect shipping details from wallet connector only if required by connector (e.g., Apple/Google Pay). Example: false
collect_billing_details_from_wallet_connector — boolean | null (default: false) Collect billing details from wallet connector only if required by connector. Example: false
always_collect_shipping_details_from_wallet_connector — boolean | null (default: false) Always collect shipping details from wallet connector. Example: false
always_collect_billing_details_from_wallet_connector — boolean | null (default: false) Always collect billing details from wallet connector. Example: false
is_connector_agnostic_mit_enabled — boolean | null If true, MITs (merchant initiated transactions) may be processed through a different connector than the CIT (customer initiated transaction) based on routing rules. If false, MITs use same connector as CIT.
payout_link_config — object Generic link UI config for payouts (allowed_domains, logo, merchant_name, theme, form_layout, payout_test_mode, etc.)
outgoing_webhook_custom_http_headers — object Additional key-value headers sent with outgoing webhook requests (recommended <= 4 pairs).
tax_connector_id — string | null Merchant connector id for tax_calculator connector.
is_tax_connector_enabled — boolean Whether tax_calculator connector is enabled (tax_connector_id checked when true).
is_network_tokenization_enabled — boolean Whether network tokenization is enabled.
is_auto_retries_enabled — boolean | null Whether auto retries are enabled.
max_auto_retries_enabled — integer | null Maximum number of auto retries allowed for a payment. Required range: x >= 0.
always_request_extended_authorization — boolean | null Request extended authentication for all payments.
is_click_to_pay_enabled — boolean Whether click-to-pay is enabled.
authentication_product_ids — object Product authentication ids.
card_testing_guard_config — object Card testing guard configuration (IP/customer thresholds, expiry, etc.)
is_clear_pan_retries_enabled — boolean | null Clear PAN retries enabled.
force_3ds_challenge — boolean | null Force 3DS challenge.
is_debit_routing_enabled — boolean | null Debit routing enabled.
merchant_business_country — enum Country code of merchant business. (See full list below.)
is_iframe_redirection_enabled — boolean | null Whether redirection should open in an iframe. Example: false
is_pre_network_tokenization_enabled — boolean | null Pre-network tokenization enabled.
merchant_category_code — string Example: "5411"
merchant_country_code — string Merchant country code wrapper type.
dispute_polling_interval — integer | null Interval (in hours) for polling disputes. Example: 2
is_manual_retry_enabled — boolean | null Manual retry enabled.
always_enable_overcapture — boolean | null Overcapture requested for all payments.
is_external_vault_enabled — enum ("enable" | "skip") External vault behavior.
external_vault_connector_details — object External vault connector settings.
billing_processor_id — string | null Merchant connector id for billing_processor connector.
is_l2_l3_enabled — boolean | null Enable Level 2 and Level 3 data for card transactions.
Response (200 — Profile Updated)
The response returns the updated profile object. Notable response fields mirror the request fields, for example:
merchant_id — string (required)
profile_id — string (required)
profile_name — string
enable_payment_response_hash — boolean
redirect_to_merchant_with_http_post — boolean
is_tax_connector_enabled — boolean
is_network_tokenization_enabled — boolean
is_auto_retries_enabled — boolean
force_3ds_challenge — boolean
return_url — string | null
payment_response_hash_key — string | null
webhook_details — object
intent_fulfillment_time — integer | null
payout_routing_algorithm — object
payment_link_config — object
authentication_connector_details — object
collect_shipping_details_from_wallet_connector — boolean | null
payout_link_config — object
outgoing_webhook_custom_http_headers — object
max_auto_retries_enabled — integer | null
card_testing_guard_config — object
merchant_business_country — enum
acquirer_configs — object[] | null
is_iframe_redirection_enabled — boolean | null
merchant_category_code — string
dispute_polling_interval — integer | null
is_manual_retry_enabled — boolean | null
is_external_vault_enabled — enum
external_vault_connector_details — object
billing_processor_id — string | null
is_l2_l3_enabled — boolean | null
merchant_business_country (enum)
Notes
Many nested objects (e.g., webhook_details, payment_link_config, payout_routing_algorithm, authentication_connector_details, card_testing_guard_config, acquirer_configs, external_vault_connector_details) have child attributes — see the API reference for complete schemas.
Keep your api-key secret and use it only on trusted back-end servers.
Fields not provided in the request will either remain unchanged or be set to defaults as noted (see field descriptions).
Edit or raise issues
Suggest edits: https://github.com/juspay/hyperswitch/edit/main/api-reference/v1/business-profile/business-profile--update.mdx
Raise issue: https://github.com/juspay/hyperswitch/issues/new?title=Issue%20on%20docs&body=Path:%20/v1/business-profile/business-profile--update