# Export approved invoices to QuickBooks or Sage

The moment an invoice clears its final approval, it's posted as a bill in your accounting system — a Movement on Process trigger and one of the accounting export actions, with the status field and Export Queue that tell you whether each post succeeded.

Product: content-central · Versions: 7.8+ · Audience: system-administrator · Time: 45 minutes · Last verified: 2026-09-05

Canonical: https://help.ademero.com/content-central/workflow/export-approved-invoices-to-accounting

**When you're done, every invoice that receives its final approval is posted to your accounting system as a bill, with the vendor, number, date, amount, and account taken from the document's fields — and a status field on the invoice tells you it worked.**

```plan
scope: document-type
trigger: Approval Processes › Movement on Process | Approval Process: your invoice process · Process Evaluation: Approval by Final Member
action: QuickBooks Online - Export Single-Expense Account-Based Bill | Integration Connection · field mappings for vendor, bill number, date, amount, account · Export Status Field
rule: "Final approval → post bill to accounting", enabled
```

## Pick the action for your system

The action **Type:** list contains one entry per accounting target and bill shape. Single-expense posts the invoice total to one account; multi-expense posts line items to several.

| Your system | Action |
| --- | --- |
| QuickBooks Online | `QuickBooks Online - Export Single-Expense Account-Based Bill` or `…Multi-Expense…` |
| QuickBooks Desktop | `QuickBooks Desktop - Export Single-Expense Account-Based Bill`, `…Multi-Expense…`, or the `…Check` variants |
| Sage 50 / Sage 50 Canada | `Sage 50 - Export Single-Expense Account-Based Bill` (and Canada / Multi-Expense variants) |
| Workday | `Workday - Export Single-Expense Account-Based Object` or `…Multi-Expense…` |
| Epicor | `Epicor - Export Multi-Expense Account-Based Object` |

If the action's form says `There are no available QuickBooks Online integrations.` (or the equivalent for your system), the connection hasn't been set up — that's an administrator task done before this recipe, outside the workflow area.

## Build the trigger

1. Go to **Administration** > **Catalogs & Document Types**, pick the **Catalog** and the invoice **Document Type**, click the **Workflow** tile, then **Triggers** > **New Trigger**.

2. **Type:** `Approval Processes` and `Movement on Process`. **Trigger Name:** `Invoice fully approved`.

3. **Approval-Process Evaluation:** `Single Approval Process`; **Approval Process:** the invoice process. **Process Evaluation:** `Approval by Final Member`.

4. Click **Save**.

## Build the action

1. Click **Actions** > **New Action**. **Type:** the action from the table. **Action Name:** `Post bill to QuickBooks Online`.

2. Choose the **Integration Connection:**.

3. Map each accounting field to a document field. The single-expense bill form asks for the vendor, **Bill Number**, **Bill Date**, **Amount**, and the **Account (or GL Code) Field**; optional entries such as memo, due date, class, and customer can be left blank.

4. **Use for duplicate detection** — tick it on the fields that identify a bill uniquely (vendor plus bill number is the usual pair). When every ticked value on a document matches a bill already in accounting, the export is skipped as a duplicate instead of posting twice.

5. **Export Status Field (Optional):** pick a numeric field on the document type created for this. After each attempt it holds `1` for success, `2` for failure, or `3` for duplicate detected; blank or `0` means not run. Add such a field before you build the action — it turns "did it post?" into a searchable value.

6. Click **Save**.

## Wire the rule

1. Click **Rules** > **New Rule**. **Rule Name:** `Final approval → post bill to accounting`.

2. **Add Trigger:** `Invoice fully approved`. **Add Action:** `Post bill to QuickBooks Online`. **Apply**.

## Test it

1. Run one small test invoice through approval to completion.

2. Open the invoice's properties and read the export status field; then open the bill list in your accounting system.

**What you should see:** status `1` and the bill in accounting with the mapped values. Status `2` means the post failed — open the **Export Queue** card on the Workflow page, which lists queued integration exports awaiting retry and any that have permanently failed; **Export History** lists the ones that completed. Status `3` means a matching bill already existed.

## Variations

| Want this instead | Change this |
| --- | --- |
| Post line items to different accounts | The `Multi-Expense` action, mapping the line-item fields |
| Post at approval *start* for accrual, not completion | **Process Evaluation:** `New Arrival on Process` |
| Post only invoices over a threshold | Add a second trigger under **Use Multiple Triggers**, `AND`: **Content Query** › **by Field Value(s)** on the amount with **Field-Match Type:** `Range` |
| Also file and notify | Add **Content - Move to Folder** and **Send E-mail** to the same rule ([recipe](/content-central/workflow/file-and-notify-after-final-approval)) |
| Your system isn't listed | Export a file another system imports: [Drop approved documents into a folder for another system](/content-central/workflow/drop-approved-documents-into-a-folder-for-another-system) |
| Re-post a failed invoice | Fix the field values, clear the status field, and restart the approval — or use the Export Queue's retry |

## What's next

- [File the document and notify the requester after final approval](https://help.ademero.com/content-central/workflow/file-and-notify-after-final-approval)
- [Drop approved documents into a folder for another system](https://help.ademero.com/content-central/workflow/drop-approved-documents-into-a-folder-for-another-system)
- [Look up vendor details from your ERP when an invoice arrives](https://help.ademero.com/content-central/workflow/look-up-vendor-details-when-an-invoice-arrives)
