> ## 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.

# Refresh Xero Accounts API

> Pull the latest Xero chart of accounts into Breezing so crypto journal entries can sync against the current account codes, names, and types.



## OpenAPI

````yaml POST /xero/accounts/refresh
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:
  /xero/accounts/refresh:
    post:
      tags:
        - Xero
      summary: Refresh Xero accounts
      description: >-
        Live-fetch the chart of accounts from the linked Xero organization AND
        write the result back onto `companies.accounts` so the Breezing app
        picks up the latest chart on next load. Mirrors the "Get accounts from
        Xero" button in the dashboard. If the fetched chart differs from the
        stored one, the replaced version is kept in the chart version history
        (downloadable from the Chart of Accounts page). Use the returned `code`
        when setting `account`, `assetAccount`, or `feeAssetAccount` on a
        transaction or asset. Returns 400 if Xero is not linked.
      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
      responses:
        '200':
          description: Xero accounts refreshed
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AccountingAccount'
                required:
                  - success
                  - data
        '400':
          description: Xero is not linked for this company
          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:
    AccountingAccount:
      type: object
      properties:
        code:
          type: string
          nullable: true
          description: >-
            Account code/identifier. Use this exact value when setting
            `account`, `assetAccount`, or `feeAssetAccount` on a transaction or
            asset.
        name:
          type: string
          nullable: true
          description: Display name of the account.
        type:
          type: string
          description: >-
            Account type as reported by the accounting platform (e.g. "Bank",
            "Other Current Asset", "EXPENSE").
      required:
        - code
        - name
        - type

````

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