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

# Create Wallet API

> Create a Breezing blockchain wallet with auto chain detection and a date range to start syncing transactions for crypto accounting workflows.



## OpenAPI

````yaml POST /wallets
openapi: 3.1.0
info:
  title: Breezing Public API
  version: 1.0.0
  description: >-
    Crypto accounting API for programmatic access and AI agents. Authenticate
    with an API key using the Authorization header: `Bearer brz_...`
servers:
  - url: https://api.breezing.io/v1
security:
  - BearerAuth: []
paths:
  /wallets:
    post:
      tags:
        - Wallets
      summary: Create a chain wallet
      description: >-
        Create a new blockchain wallet. The chain is auto-detected from the
        address, so do not pass chain explicitly. Initial sync runs
        asynchronously: the call returns immediately with the new wallet id, and
        the sync proceeds in the background. Poll GET /wallets/{id} (status
        field) and GET /tasks for progress.


        Limitation in v1: only chain wallets are supported. Exchange,
        CSV-imported, and balance tracking wallets must be created from the
        dashboard (balance tracking wallets can still be synced here via POST
        /wallets/{id}/sync).


        Course and partner sandbox orgs work differently: wallet creation is
        limited to the two demo wallets (Treasury Wallet and Operations Wallet,
        identified by their addresses). Creating one imports the prepared demo
        data instead of live chain history, and the name, dateFrom, and dateTo
        fields are ignored in favor of the canonical demo values. Any other
        address returns 403, and a demo wallet that already exists in the
        company returns 409.
      parameters:
        - schema:
            type: string
            description: >-
              Organization ID. Use GET /v1/companies to discover available
              org/company pairs.
            example: '1'
          required: true
          description: >-
            Organization ID. Use GET /v1/companies to discover available
            org/company pairs.
          name: orgId
          in: query
        - schema:
            type: string
            description: >-
              Company ID. Use GET /v1/companies to discover available companies
              and their access levels.
            example: '1'
          required: true
          description: >-
            Company ID. Use GET /v1/companies to discover available companies
            and their access levels.
          name: companyId
          in: query
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWalletBody'
      responses:
        '200':
          description: Wallet created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: object
                    properties:
                      id:
                        type: number
                        description: New wallet ID
                      chain:
                        type: string
                        description: Auto-detected chain identifier
                      status:
                        type: string
                        enum:
                          - loading
                        description: >-
                          Initial wallet status while the first sync runs.
                          Matches the value GET /v1/wallets/{id} will return
                          until the sync completes.
                      taskId:
                        type: number
                        nullable: true
                        description: >-
                          Task ID for the initial sync. Poll GET /tasks (filter
                          by this id) to monitor progress. Null when the initial
                          sync has already left the in-flight statuses by the
                          time the response was constructed (extremely fast
                          worker, or a defensive miss); fall back to GET
                          /tasks?walletId={id} or GET /v1/wallets/{id} in that
                          case.
                    required:
                      - id
                      - chain
                      - status
                      - taskId
                required:
                  - success
                  - data
        '400':
          description: >-
            Bad request (invalid address, unsupported chain, or invalid date
            range)
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '403':
          description: >-
            API key has no access to this company, has read-only access where
            write was required, or the company subscription is inactive
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '409':
          description: >-
            Demo wallet already exists in this company (course and partner
            sandbox orgs only)
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
      security:
        - BearerAuth: []
components:
  schemas:
    CreateWalletBody:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 256
          description: Display name for the wallet (1-256 chars).
        address:
          type: string
          minLength: 1
          description: >-
            Wallet address. The chain is auto-detected from the address. Never
            send chain explicitly.
        dateFrom:
          type: integer
          description: Start of the initial sync window (unix seconds).
        dateTo:
          type: integer
          description: End of the initial sync window (unix seconds).
      required:
        - name
        - address
        - dateFrom
        - dateTo

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.