ACF Connector Specification — QuickBooks Online
1. Purpose
This specification defines how the ZAYAZ Accounting Connectivity Framework (ACF) integrates with Intuit QuickBooks Online (QBO).
QuickBooks Online is treated as a cloud accounting source platform.
The preferred ZAYAZ integration uses:
- the QuickBooks Online Accounting API for authoritative accounting records;
- OAuth 2.0 authorization for customer access;
realmIdfor source-company identity;- CloudEvents webhooks for near-real-time change detection;
- Change Data Capture (CDC) for incremental consistency and recovery;
- periodic source reconciliation;
SyncTokenand source metadata for revision awareness;- Attachable objects for accounting evidence; and
- TrustGate for end-to-end provenance.
QuickBooks Desktop is intentionally outside this primary connector specification.
Its qbXML and QuickBooks Web Connector architecture should be treated as a separate compatibility profile if ZAYAZ later chooses to support it.
2. Why QuickBooks matters to ACF
QuickBooks Online represents a very different end of the accounting market from SAP.
A QuickBooks company may have:
- a relatively simple chart of accounts;
- vendors;
- customers;
- bills;
- purchases;
- invoices;
- items;
- classes;
- departments;
- attachments; and
- financial reports.
It may not have:
- plants;
- WBS structures;
- sophisticated warehouses;
- production orders;
- material documents; or
- enterprise procurement hierarchies.
The ACF architecture must work equally well for both.
That makes QuickBooks an important validation of the abstraction.
3. Source identity
QuickBooks Online identifies a connected accounting company using:
realmId
The source namespace is therefore:
Intuit application
↓
Environment
↓
realmId
↓
Entity type
↓
Entity ID
The realmId must be mapped to:
ZAYAZ organization
+
E-C-O Number
before accounting data enters governed processing.
4. realmId
realmId is returned during the Intuit OAuth authorization flow.
It identifies the QuickBooks Online company to which the customer has granted access.
It is also used in API URLs.
For example:
/v3/company/{realmId}/...
The displayed company name must never replace realmId as the source identity.
5. Sandbox and production
QuickBooks provides separate sandbox and production environments.
Their API hosts are different:
Sandbox
sandbox-quickbooks.api.intuit.com
Production
quickbooks.api.intuit.com
Credentials and authorizations are environment-specific.
A sandbox realm and production realm are separate source contexts.
6. OAuth 2.0
QuickBooks Online uses OAuth 2.0 authorization.
The flow is:
ZAYAZ
↓
Intuit authorization
↓
customer authentication
↓
company authorization
↓
authorization code + realmId
↓
token exchange
↓
access token + refresh token
ZAYAZ never receives the customer's QuickBooks password.
7. Accounting scope
The standard QuickBooks Online Accounting API authorization scope is:
com.intuit.quickbooks.accounting
The connector should request only scopes that are needed for the approved ZAYAZ integration.
Additional Intuit products or APIs should not automatically be included.
8. Access tokens
QuickBooks access tokens are short-lived.
The documented access-token lifetime is approximately:
3600 seconds
or one hour.
API Hub must therefore refresh them as part of normal connector operation.
Token expiration is not an exceptional condition.
9. Refresh tokens
Refresh tokens allow ZAYAZ to obtain new access tokens without repeatedly asking the customer to authorize the application.
ZAYAZ must always persist the latest refresh token returned by Intuit.
The token relationship is:
realmId
+
access token
+
refresh token
The tokens must not become detached from their associated realm.
10. Refresh-token rotation
A refresh operation may return a new refresh token.
Therefore:
old refresh token
↓
refresh operation
↓
new access token
+
latest refresh token
must be persisted atomically.
Using stale token state can break a previously healthy customer connection.
11. Refresh-token lifetime
QuickBooks historically used a rolling refresh-token model in which continued use within the relevant rolling period could maintain the connection.
Intuit has added an absolute maximum lifetime.
The ACF token model should therefore understand both:
rolling token-use requirement
+
absolute maximum token lifetime
rather than assuming a QuickBooks connection can remain authorized forever.
12. Five-year maximum authorization lifetime
Intuit now applies a maximum five-year lifetime to refresh tokens.
For the standard QuickBooks Accounting API scope, the earliest affected tokens are expected to reach that maximum beginning in October 2028.
This makes reconnection a permanent operational requirement.
13. Reconnect workflow
The connector must implement:
token expiry approaching
↓
customer notification
↓
ZAYAZ reconnect URL
↓
Intuit authorization
↓
new authorization
↓
same realm revalidated
The reconnection process must preserve historical connector identity and TrustGate lineage rather than create an unrelated new source.
14. No service-account assumption
The standard QuickBooks Online Accounting API uses customer OAuth authorization.
ACF must not design QuickBooks as though it supports the Fortnox-style:
service account
+
client credentials
production model.
This distinction belongs in the connector capability profile.
15. Company capability profile
Each connected realm produces:
ACF-QUICKBOOKS-CUSTOMER-PROFILE
The profile records:
- realm ID;
- environment;
- company information;
- country/locale;
- home currency;
- multicurrency configuration;
- tax configuration;
- available features;
- purchase-order capability;
- inventory capability;
- classes;
- departments;
- available API entities;
- webhook coverage;
- CDC coverage;
- API minor version; and
- canonical mappings.
16. API capability is not product capability
The QuickBooks API documentation may expose an entity such as:
PurchaseOrder
while the connected QuickBooks company does not have the required feature.
Therefore:
API entity exists
does not equal:
customer capability exists
ACF must resolve both.
17. Plan- and configuration-dependent capabilities
Capabilities such as:
- purchase orders;
- inventory;
- classes;
- departments/locations;
- multicurrency; and
- selected other accounting features
can depend on QuickBooks product edition or customer configuration.
These must be part of connector discovery.
18. Accounting API
The QuickBooks Online Accounting API is the authoritative source interface.
The API family is versioned under:
v3
and business entities are normally addressed under:
/v3/company/{realmId}/...
19. Minor versions
QuickBooks also evolves its Accounting API through:
minorversion
The connector must therefore distinguish:
ACF connector version
from:
QuickBooks API generation
and:
QuickBooks minor version
All three are separate governance concepts.
20. API contract tracking
The customer profile should record the minor version used in production.
A provider API update can then trigger:
minor-version change
↓
mapping review
↓
compatibility validation
↓
production acceptance
rather than silently changing source behavior.
21. Source object identity
Most QuickBooks entities expose:
Id
as their source identity.
This value must be retained.
For example:
realmId
+
Vendor
+
Id
forms a source object identity.
22. SyncToken
QuickBooks objects also expose:
SyncToken
to support concurrency control and updates.
For ACF it is additionally useful as source-revision information.
Thus:
Id
answers:
Which source object is this?
while:
SyncToken
helps answer:
Which revision/state of that source object did ZAYAZ process?
23. Source metadata
QuickBooks entities can also expose metadata such as:
MetaData.CreateTime
MetaData.LastUpdatedTime
where applicable.
ACF should preserve these independently from:
ZAYAZ retrieval time
because source mutation time and ingestion time are different facts.
24. Source revision model
QuickBooks therefore gives us a useful three-part source model:
SOURCE IDENTITY
Id
SOURCE REVISION
SyncToken
SOURCE MODIFICATION
MetaData.LastUpdatedTime
This should become a reusable ACF source-version pattern.
25. Query API
QuickBooks provides a query interface for retrieving entity populations.
The query language resembles SQL, but it is not general-purpose SQL.
ACF must respect its limitations.
26. Query-language limitations
QuickBooks query behavior has important restrictions.
For example, it does not provide generic support for:
- arbitrary joins;
GROUP BY;- normal projections; or
- arbitrary
ORbehavior comparable with SQL.
This means API Hub cannot push all canonical joining into QuickBooks.
Some joins must occur in the governed ACF canonical layer.
27. Query pagination
A QuickBooks query can use:
STARTPOSITION
MAXRESULTS
The default result population is smaller than the maximum.
The connector must explicitly paginate.
No collection response may be assumed complete simply because the API request succeeded.
28. Maximum query result page
QuickBooks queries can return up to approximately:
1000 entities
per response.
Larger populations must be retrieved in chunks.
This makes source pagination a mandatory connector function.
29. Stable retrieval
The connector should avoid relying on source ordering assumptions.
For incremental processing, use:
- CDC;
- source modification metadata where appropriate;
- transaction dates where appropriate; and
- deterministic local identity processing.
The entity Id should not be treated as a universal chronological ordering key.
30. Change Data Capture
QuickBooks provides a dedicated Change Data Capture operation.
CDC returns objects that have changed since a supplied timestamp.
The conceptual request is:
realm
+
entity list
+
changedSince
and the response contains matching changed source objects.
31. CDC is different from a webhook
A webhook says:
Something changed.
CDC says:
Give me source objects that changed since this point in time.
These are separate synchronization capabilities.
32. CDC lookback
QuickBooks CDC supports a maximum lookback of:
30 days
This creates a bounded recovery window.
ZAYAZ must track its CDC watermark.
33. Daily CDC
A strong production pattern is:
Webhooks
↓
near-real-time freshness
CDC
↓
daily consistency
Periodic reconciliation
↓
completeness assurance
Intuit itself recommends using CDC to recover from missed webhook activity.
34. CDC recovery risk
If the last reliable synchronization is more than 30 days old:
CDC alone
is no longer sufficient for complete recovery.
The connector must perform:
authoritative entity queries
or
full reconciliation
depending on the affected source domains.
35. CloudEvents webhooks
QuickBooks has moved its webhook infrastructure to the CloudEvents 1.0 format.
New ZAYAZ development should implement this format directly.
Legacy webhook payload compatibility should not define the production connector.
36. CloudEvent structure
A QuickBooks event can include fields such as:
specversion
id
source
type
time
intuitentityid
intuitaccountid
The event type can encode entity and operation semantics, for example:
qbo.customer.created.v1
37. intuitaccountid
In the CloudEvents format:
intuitaccountid
identifies the QuickBooks company.
This corresponds to the realm/company context required by ACF.
The event must therefore resolve:
intuitaccountid
↓
ACF-QUICKBOOKS-CUSTOMER-PROFILE
↓
ZAYAZ organization
↓
E-C-O Number
before processing.
38. intuitentityid
The CloudEvent also provides:
intuitentityid
for the changed business object.
The event can therefore trigger:
realm
+
entity type
+
entity ID
↓
Accounting API reread
39. Webhook signature validation
QuickBooks webhook requests must be authenticated.
ZAYAZ should validate:
intuit-signature
using the configured webhook verifier token and the unmodified raw request payload.
The signature validation occurs before semantic processing.
40. Durable event processing
The correct processing pattern is:
CloudEvent
↓
signature validation
↓
realm resolution
↓
durable queue
↓
idempotency check
↓
authoritative API reread
↓
canonical processing
Complex processing should not occur in the HTTP receiver.
41. Webhooks do not establish completeness
Webhook delivery must never become the only source synchronization mechanism.
The full production architecture uses:
webhooks
+
CDC
+
reconciliation
This is now a recurring ACF pattern across several providers.
42. Event lineage
TrustGate should preserve:
CloudEvent ID
+
event type
+
event time
+
realm
+
entity ID
followed by:
authoritative source reread
This explains both:
Why did ZAYAZ refresh this object?
and:
What actual source state did ZAYAZ process?
43. Batch API
QuickBooks provides a batch operation endpoint.
A batch can combine multiple operations into one HTTP request.
This can reduce network overhead.
44. Batch isolation
Each operation inside a batch must remain independently identifiable.
Conceptually:
Batch
├── operation A
├── operation B
├── operation C
└── operation D
ACF must not collapse them into one opaque source event.
45. Rate limiting
QuickBooks applies API limits per realmId.
The current recommended production limits include controls around:
- concurrent requests;
- requests per minute;
- batch requests; and
- payloads per batch.
API Hub should maintain independent rate budgets for each realm.
46. Realm-scoped throttling
The architecture becomes:
Realm A
↓
API budget A
Realm B
↓
API budget B
Realm C
↓
API budget C
A heavy synchronization for one QuickBooks company should not unnecessarily block another company's processing.
47. Adaptive throttling
API Hub should treat:
HTTP 429
as a normal operational capacity signal.
The response is:
reduce request rate
+
backoff
+
jitter
+
retry safely
not:
mark accounting data invalid
48. Accounts
QuickBooks Account objects provide the chart of accounts.
They can carry information such as:
- account name;
- account type;
- account subtype;
- active state; and
- source identity.
This provides the first ESG classification layer.
49. Account classification
A QuickBooks account such as:
Utilities
Travel
Fuel
Office Supplies
Professional Services
is useful.
But account names are customer-defined.
Therefore:
account
is a source signal rather than an ESG taxonomy.
50. Vendors
QuickBooks Vendor objects provide supplier identity.
They can support:
- supplier spend;
- supplier segmentation;
- country enrichment;
- Scope 3 screening;
- supplier questionnaires;
- CSDDD workflows;
- supplier-specific evidence requests; and
- factor resolution.
51. Vendor identity is not ESG evidence
This distinction remains critical:
Vendor = Supplier A
does not establish:
Supplier A product footprint = X
The first is accounting identity.
The second requires sustainability evidence.
52. Bills
Bills represent accounts-payable transactions associated with vendors.
They are particularly useful for ACF because they combine:
- vendor;
- financial amount;
- date;
- currency;
- accounts; and
- itemized lines where used.
This can provide a significant upgrade over account-only screening.
53. Bill lines
QuickBooks expense transactions can contain different line semantics.
For example:
AccountBasedExpenseLineDetail
or:
ItemBasedExpenseLineDetail
This distinction should be preserved.
54. Account-based expense lines
An account-based line may provide:
expense account
+
amount
+
description
This is useful for spend classification.
It normally remains DQ1 or DQ2.
55. Item-based expense lines
An item-based line may provide:
ItemRef
Qty
UnitPrice
Amount
This is significantly more interesting for ESG.
But Qty remains only an activity candidate until its semantics are resolved.
56. Purchases
The QuickBooks Purchase entity can represent expenses paid through mechanisms such as:
- bank;
- cash; or
- credit card.
It can contain account-based or item-based expenditure lines.
This makes Purchase important for companies that do not enter every expense first as a Bill.
57. Purchases versus Bills
The connector should not assume:
all procurement = Bill
A QuickBooks company may use:
Bills
Purchases
Credit card expenses
Checks
depending on accounting workflow.
ACF should normalize their economic meaning without losing the source transaction type.
58. Purchase orders
QuickBooks exposes PurchaseOrder through the Accounting API.
Purchase-order lines can include:
Vendor
Item
Qty
UnitPrice
Amount
This can provide useful procurement context.
59. Purchase-order capability is conditional
The presence of a PurchaseOrder API entity does not mean every QuickBooks customer has purchase orders enabled.
QuickBooks currently associates purchase-order functionality with particular subscription levels/features.
Therefore capability must be discovered per realm.
60. Items
QuickBooks Items represent products and services a company buys or sells.
Relevant item types include concepts such as:
Inventory
NonInventory
Service
This distinction is highly useful for ACF.
61. Inventory Items
An inventory item may contain:
- income account;
- expense account;
- asset account;
- quantity on hand;
- inventory start date; and
- tracking configuration.
This gives ACF more operational information than pure G/L accounts.
62. Services
A service item may represent:
- consulting;
- installation;
- professional services;
- maintenance; or
- another non-physical commercial activity.
A quantity of:
1 service item
must not be converted into physical environmental activity.
63. Non-inventory items
Non-inventory items can still represent physical goods.
The fact that QuickBooks does not track them as inventory does not mean the underlying business object is non-physical.
Semantic mapping is required.
64. Quantity semantics
Suppose a Bill line says:
Item: Diesel
Qty: 1,500
ZAYAZ cannot yet calculate fuel emissions.
It still needs to establish:
1,500 litres?
1,500 gallons?
1,500 units?
The source quantity is only part of the activity.
65. Semantic Activity Resolution
QuickBooks reinforces the common ACF resolver:
SOURCE ENTITY
↓
LINE TYPE
↓
ITEM
↓
QUANTITY
↓
UNIT SEMANTICS
↓
ACTIVITY TYPE
↓
METHOD COMPATIBILITY
↓
FACTOR ELIGIBILITY
Only after this resolution may quantity become DQ3 activity data.
66. Example — useful item quantity
Suppose QuickBooks contains:
Vendor: Fuel Supplier
Item: Diesel Fuel
Qty: 1,500
Description: litres
and the semantic mapping is validated.
ACF may resolve:
1,500 litres diesel
↓
fuel combustion method
↓
appropriate factor
↓
MICE
↓
tCO2e
That can supersede a spend estimate.
67. Example — unsafe interpretation
Suppose QuickBooks instead contains:
Item: Fuel
Qty: 1
Amount: EUR 2,500
The connector must not infer:
1 litre
or:
2,500 litres
The physical quantity remains unresolved.
68. Classes
QuickBooks Classes allow businesses to segment transactions or transaction lines.
Examples might include:
- operating division;
- service line;
- project type;
- geography; or
- another internal business segment.
Their meaning is customer-defined.
69. Class mapping
A mapping might be:
QuickBooks Class
"Northern Region"
↓
ZAYAZ semantic map
↓
Operating region
But ACF must not automatically interpret it as:
physical facility
or:
legal entity
without validation.
70. Departments
QuickBooks Department entities can also represent organizational or location-style segmentation.
Potential ESG uses include:
- business-unit allocation;
- location allocation;
- department footprinting; and
- internal reporting.
Again, the customer-specific meaning must be established.
71. QuickBooks dimensions versus ACF dimensions
QuickBooks Classes and Departments should map into a generic canonical dimensional model:
source dimension
↓
source value
↓
semantic mapping
↓
canonical ZAYAZ dimension
This pattern should be shared with:
- SAP cost centers/plants;
- Business Central dimensions;
- e-conomic dimensions;
- NetSuite departments/classes/locations; and
- other ACF connectors.
72. Currency
QuickBooks supports accounting currency information and, where configured, multicurrency.
ACF preserves:
source amount
transaction currency
exchange rate
home currency
where available.
Any ZAYAZ factor-currency conversion is a separate transformation.
73. Currency normalization
For example:
QBO source:
NOK 100,000
ZAYAZ method:
EUR-normalized spend
Conversion:
NOK → EUR
using governed FX source
Factor:
kgCO2e / EUR
The original NOK amount remains immutable source evidence.
74. Tax
QuickBooks tax behavior can vary by country and company configuration.
ACF must therefore avoid designing one universal tax interpretation for every realm.
Tax metadata can support:
- net/gross normalization;
- source validation;
- transaction interpretation; and
- reconciliation.
Tax is not an emissions methodology.
75. International differences
QuickBooks Online is used in multiple markets.
Provider behavior and business fields may differ by:
- country;
- tax regime;
- product availability;
- company configuration; and
- API capability.
The customer connector profile must therefore preserve country or locale context.
76. Attachables
QuickBooks provides an Attachable entity.
An attachment can contain:
- a file;
- a note; or
- file metadata.
Attachments can be linked to supported QuickBooks entities through an AttachableRef.
77. Attachments as evidence
This allows:
ESG result
↓
MICE execution
↓
classified QuickBooks transaction
↓
Bill / Purchase / other source object
↓
AttachableRef
↓
invoice / receipt / document
This can become a strong auditor-readable evidence chain.
78. Attachments as enrichment
A QuickBooks Bill may contain:
Vendor: Utility Company
Amount: EUR 4,500
while an attached PDF could contain:
Consumption: 12,350 kWh
Meter: ABC-123
Period: January
The accounting transaction can therefore serve as a locator for higher-quality environmental evidence.
79. Reports
QuickBooks provides financial reports through its API.
These can be useful for:
- profit-and-loss reconciliation;
- balance-sheet reconciliation;
- trial-balance checks;
- management totals; and
- reasonableness tests.
Reports should normally support reconciliation rather than replace transaction-level ESG lineage.
80. Financial reconciliation
A useful pattern is:
transaction-level ACF ingestion
↓
canonical totals
↓
QuickBooks report
↓
reconciliation
A mismatch can trigger DaVE.
81. ESG processing model
The source-to-result chain is:
QuickBooks
↓
realm registration
↓
source entity
↓
canonical mapping
↓
normalization
↓
classification
↓
activity resolution
↓
method selection
↓
factor resolution
↓
MICE
↓
TrustGate
↓
governed ESG result
82. Spend-based emissions
QuickBooks is particularly strong for SMB spend screening.
A calculation can combine:
Account
+
Vendor
+
Bill
+
Bill line
+
Item
+
Class
+
Department
↓
classification
↓
spend category
↓
currency normalization
↓
factor
↓
tCO2e
83. Accounting hierarchy of evidence
A useful QuickBooks evidence ladder is:
Account
↓
Purchase / Bill
↓
Vendor
↓
Itemized line
↓
Item
↓
Quantity
↓
Attachment
↓
External primary evidence
Each layer can strengthen interpretation.
84. Data-quality hierarchy
ACF-DQ1 — Accounting-only estimate
Typical source:
Account
Vendor
Amount
Suitable for:
- screening;
- materiality;
- spend-based estimation.
ACF-DQ2 — Invoice/transaction-level data
Typical source:
Bill
Purchase
Vendor
Itemized line
Item
Attachment
This usually improves classification.
ACF-DQ3 — Activity data
A valid physical quantity and unit have been established.
The activity may originate from:
- itemized transaction data;
- attached invoice;
- external operational data; or
- other validated source evidence.
ACF-DQ4 — Supplier/item-specific data
The environmental information relates to the actual:
- supplier;
- item;
- product;
- service; or
- contractual relationship.
ACF-DQ5 — Verified primary data
The primary evidence has undergone the required verification or assurance.
85. Progressive quality upgrade
A QuickBooks calculation might evolve:
DQ1
EUR 20,000 fuel spend
↓
DQ2
Supplier bill + item
↓
DQ3
6,250 litres diesel
↓
DQ4
supplier-specific fuel data
↓
DQ5
verified primary evidence
Each prior result remains available in lineage.
86. Scope 1
QuickBooks can identify candidate Scope 1 transactions such as:
- fuel expenditure;
- vehicle expenses;
- heating fuel;
- generator fuel; and
- other combustion-related purchases.
But accounting transactions alone do not establish complete Scope 1 emissions.
87. Scope 2
QuickBooks can identify:
- electricity suppliers;
- utility expenditure;
- utility invoices;
- relevant locations through mapped dimensions; and
- attached invoices.
Actual kWh, tariff attributes and contractual instruments may require additional evidence.
88. Scope 3
QuickBooks is well suited to initial Scope 3 screening.
Useful inputs include:
- vendor;
- account;
- bill;
- purchase;
- item;
- transaction amount;
- class; and
- department.
The method may later upgrade from spend-based to physical or supplier-specific data.
89. PEF/LCA limitations
QuickBooks has items and quantities, but it is not generally a manufacturing ERP.
It therefore lacks the universal expectation of:
- production orders;
- bills of material;
- goods movements;
- detailed material consumption; and
- plant-specific manufacturing activity.
PEF/LCA support is possible but should be classified as conditional.
90. SMB strength
This limitation is also a strength of the connector architecture.
ACF must still produce trustworthy results when the source company only provides:
Vendor
Bill
Expense account
Item
Amount
The common ACF architecture cannot require SAP-level source richness.
91. Source authority progression
For an SMB company, the authority path may therefore be:
Accounting amount
↓
Transaction
↓
Vendor
↓
Item
↓
Attachment
↓
External activity
↓
Supplier evidence
ZAYAZ progressively improves the result instead of rejecting the accounting system for being simple.
92. Historical source changes
QuickBooks source entities can change after initial ingestion.
ACF can detect this through:
- CloudEvents;
- CDC;
SyncToken;MetaData.LastUpdatedTime; and- reconciliation.
A material historical mutation triggers revalidation.
93. Historical mutation workflow
QuickBooks change
↓
CloudEvent / CDC
↓
new source revision
↓
DaVE
↓
TrustGate lineage event
↓
affected ESG result
↓
revalidation
↓
recalculation if required
The prior ESG result remains immutable historical evidence.
94. Voids and deletions
QuickBooks supports transaction lifecycle operations including deletion and, for some transaction types, voiding.
ACF must distinguish:
source transaction originally existed
from:
source transaction is no longer active/current
The former must not disappear from audit lineage.
95. SyncToken and audit challenge
Suppose an auditor asks:
Why did this calculation change?
ZAYAZ should be able to answer:
QuickBooks Bill ID 245
SyncToken 2
↓
was previously
SyncToken 1
↓
source amount or classification changed
↓
calculation revalidated
This is more useful than merely saying:
QuickBooks was updated.
96. ZARA behavior
ZARA should be able to explain:
- which realm supplied the value;
- which QuickBooks entity was used;
- which source revision was processed;
- whether the transaction was a Bill, Purchase or Journal Entry;
- which vendor was involved;
- which item was involved;
- whether quantity qualified as physical activity;
- whether an attachment supplied additional evidence;
- whether the calculation came from DQ1, DQ2, DQ3, DQ4 or DQ5;
- why an estimate was upgraded; and
- why a calculation changed.
97. ZARA source distinction
ZARA must distinguish:
QuickBooks-native source value
QuickBooks source revision metadata
ZAYAZ canonical mapping
ZAYAZ classification
ZAYAZ activity resolution
ZAYAZ calculation
external enrichment
These are not interchangeable evidence classes.
98. FOGE behavior
FOGE can use validated QuickBooks data for reporting prepopulation.
For example:
Bill
↓
Vendor + item
↓
classification
↓
approved method
↓
MICE
↓
reporting requirement
↓
FOGE
If the reporting requirement needs evidence that QuickBooks does not provide, FOGE requests additional information.
99. COSE behavior
COSE compares QuickBooks evidence with required calculation evidence.
Example:
Requirement:
diesel litres consumed
QuickBooks:
EUR 5,000 fuel purchase
Result:
physical activity missing
If an attached invoice provides:
1,420 litres
and the evidence is validated, the quality state may be upgraded.
100. DaVE behavior
DaVE monitors:
- OAuth health;
- token rotation;
- absolute token expiry;
- customer reconnection;
- API throttling;
- CloudEvent signatures;
- unknown event types;
- CDC continuity;
- CDC lookback risk;
- source revision changes;
- plan/feature changes;
- entity mapping;
- vendor resolution;
- item semantics;
- dimension semantics;
- attachment relationships; and
- reconciliation.
101. TrustGate behavior
TrustGate preserves:
QuickBooks realm
↓
source entity
↓
source ID + revision
↓
CloudEvent / CDC reason
↓
canonical mapping
↓
classification
↓
activity resolution
↓
calculation
↓
reporting
↓
verification
102. MICE behavior
MICE receives governed inputs including:
- realm;
- entity type;
- entity ID;
- source revision;
- vendor;
- item;
- quantity;
- activity unit;
- amount;
- currency;
- class/department context;
- classification;
- method;
- factor;
- factor vintage;
- reporting period; and
- data-quality tier.
The source must be reproducible.
103. API Hub behavior
API Hub owns QuickBooks-specific connectivity.
It manages:
- OAuth;
- refresh-token rotation;
- reconnection;
- realm routing;
- rate budgets;
- Accounting API calls;
- queries;
- pagination;
- batches;
- CloudEvents;
- webhook signature verification;
- CDC;
- authoritative rereads; and
- reconciliation.
Downstream systems should not implement Intuit-specific transport logic.
104. Accounting-partner model
QuickBooks is particularly relevant to accounting-firm distribution.
An accounting partner may help many clients connect:
Accounting firm
│
├── QBO Realm A
├── QBO Realm B
├── QBO Realm C
└── QBO Realm D
│
▼
ACF
│
separate ZAYAZ contexts
Each QuickBooks company remains separately authorized and governed.
105. Realm isolation
The accounting firm is not the source-company boundary.
Each realm maps separately:
Realm A → Organization A → E-C-O A
Realm B → Organization B → E-C-O B
Realm C → Organization C → E-C-O C
Cross-client source leakage must be technically impossible.
106. Continuous sustainability bookkeeping
QuickBooks can support continuous ESG bookkeeping through:
QuickBooks transaction
↓
CloudEvent
↓
authoritative reread
↓
classification
↓
calculation / evidence gap
↓
daily CDC
↓
continuous ESG ledger
This is especially valuable for SMBs that otherwise perform ESG work only annually.
107. Data minimization
The connector should retrieve only what is required for the governed sustainability purpose.
For example:
Vendor
Bill
Item
Amount
Currency
Class
does not justify retrieving unrelated:
customer contact information
employee personal data
all attachments
tax identifiers
unless they are specifically required.
108. Recommended production architecture
INTUIT
│
OAuth 2.0
│
▼
QUICKBOOKS ONLINE
│
┌────────────┼────────────┐
│ │ │
Accounting CloudEvents CDC
API │ │
│ │ │
└────────────┼────────────┘
▼
ZAYAZ API HUB
│
realm capability
profile
│
▼
TRUSTGATE
│
▼
ACF
┌────────────┼ ────────────┐
│ │ │
normalize validate classify
│ │ │
└────────────┼────────────┘
▼
CANONICAL DATA MODEL
│
┌────────────┼────────────┐
▼ ▼ ▼
MICE FOGE ZARA
│
▼
GOVERNED ESG DATA
Periodic reconciliation operates alongside CDC and webhook processing.
109. Quick-start implementation
A controlled pilot should:
- create an Intuit Developer application;
- create or select a QuickBooks sandbox company;
- configure OAuth redirect URIs;
- authorize the accounting scope;
- capture the
realmId; - obtain OAuth tokens;
- register secure token storage;
- retrieve CompanyInfo;
- generate the customer connector profile;
- retrieve Accounts;
- retrieve Vendors;
- retrieve Bills and Purchases;
- retrieve Items;
- inspect Classes and Departments where configured;
- test query pagination;
- test source revision tracking;
- test CDC;
- configure CloudEvents webhooks;
- validate webhook signatures;
- test authoritative entity rereads;
- test Attachable evidence;
- perform initial ESG screening;
- run reconciliation; and
- validate TrustGate lineage.
110. Production implementation
Production should add:
- production Intuit credentials;
- production OAuth redirect;
- customer authorization;
- realm mapping;
- token rotation;
- absolute token-expiry monitoring;
- reconnect URL;
- feature-capability profiling;
- production CloudEvents;
- HMAC signature validation;
- durable event queue;
- daily CDC;
- CDC recovery monitoring;
- API throttling;
- reconciliation;
- source revision monitoring;
- attachment evidence;
- TrustGate registration;
- DaVE monitoring; and
- governed recalculation.
111. Hybrid ESG implementation
The strongest SMB sustainability result may combine:
QuickBooks
│
├── Vendor
├── Bill
├── Item
├── Amount
└── Qty
+
Attachment
+
Supplier portal
+
Meter data
+
Travel / logistics data
+
Approved factor
↓
Governed ESG result
QuickBooks remains the accounting backbone.
ZAYAZ orchestrates evidence quality.
112. Limitations
112.1 QuickBooks Online is not a manufacturing ERP
Detailed physical material flows may not exist.
112.2 API entity availability does not guarantee customer feature availability
Plan and configuration must be discovered.
112.3 OAuth authorization requires lifecycle management
Connections cannot be treated as permanently authorized.
112.4 Refresh tokens have an absolute maximum lifetime
Customer reconnection must be supported.
112.5 Webhooks are not authoritative source state
The source entity must be reread.
112.6 CDC has a finite recovery horizon
Recovery beyond 30 days requires broader reconciliation.
112.7 Query language is intentionally limited
ACF must perform some canonical joining itself.
112.8 Quantity does not automatically equal physical activity
Item and unit semantics must be validated.
112.9 Items are not environmental declarations
Supplier/product evidence remains distinct.
112.10 Attachments do not automatically prove environmental meaning
They are evidence objects requiring interpretation.
112.11 QuickBooks data cannot satisfy every sustainability disclosure
Policies, governance, workforce, due-diligence and narrative requirements require other sources.
113. Connector activation gate
A production QuickBooks connector should not activate until:
Intuit application PASS
Production OAuth PASS
OAuth state validation PASS
realmId PASS
CompanyInfo PASS
ZAYAZ organization mapping PASS
E-C-O Number mapping PASS
Token storage PASS
Token rotation PASS
Reconnect workflow PASS
Customer capability profile PASS
Accounting API profile PASS
Minor-version registration PASS
Canonical mappings PASS
TrustGate registration PASS
Initial synchronization PASS
CDC PASS
Reconciliation PASS
Rate controls PASS
Monitoring PASS
For CloudEvents:
CloudEvents 1.0 consumer PASS
Verifier token PASS
HMAC signature verification PASS
Realm resolution PASS
Durable queue PASS
Idempotency PASS
Authoritative reread PASS
CDC recovery PASS
must also pass.
114. Definition of done
The QuickBooks Online connector is production-ready when ZAYAZ can demonstrate that it can:
- authorize through Intuit OAuth 2.0;
- validate OAuth state;
- receive and retain
realmId; - map the realm to the correct ZAYAZ organization and E-C-O Number;
- distinguish sandbox from production;
- securely store client credentials and tokens;
- refresh access tokens;
- persist the latest refresh token;
- monitor rolling token validity;
- monitor absolute refresh-token lifetime;
- support customer reconnection;
- retrieve CompanyInfo;
- generate the customer connector profile;
- distinguish API entity availability from QuickBooks feature capability;
- record the active API minor version;
- retrieve Accounts;
- retrieve Vendors;
- retrieve Bills;
- retrieve Purchases;
- retrieve PurchaseOrders where available;
- retrieve Items;
- retrieve JournalEntries;
- retrieve Classes where available;
- retrieve Departments where available;
- retrieve Attachables;
- preserve entity IDs;
- preserve
SyncToken; - preserve source modification metadata;
- paginate query results correctly;
- respect QuickBooks query-language limitations;
- operate within provider rate limits;
- batch requests safely where appropriate;
- consume CloudEvents 1.0;
- validate
intuit-signature; - resolve
intuitaccountid; - resolve
intuitentityid; - process events idempotently;
- reread authoritative source entities;
- execute CDC;
- maintain a CDC watermark;
- detect CDC recovery-window risk;
- recover from missed webhooks;
- reconcile source populations;
- detect historical accounting mutations;
- preserve voided/deleted source lineage;
- map source records into the ZAYAZ canonical model;
- normalize currency correctly;
- map supplier identities;
- map item semantics;
- map Classes and Departments;
- distinguish financial values from physical activity;
- reject unresolved quantity semantics;
- promote validated quantities to activity data;
- link Attachables through TrustGate;
- execute ESG screening without inventing missing activity;
- upgrade calculations when higher-quality evidence becomes available;
- preserve previous calculations and provenance;
- support ZARA, FOGE, MICE, COSE, DaVE and TrustGate;
- prevent cross-realm and cross-tenant data leakage; and
- reproduce any material ESG result from QuickBooks source to final output.
115. Source references
This connector specification is based primarily on current Intuit documentation and developer materials covering:
- QuickBooks Online Accounting API;
- OAuth 2.0;
realmId;- OAuth token management;
- refresh-token lifecycle changes;
- reconnect workflows;
- QuickBooks sandbox companies;
- Accounting API v3;
- minor versions;
- query operations;
- pagination;
- batch operations;
- API throttling;
- Change Data Capture;
- webhooks;
- CloudEvents 1.0;
- webhook signature validation;
- Accounts;
- Vendors;
- Bills;
- Purchases;
- Purchase Orders;
- Items;
- Classes;
- Departments;
- Journal Entries;
- Attachables; and
- financial reporting APIs.
The current Intuit API contracts and the connected QuickBooks company's actual feature configuration remain authoritative for implementation.
The ACF customer connector profile must be reviewed or regenerated when material changes affect:
- OAuth authorization;
- refresh-token policy;
- realm authorization;
- company subscription;
- company features;
- country/locale configuration;
- Accounting API minor versions;
- source entities;
- webhook payload contracts;
- webhook entity coverage;
- CDC coverage;
- Items;
- Classes;
- Departments;
- multicurrency;
- tax configuration; or
- canonical mappings.
Runtime Provider Extension
The provider-specific runtime contract for this connector is maintained separately from the common ACF connector frontmatter.
It contains machine-actionable provider semantics that are intentionally not part of the common ACF schema, including authentication lifecycle, provider object revision semantics, change-capture constraints and provider-specific capability rules.
schema_id: zayaz.acf.provider-extension.v1
extension_version: 1.0.0
connector_id: ACF-QUICKBOOKS
provider:
namespace: intuit.quickbooks
name: Intuit Inc.
product: QuickBooks Online
runtime:
source_contract:
primary_api: quickbooks_online_accounting_api
api_generation: v3
minor_version_supported: true
source_identity:
company_partition_field: realmId
eco_resolution_required: true
object_revision:
identity_field: Id
revision_field: SyncToken
modified_at_field: MetaData.LastUpdatedTime
change_capture:
webhook:
supported: true
payload_standard: cloudevents_1_0
authoritative_payload: false
authoritative_api_reread_required: true
cdc:
supported: true
maximum_lookback_days: 30
reconciliation:
required: true
capability_rules:
product_plan_and_feature_configuration_material: true
api_entity_presence_is_not_sufficient: true
source_semantics:
organizational_dimensions:
class:
candidate_id_class: EBU
automatic_resolution_allowed: false
department:
candidate_id_class: EBU
automatic_resolution_allowed: false
quantity:
source_field: Qty
activity_status: candidate
requires_unit_resolution: true
requires_business_semantic_resolution: true
evidence:
native_object: Attachable
supports_source_document_relationship: true
extensions:
oauth_lifecycle:
model: authorization_code
access_token_lifetime_seconds: 3600
refresh_rotation_required: true
refresh_rolling_use_window_days: 100
absolute_maximum_lifetime_years: 5
query_language:
sql_compatible: false
batching:
recommended_maximum_operations_per_batch: 10
governance:
status: active
last_verified: 2026-08-30
review_interval_days: 90
change_control_required: true
source_basis: connector_specification