---
title: "QuickBooks posting cutoff and account mappings for a customer (#2642)"
method: GET
path: "/accountant/companies/{customerId}/integrations/quickbooks/posting-setup"
tags: ["Accountants"]
---

# QuickBooks posting cutoff and account mappings for a customer (#2642)

`GET /accountant/companies/{customerId}/integrations/quickbooks/posting-setup`

## Request

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

The accountant-set cutoff (with history) and every QuickBooks account from the latest completed source read with its approved Median GL mapping and cash source. Read-only; nothing here posts or writes to QuickBooks.

## Response `200`

Posting setup

- object
  - `success` true, required
  - `data` QuickBooksPostingSetup, required
    - `arApEnablement` QuickBooksArApEnablementStatus, required
      - `state` 'off' | 'dual_read' | 'single_write' | 'rolled_back', required: The company's subledger conversion state
      - `arApItemsEnabled` boolean, required: True when invoices and bills can post
      - `converted` boolean, required: A conversion run completed in the current cycle
      - `validated` boolean, required: That run passed INV-1..9 and is stamped
      - `quickBooksConnected` boolean, required
      - `canEnable` boolean, required
      - `reason` string, nullable, required: Why canEnable is false
    - `connectionId` string, uuid, required
    - `realmId` string, required
    - `cutoff` QuickBooksPostingCutoffView, required
      - `id` string, uuid, required
      - `cutoffDate` string, date, required
      - `reason` string, required
      - `setByUserId` string, uuid, required
      - `setAt` string, date-time, required
    - `cutoffHistory` QuickBooksPostingCutoffView[], required
      - `id` string, uuid, required
      - `cutoffDate` string, date, required
      - `reason` string, required
      - `setByUserId` string, uuid, required
      - `setAt` string, date-time, required
    - `sourceRunId` string, uuid, nullable, required
    - `unmappedActiveAccounts` integer, required
    - `askMyAccountant` object, nullable, required: #2642: the Ask My Accountant GL account automatic posting sends unmapped accounts and unreadable QuickBooks objects to; everything in it needs an accountant's categorization. Null before the account exists.
      - `glAccountId` string, uuid, required
      - `code` string, required
      - `name` string, required
      - `balanceCents` integer, required: Debit minus credit over posted journal lines, integer cents
      - `entryCount` integer, required: Posted journal entries touching the account
    - `autoMap` object, nullable, required
      - `mode` 'established' | 'new_file', required
      - `exceptions` QuickBooksAutoMapException[], required
        - `qboAccountId` string, nullable, required: Null for a Median account with no QuickBooks counterpart
        - `glAccountId` string, uuid
        - `name` string, required
        - `reason` 'multiple_for_system_role' | 'ambiguous' | 'unknown_type' | 'no_match' | 'name_conflict' | 'no_free_code' | 'create_failed' | 'median_account_not_in_quickbooks' | 'quickbooks_account_inactive' | 'quickbooks_account_reactivated', required
        - `candidates` QuickBooksAutoMapGlAccountRef[]
          - `glAccountId` string, uuid, required
          - `code` string, required
          - `name` string, required
      - `medianSystemAccountsKept` QuickBooksAutoMapGlAccountRef[], required
        - `glAccountId` string, uuid, required
        - `code` string, required
        - `name` string, required
      - `deactivated` integer, required: Median accounts auto-map has deactivated so far
    - `accounts` object[], required
      - `qboAccountId` string, required
      - `sourceObjectId` string, uuid, required
      - `name` string, nullable, required
      - `accountType` string, nullable, required
      - `accountSubType` string, nullable, required
      - `active` boolean, required
      - `activeKnown` boolean: True only when the stored source contains an explicit Boolean Active field; unknown activity state cannot authorize a transfer.
      - `fullyQualifiedName` string, nullable
      - `acctNum` string, nullable
      - `parentQboAccountId` string, nullable
      - `mapping` object, nullable, required
        - `id` string, uuid, required
        - `glAccountId` string, uuid, required
        - `cashSource` 'quickbooks' | 'median', required
        - `approvedByUserId` string, uuid, required
        - `approvedAt` string, date-time, required
        - `automatic` boolean, required: Recorded by auto-map rather than picked by a person

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `422`: QuickBooks is not connected (QUICKBOOKS_LEDGER_NOT_CONNECTED)
- `503`: Selected account-reference projection is not verified (QUICKBOOKS_REFERENCE_PROJECTION_NOT_READY); no transfer is applied and no recursive fallback runs

---

[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)
