---
title: "Decide a QuickBooks change (#2642)"
method: POST
path: "/accountant/companies/{customerId}/integrations/quickbooks/change-reviews/{reviewId}/resolve"
tags: ["Accountants"]
---

# Decide a QuickBooks change (#2642)

`POST /accountant/companies/{customerId}/integrations/quickbooks/change-reviews/{reviewId}/resolve`

## Request

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

`take_qbo` deactivates the link so the next activity import re-imports QuickBooks' version; Median's old entry must be reversed (followupStatus `reversal_pending` until the reversal flow is wired). `keep_median` keeps Median's version. When QuickBooks changed only a line's account or class or the memo of a pulled Purchase/Deposit, a draft write-back batch restoring Median's values is prepared (`writeback_requested`; it still needs approval and posting). Otherwise the restore stays `writeback_pending` with `followupReason` (`client_must_correct_quickbooks` or `writeback_not_possible`). `dismiss` records the reason and changes nothing now in Median or QuickBooks. For a change (not a deletion), Median's link then approves the reviewed QuickBooks version, so later reads and the activity import no longer flag it as changed. For an object Median pushed, it leaves the outstanding count at once, and the bank-feed push still writes Median's category to QuickBooks whenever the transaction changed after Median's last write to it, including before the dismissal. For an object Median pulled, it leaves the outstanding count with the next activity batch, and Median's entry keeps the earlier version; only the general-ledger parity check still shows a difference. A reason is required; the actor and time are recorded. When `expectedAfterSourceObjectId` is given and QuickBooks changed again since, or the review is no longer open, returns 409.

## Request body

- object
  - `resolution` 'take_qbo' | 'keep_median' | 'dismiss', required
  - `reason` string, required
  - `expectedAfterSourceObjectId` string, uuid, nullable

## Response `200`

The resolved review

- object
  - `success` true, required
  - `data` QuickBooksChangeReview, required
    - `id` string, uuid, required
    - `companyId` string, uuid, required
    - `entityId` string, uuid, required
    - `realmId` string, required
    - `linkId` string, uuid, required
    - `objectType` string, required
    - `providerId` string, required
    - `changeKind` 'changed' | 'deleted', required
    - `beforeSourceObjectId` string, uuid, nullable, required
    - `beforeEconomicSha256` string, required
    - `afterSourceObjectId` string, uuid, nullable, required
    - `afterEconomicSha256` string, nullable, required
    - `detectedRunId` string, uuid, required
    - `lastDetectedRunId` string, uuid, required
    - `status` 'open' | 'resolved_take_qbo' | 'resolved_keep_median' | 'dismissed', required
    - `resolutionReason` string, nullable, required
    - `resolvedByUserId` string, uuid, nullable, required
    - `resolvedAt` string, date-time, nullable, required
    - `followupStatus` 'none' | 'reversal_pending' | 'reversed' | 'writeback_pending' | 'writeback_requested', required
    - `followupReason` 'client_must_correct_quickbooks' | 'writeback_not_possible' | 'null', nullable, required: Why a keep_median restore stays writeback_pending. client_must_correct_quickbooks — QuickBooks changed an amount, date, bank/card line, counterparty or other field post-back never writes, or deleted the object. writeback_not_possible — only account/class/memo changed but the write-back rules refused the correction. writeback_requested means a draft write-back batch was prepared; it still needs approval and posting.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `404`: Resource not found
- `409`: Already resolved, or QuickBooks changed again since it was read (QUICKBOOKS_CHANGE_REVIEW_STALE)
- `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)
