---
title: "Queue a QuickBooks financials import (chart + journal CSVs)"
method: POST
path: "/bulk/qbo-financials/import"
tags: ["Imports"]
---

# Queue a QuickBooks financials import (chart + journal CSVs)

`POST /bulk/qbo-financials/import`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/bulk/qbo-financials/import`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Queues a rebuild of the organization's books from a QuickBooks chart-of-accounts CSV and journal CSV and returns 202 with the pending job at once. A background worker provisions accounts, posts grouped journal entries, and optionally sets reconciliation baselines in one all-or-nothing transaction. Poll GET /bulk/import-jobs/{id} until status is completed (job.result summarizes the import) or failed (job.errorMessage explains why; nothing was imported). Send the RAW QuickBooks exports unchanged - reformatted/normalized files are rejected. Create the company with setupMode 'import' so the imported chart is not merged with the default seed. Always preview first. Prefer file keys from POST /bulk/qbo-financials/uploads; inline CSV content is stored as a temporary import file for the worker. Source files are attached to the completed import and scheduled for recoverable temporary retention. Reusing an idempotencyKey returns the original job. Only one QuickBooks import may be queued or running per company; a second returns 409 with code qbo_import_already_running.

## Request body

- object
  - `coaCsvContent` string: Inline chart CSV (or use coaFileKey)
  - `journalCsvContent` string: Inline journal CSV (or use journalFileKey)
  - `coaFileKey` string
  - `journalFileKey` string
  - `accountTypeResolutions` object[]: Confirmed types for Journal accounts missing from the Chart of Accounts CSV.
    - `accountName` string, required
    - `accountType` 'asset' | 'liability' | 'equity' | 'revenue' | 'expense', required
  - `coaFileName` string, required
  - `journalFileName` string, required
  - `replaceExistingLedger` boolean
  - `idempotencyKey` string: Stable retry key for this exact import request.
  - `reconciliationSetup` object
    - `mode` 'baseline' | 'after_import' | 'final_statement_period'
    - `accountWindows` object[]
      - `accountKey` string, required
      - `startDate` string, date, required

## Response `202`

Queued import job

## Other responses

- `default`: Error response

---

[API](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api.md) · [All operations](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/revisions/9a8269f0a586?raw)
