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

# Register

> Register with owner permission, send email with OTP code

## Endpoint Overview

**POST** `https://api.unibee.dev/merchant/auth/sso/register`

Register with owner permission, send email with OTP code

***

## Authorization

All UniBee Merchant API requests require authentication via API key.

| Header          | Required | Description                           |
| --------------- | -------- | ------------------------------------- |
| `Authorization` | Yes      | Bearer `<your_api_key>`               |
| `Content-Type`  | Yes      | `application/json` (for request body) |

***

## Parameters

Parameters for this endpoint are listed below. The schema is also shown in the Try it panel.

### Request body

| Name          | Type   | Required | Description                        |
| ------------- | ------ | -------- | ---------------------------------- |
| `companyName` | string | No       | Company Name                       |
| `countryCode` | string | No       | Country Code                       |
| `countryName` | string | No       | Country Name                       |
| `email`       | string | Yes      | The merchant owner's email address |
| `firstName`   | string | Yes      | The merchant owner's first name    |
| `lastName`    | string | Yes      | The merchant owner's last name     |
| `metadata`    | object | No       | Metadata，Map                       |
| `password`    | string | Yes      | The owner's password               |
| `phone`       | string | No       | The owner's Phone                  |
| `userName`    | string | No       | The owner's UserName               |

***

## Request examples

### cURL

```bash theme={null}
curl -X POST "https://api.unibee.dev/merchant/auth/sso/register" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "companyName": "",
  "countryCode": "",
  "countryName": "",
  "email": "user@example.com",
  "firstName": "",
  "lastName": "",
  "metadata": {},
  "password": "",
  "phone": "",
  "userName": ""
}'
```

### Sandbox

```bash theme={null}
curl -X POST "https://api-sandbox.unibee.top/merchant/auth/sso/register" \
  -H "Authorization: Bearer YOUR_SANDBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "companyName": "",
  "countryCode": "",
  "countryName": "",
  "email": "user@example.com",
  "firstName": "",
  "lastName": "",
  "metadata": {},
  "password": "",
  "phone": "",
  "userName": ""
}'
```

***

## Response

Success responses return a JSON envelope with `code`, `data`, `message`, `redirect`, and `requestId`. `code` `0` indicates success. The response schema for this endpoint is shown below.

***

## Error handling

| HTTP status | Meaning                                                                   |
| ----------- | ------------------------------------------------------------------------- |
| 400         | Bad request — invalid or missing parameters. Check `message` in the body. |
| 401         | Unauthorized — missing or invalid API key.                                |
| 404         | Not found — invalid path or resource.                                     |
| 500         | Server error — retry with backoff.                                        |

When `code` in the response body is non-zero, check `message` for details. Use `requestId` when contacting support.


## OpenAPI

````yaml post /merchant/auth/sso/register
openapi: 3.0.0
info:
  description: UniBee Api Server
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: OpenAPI UniBee
  version: daily,buildtime:202603161017
servers:
  - url: https://api.unibee.dev
  - url: https://api-sandbox.unibee.top
security:
  - Authorization: []
paths:
  /merchant/auth/sso/register:
    post:
      tags:
        - Member Authentication
      summary: Register
      description: Register with owner permission, send email with OTP code
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/unibee.api.merchant.auth.RegisterReq'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  code:
                    format: int
                    properties: {}
                    type: integer
                  data:
                    properties: {}
                    type: object
                  merchantId:
                    format: int64
                    properties: {}
                    type: integer
                  message:
                    format: string
                    properties: {}
                    type: string
                  redirect:
                    format: string
                    properties: {}
                    type: string
                  requestId:
                    format: string
                    properties: {}
                    type: string
                type: object
          description: ''
components:
  schemas:
    unibee.api.merchant.auth.RegisterReq:
      description: Register with owner permission, send email with OTP code
      properties:
        companyName:
          description: Company Name
          format: string
          properties: {}
          type: string
        countryCode:
          description: Country Code
          format: string
          properties: {}
          type: string
        countryName:
          description: Country Name
          format: string
          properties: {}
          type: string
        email:
          description: The merchant owner's email address
          format: string
          properties: {}
          type: string
        firstName:
          description: The merchant owner's first name
          format: string
          properties: {}
          type: string
        lastName:
          description: The merchant owner's last name
          format: string
          properties: {}
          type: string
        metadata:
          additionalProperties:
            $ref: '#/components/schemas/interface'
          description: Metadata，Map
          format: map[string]interface {}
          properties: {}
          type: object
        password:
          description: The owner's password
          format: string
          properties: {}
          type: string
        phone:
          description: The owner's Phone
          format: string
          properties: {}
          type: string
        userName:
          description: The owner's UserName
          format: string
          properties: {}
          type: string
      required:
        - firstName
        - lastName
        - email
        - password
      type: object
    interface:
      properties: {}
      type: object
  securitySchemes:
    Authorization:
      bearerFormat: JWT
      scheme: bearer
      type: http

````