# Merchant Setup

> Prepare a merchant profile before accepting payments.

Canonical: https://stafiel.org/documentation/merchant-operations/merchant-setup
Version: v1.0.0

Create a merchant to configure wallets and accept payments. Each merchant has
its own profile, settings, orders, and mainnet or testnet records.

## Create A Merchant

Open Merchants, then select Create Merchant.

Field
Requirement
Purpose

Merchant Name
Required
Internal merchant name used in Merchant Dashboard.

Public Display Name
Recommended
Customer-facing name shown on payment pages, receipts, and invoices.

Description
Optional
Internal description for identifying the merchant.

Supported Chains
Required
Select the chains the merchant plans to use. Available options can depend on the current plan and mode.

After creation, open the merchant to review its Merchant ID, current status, and
setup tabs.

## Merchant ID

The Merchant ID identifies the merchant in the selected mode. Use it when an
integration, support request, or dashboard record needs a merchant reference.

Mainnet and testnet Merchant IDs are separate. Confirm the current mode before
copying an ID.

## Merchant Status

The merchant card shows the current operational status:

Status
Meaning

Configuration Required
Required setup is not complete.

Partial Active
Some approved chains are ready to accept payments, while other selected chains still need setup or review.

Active
All approved chains for the merchant are ready to accept payments.

Suspended
New orders are disabled until the merchant is reactivated and its wallets and chains are verified again.

Terminated
The merchant is permanently unavailable.

## Merchant Details Setup

Open a merchant to view Merchant Details. The tabs separate profile review,
payment setup, and integration settings:

Tab
Use it to

Basic Info
Review or update the merchant name, public display name, description, and Merchant ID.

API Key Management
Create and revoke API keys for server-side API integration.

Wallet Settings
Connect and verify settlement wallet addresses for the required chains.

Merchant Settings
Set return URL rules, webhook delivery settings, order defaults, and status actions.

Chains & Tokens
Review enabled networks, approval status, token standard, supported tokens, and minimum order amount.

Wallet settings are covered in
[Wallet Settings](/documentation/merchant-operations/wallet-settings).
API keys and webhooks are covered in
[API Keys and Authentication](/documentation/developer-integration/api-keys-and-authentication)
and [Webhooks and Events](/documentation/developer-integration/webhooks-and-events).

## Basic Info

Open Basic Info to update the merchant name, public display name, or
description. The Merchant ID remains the stable identifier for integrations,
support requests, and dashboard records.

## API Key Management

Open Merchants > select merchant > API Key Management. API Key Management is
available when the merchant status is Partial Active or Active.

To create a key, select Create Key, enter a key name, and complete MFA when
requested.

Important: Save the full API key securely when it is created. It is shown
only once, and later views show only a preview.

Revoke a key when it is no longer used or may have been exposed. Revocation is
immediate, and integrations using that key stop working. The allowed number of
active keys varies by plan.

## Wallet Settings

Wallet Settings connects the merchant settlement wallet address for each
required chain. A verified wallet address is required before that chain can
accept new orders for the merchant.

For setup steps, verification rules, wallet address changes, and limitations, see
[Wallet Settings](/documentation/merchant-operations/wallet-settings).

## Return URL Settings

Open Merchants > select merchant > Merchant Settings > Return URL Settings
to control where customers can return after paying on the Stafiel checkout page.

- Allowed Return Origins accepts exact HTTPS origins and supported wildcard
patterns for subdomains. For example, https://*.example.com allows return
URLs from subdomains such as https://shop.example.com.

- Allow all URLs allows return URLs supplied with checkout sessions without
requiring a match against the allowed origins list.

If Allow all URLs is off and no allowed origin is configured, checkout does
not use the metadata.returnToUrl value. See
[Metadata Reserved Fields and Rules](/documentation/developer-integration/checkout-api#metadata-reserved-fields-and-rules).

## Webhook Configuration

Open Merchants > select merchant > Merchant Settings > Webhook Configuration
to add the HTTPS endpoint that receives payment lifecycle notifications.

When a webhook URL is saved for the first time, a signing secret is generated
automatically. Use Test URL to check whether the HTTPS endpoint is reachable.
This check does not send a webhook event.

The secret signs webhook requests for verification. Rotating it replaces the
current secret immediately, so update the receiving system at the same time.

## Order Defaults

Open Merchants > select merchant > Merchant Settings > Order Defaults to
set the default payment window and after-sales window for new checkout sessions.

Setting
What it controls

Payment window
How long a checkout session stays payable before it expires. This value can be changed when creating a checkout session.

After-sales window
How long the merchant can handle refunds before settlement.

Merchant Dashboard shows the allowed range for each setting. Changes apply only
to future checkout sessions. Existing orders keep their saved values.

## Merchant Status Actions

Open Merchants > select merchant > Merchant Settings > Danger Zone to
suspend, reactivate, or terminate a merchant.

- Suspend disables new orders. Existing orders continue using their
recorded settlement data. All enabled-chain wallet bindings are revoked.
Reactivation requires wallet reconnection, ownership verification, and review.

- Terminate permanently disables the merchant. All API keys are
revoked. Termination is allowed only when no live orders remain.

Note: Review the confirmation message before continuing. Termination
cannot be undone.
