> ## Documentation Index
> Fetch the complete documentation index at: https://docs.transaction.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Merchant

> Create a new merchant account

Create a new merchant account for accepting payments.

<ParamField path="name" type="string" required>
  Merchant business name
</ParamField>

<ParamField path="domain" type="string" required>
  Merchant domain name
</ParamField>

<ParamField path="description" type="string">
  Business description
</ParamField>

<ResponseField name="success" type="boolean">
  Indicates if the request was successful
</ResponseField>

<ResponseField name="data.merchant" type="object">
  Created merchant details
</ResponseField>

<ResponseField name="data.merchant.id" type="string">
  Merchant UUID
</ResponseField>

<ResponseField name="data.merchant.auth" type="object">
  API keys for the merchant
</ResponseField>

<ResponseField name="data.merchant.wallets" type="object">
  Cryptocurrency wallet addresses
</ResponseField>

## Example Request

```bash theme={null}
curl -X POST https://api.transaction.gg/merchant/create \
  -H "Authorization: Bearer jwt_token" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Store",
    "domain": "mystore.com",
    "description": "Online store description"
  }'
```

## Example Response

```json theme={null}
{
  "success": true,
  "data": {
    "merchant": {
      "id": "merchant_uuid",
      "name": "My Store",
      "description": "Online store description",
      "domain": {
        "name": "mystore.com",
        "isVerified": false,
        "verification": "verification_token"
      },
      "auth": {
        "public": "pk_public_key",
        "secret": "sk_secret_key"
      },
      "wallets": {
        "BTC": "bitcoin_address",
        "ETH": "ethereum_address",
        "LTC": "litecoin_address",
        "SOL": "solana_address"
      }
    }
  }
}
```

## Error Responses

<ResponseExample name="Domain Already Exists">
  ```json theme={null}
  {
    "success": false,
    "error": {
      "status": 400,
      "code": "DUPLICATE_ENTRY",
      "message": "Domain already exists"
    },
    "data": null
  }
  ```
</ResponseExample>
