> ## 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 Account Report API

> Generate a Breezing account report showing balance sheet movements by GL account for the period, with opening balances, debits, and credits.



## OpenAPI

````yaml POST /reports/account
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:
  /reports/account:
    post:
      tags:
        - Reports
      summary: Generate an account report
      description: >-
        Create an account report: balance sheet by GL account for the period
        (opening balances, debit, credit), mirroring the dashboard's "Generate
        new report" form. Always covers ALL wallets, tokens and chains of the
        company.


        Generation is ASYNCHRONOUS: the response returns the pending report and
        task ids immediately. Poll GET /tasks and GET /reports/{id} until the
        status is no longer "pending"/"progress" ("done" = detail rows are ready
        via GET /reports/{id}/details). Parallel report creation is allowed (no
        409 gating, dashboard parity), so do NOT create another report with the
        same parameters while one is still pending; check GET /reports first.


        Optional reconcileWith compares each account against the linked
        platform's trial balance and flags differences (silently ignored unless
        that platform is linked).


        For net gain/loss per token use POST /reports/token; for an on-chain
        balances reconciliation use POST /reports/explorer-balances.
      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/CreateAccountReportBody'
      responses:
        '200':
          description: Report generation queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: object
                    properties:
                      reportId:
                        type: integer
                        description: >-
                          ID of the (pending) report row. Poll GET
                          /reports/{id}.
                      taskId:
                        type: integer
                        description: >-
                          ID of the createReport task tracking generation. Poll
                          GET /tasks.
                    required:
                      - reportId
                      - taskId
                required:
                  - success
                  - data
        '400':
          description: dateTo before dateFrom
          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
        '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:
    CreateAccountReportBody:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 200
          description: Report name shown in the reports list.
        description:
          type: string
          maxLength: 2000
          description: Optional free-text description.
        dateFrom:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          description: Period start (unix ms).
        dateTo:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          description: Period end (unix ms). Must be >= dateFrom.
        reconcileWith:
          type: string
          enum:
            - xero
            - qbo
          description: >-
            Compare each account against the Xero or QuickBooks trial balance
            and flag differences. Silently ignored unless the chosen platform is
            linked.
      required:
        - name
        - dateFrom
        - dateTo

````