---
title: "Connect QuickBooks from a refresh token already issued to Median's Intuit app"
method: POST
path: "/accountant/companies/{customerId}/integrations/quickbooks/connection-import"
tags: ["Accountants"]
---

# Connect QuickBooks from a refresh token already issued to Median's Intuit app

`POST /accountant/companies/{customerId}/integrations/quickbooks/connection-import`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/accountant/companies/{customerId}/integrations/quickbooks/connection-import`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Refreshes the token with Median's own Intuit credentials (422 QUICKBOOKS_LEDGER_IMPORT_REJECTED and nothing stored if Intuit refuses), then follows the browser callback's path: CompanyInfo read, realm verification, encrypted token storage and the source-inventory enqueue. The response never contains a token.

## Request body

- object
  - `realmId` string, required
  - `refresh_token` string, required

## Response `201`

Connection status after verification

- object
  - `success` true, required
  - `data` QuickBooksLedgerStatus, required
    - `status` 'not_connected' | 'connected' | 'realm_mismatch' | 'needs_reauth', required
    - `realmIdMasked` string, nullable, required
    - `companyName` string, nullable, required
    - `verification` 'verified' | 'unverified' | 'realm_mismatch' | 'null', nullable, required
    - `connectedAt` string, date-time, nullable, required
    - `connectionId` string, uuid, nullable, required

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `422`: Request failed validation

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
