ThatFiscal Knowledge Base

QuickBooks Online ZIMRA Fiscalisation — Integration Guide

~15 minutes · bridge

Overview. QuickBooks Online doesn't let you point a raw webhook at any URL, so the clean path is a one-Zap bridge: New Invoice → POST to ThatFiscal. Zapier's free tier is enough for most SMEs; Make.com works identically. This endpoint expects the QuickBooks Accounting API v3 Invoice or CreditMemo entity.

Before You Begin: a Zapier (or Make) account connected to your QuickBooks Online, and your ThatFiscal API key.

Step 1

Create the Zap Trigger

Trigger app: QuickBooks Online. Event: New Invoice. Connect your account and pull in a sample invoice.

Step 2

Add the Webhook Action

Action: Webhooks by Zapier → POST. URL https://api.thatfiscal.com/webhooks/quickbooks. Payload type JSON. Add header X-Api-Key: tf_….

Step 3

Send the Raw Entity, Including TxnTaxDetail

Post the whole QuickBooks object rather than a hand-picked set of fields. QuickBooks does not put a tax rate on the line at all — we read it from TxnTaxDetail.TaxLine[].TaxLineDetail.TaxPercent and match it to each line through TaxCodeRef. If TxnTaxDetail is dropped from the payload, every line is declared with unknown tax and the receipt is refused rather than silently declared at 0% or the standard rate. Lines whose TaxCodeRef is NON, exempt or zero-rated are always declared at 0%, whatever the invoice header says.

Step 4

Repeat for Credit Memos

A second Zap with trigger New Credit Memo to the same URL covers refunds. Zapier posts the CreditMemo object unwrapped — with no "CreditMemo" key around it — and we detect it anyway, from RemainingCredit, a CM-/CN- document number, or the absence of invoice-only fields such as DueDate. It is fiscalised as a credit note that reduces your output VAT, never as a fresh sale.

Step 5

Keep LinkedTxn on the Credit Memo

Apply the credit memo to the original invoice in QuickBooks before it syncs. That fills LinkedTxn with the invoice's internal Id, which is how we find the original receipt. For an unapplied memo, send credited_invoice_no (or write "Invoice 1037" in the private note) instead. Without either, the credit note is refused with RCPT015.

Step 6

Turn It On and Test

Create a test invoice in QuickBooks. Zapier fires, and the fiscalised result (QR + verification code) is in your Portal within seconds. The QR link also comes back in the webhook response for your invoice template.

HS Codes in QuickBooks: QuickBooks Online has no HS code field, so there is nothing to map. We auto-derive the code for every line (Items Master → our Zimbabwe classifier → your default). Auto-derived codes are a safety net, not a substitute for the real thing — load your genuine codes once via Portal → Items → Import CSV (columns name,hs_code, optional tax_percent) and every future QuickBooks invoice picks them up automatically.
Prefer No Zapier? Export invoices to CSV and use the Excel / CSV route — same compliance, zero moving parts. Or ask us about a direct QuickBooks app connection for high-volume accounts.
Need a Hand? Email support@thatfiscal.com or call +263 78 674 5282. If it is quicker, we will do the setup with you on the call.
← All Knowledge Base Guides