01 · Overview
At a glance
It's written for foundations and larger grantees running Fluxx, Foundant, SmartSimple or Submittable next to Sage Intacct, QuickBooks, NetSuite, Financial Edge NXT or Zoho Books.
- One owner per fact. The grants system owns award terms, conditions and schedules. The GL owns entries, balances and net asset classes.
- Award, commitment and payment are three different numbers. A conditional tranche isn't a liability or revenue until the condition is met.
- Map to dimensions, not new GL accounts. Tag grant, fund or restriction, programme and function.
- Integrate events, not tables. Each event has a GL effect you can write down.
- Reconcile monthly, three ways: grants system, GL, bank.
02 · Who owns what
Who owns what: the source-of-truth boundary
Most broken integrations we're asked to fix share one cause: both systems were allowed to own the same fact. Sound familiar? The grants team edits a payment date, finance edits the bill, and nobody knows which is right. Draw the line once, in writing, before anyone builds a connector.
| Data | System of record | What the other system receives |
|---|---|---|
| Grantee or funder organisation, bank details, due diligence | Grants system (bank details verified in AP) | GL gets a vendor or customer record keyed to the grants system ID |
| Award amount, term, conditions, payment schedule | Grants system | GL gets the commitment only when it's unconditional |
| Approved grant budget by line | Grants system | GL budget module gets a read-only copy by dimension |
| Journal entries, AP bills, payments, receipts | GL | Grants system gets status, date and amount paid back |
| Net asset class / restriction balance | GL | Grants system shows remaining restricted balance, read-only |
| Programme indicators and narrative reports | Programme MIS or grants system | GL gets nothing. Reports join the two by grant ID |
That last row matters. When funders ask for spend and outcomes in one report, join them at reporting time; don't copy outcome data into the ledger. If programme data is still in spreadsheets, our guide to what a nonprofit MIS should hold covers that side.
03 · Awards, commitments and payments are three diffe
Awards, commitments and payments are three different numbers
A $300,000 three-year grant can show as $300,000 awarded, $100,000 committed and $50,000 paid on the same day. All three are correct. They answer different questions, and each one belongs in a different place.
Funders. Under ASU 2018-08, a grant is conditional when the agreement has both "a barrier that must be overcome" and a right of return or release. The unconditional portion is generally expensed, with a grants payable, when approved and communicated. Conditional tranches are disclosed, not booked, until the barrier is met.
Grantees. The same test applies. An unconditional grant is revenue, held in net assets with donor restrictions if it's restricted by purpose or time. Cash received ahead of a condition is usually a refundable advance, a liability.
So the grants system needs a field the connector reads, not a note in a PDF: each tranche marked conditional or unconditional, and an event fired when someone with authority marks the condition met.
Multi-year grants
Multi-year awards break integrations two ways. Amendments change the schedule in the grants system but not the PO or bill already in the GL. And multi-year unconditional promises may need to be recorded at present value. Agree the policy with your auditor, then make the connector carry it.
04 · Restricted funds, budget vs actual and reconcili
Restricted funds, budget vs actual and reconciliation
Restricted funds. Releasing net assets with donor restrictions, when a purpose or time restriction is met, is a GL event. If the grants system shows spend against a restricted grant, it should read that from the GL, not compute its own.
Budget vs actual. The approved budget is a grants-system fact; actuals are GL facts. Push the approved budget into the GL's budget module by the same grant and line dimensions, and run budget-vs-actual there. Federal grantees will recognise this. 2 CFR 200.302(b)(5) requires "comparison of expenditures with budget amounts for each Federal award", and (b)(3) requires records that identify "the amount, source, and expenditure" of federal funds.
Reconciliation. Monthly, per grant, match what the grants system says was paid, what the GL says was paid, and what the bank shows. Differences go to an exceptions list with an owner. At one large fundraising nonprofit we worked with, staff re-uploaded donation batches into the donor system, then reconciled the bank against those uploads by hand. The data wasn't the problem. Nobody owned the match.
05 · Integration architecture
Integration architecture
Events, not tables
Don't sync whole tables on a timer. Sync the six events that change money:
| Event (in grants system) | GL effect, funder | GL effect, grantee |
|---|---|---|
| Award approved, unconditional | Grant expense / grants payable | Receivable / revenue (with or without restriction) |
| Condition met | Book the newly unconditional tranche | Recognise revenue; clear any refundable advance |
| Payment scheduled | Create AP bill or payment request | (n/a) |
| Payment made / received | Clear payable (from GL back to grants) | Cash / clear receivable |
| Amendment | Adjust payable or schedule; log reason | Adjust receivable / revenue; log reason |
| Closeout | Release or cancel remaining balance | Release restriction; refund if required |
The Armanino Fluxx–Sage Intacct pack follows this shape: grantees become Intacct vendors, approved grants become purchase orders, and payment details flow back.
IDs, mapping, frequency and errors
- IDs. Every record that crosses carries the grants system's ID in a GL field, backed by a cross-reference table. Never match on name.
- Mapping. Map to GL dimensions (grant, fund/restriction, programme, function, location). QuickBooks Online uses classes and locations, Sage Intacct and NetSuite use dimensions or segments, and Zoho Books uses reporting tags (up to 10, 500 options each).
- Frequency. Payments and approvals daily or faster; budgets on change; reconciliation monthly. Fluxx's BILL integration syncs every five minutes, but most foundations don't need faster than daily.
- Errors. Failed events go to a log with payload, retry rule and named owner. Silent failure is how an approved grant never gets paid.
06 · Typical stacks, and how we build it on Zoho
Typical stacks, and how we build it on Zoho
| Grants system | Ledger | What's documented | Watch for |
|---|---|---|---|
| Fluxx | Sage Intacct, NetSuite, QuickBooks, BILL | Vendor, PO/bill, payment status | Amendments after a PO exists |
| Foundant GLM | QuickBooks Online | Installments out, Paid status back | Later changes: "the systems do not sync automatically" |
| SmartSimple / Submittable | Various | API or export | Who owns the payment schedule |
| Zoho Creator | Zoho Books | Native, Deluge, Zoho Flow | Reporting-tag discipline |
When we build on Zoho, the grants workflow (applications, approvals, tranches, conditions, reporting calendar) runs as a Zoho Creator grants app and the ledger stays in Zoho Books. FundZola, our fund accounting product, tags expenses to grant, programme head and cost centre, checks overhead against each funder's ceiling, and builds utilisation reports from the same records. A person approves before anything posts.
When isn't Zoho the answer? If you're a US foundation on Sage Intacct with dimensions working, keep Intacct and fix the connector. If you're a federal-heavy grantee with indirect cost rates and Single Audit exposure, use a ledger your auditor already knows. Zoho fits when the grants side must bend to how your programmes run, or an enterprise stack doesn't match your size. If you fund individuals, see our scholarship management guide for disbursement-level controls.
07 · Failure modes we see most often
Failure modes we see most often
- Two owners for one fact. Payment dates edited in both systems.
- One GL account per grant. Hundreds of accounts, and no functional expense statement.
- Conditional grants booked as payables. The board sees liabilities that don't exist yet.
- Name-matching. "Asha Trust" and "ASHA Trust (Bengaluru)" become two vendors.
- Amendments outside the connector. Extended in the grants system, never in the GL.
- CRM treated as the grants system. A donor CRM shows pipeline, not obligations; see our nonprofit CRM comparison.
- No audit trail on the connector. Every write needs a user, timestamp and before/after value.
08 · Jurisdiction notes
Jurisdiction notes
| Region | What changes for the integration |
|---|---|
| US | ASC 958-605 as amended by ASU 2018-08; net assets with/without donor restrictions. 2024 Uniform Guidance revisions apply to federal awards from 1 October 2024 (Single Audit threshold $1,000,000; equipment $10,000; de minimis indirect 15%). Check eCFR for current text. |
| Canada | ASNPO Section 4410: deferral or restricted fund method, applied consistently, so restricted grants sit as deferred revenue or in a restricted fund. Grants to non-qualified donees must meet CRA's grantee organization requirements, including separately tracked funds. |
| UK | Charities SORP 2026 applies to periods beginning on or after 1 January 2026, with new reporting tiers. Restricted and unrestricted funds stay separate. |
| India | FCRA money arrives only in the designated FCRA account at SBI New Delhi Main Branch, never mixed with local funds; admin spend is capped at 20%. CSR: unspent ongoing-project funds move to an Unspent CSR Account within 30 days of year end. |
09 · Integration readiness scorecard
Integration readiness scorecard
10 · Practical checklist
Practical checklist
- Write the ownership table.
- Give every grant an ID that exists in both systems.
- Mark each tranche conditional or unconditional.
- Agree recognition policy with your auditor.
- Put grant, fund, programme and function in dimensions.
- Load approved budgets into the GL by those dimensions.
- Write down the journal each event creates.
- Match organisations by ID, never by name.
- Set sync frequency and an error owner per event.
- Define the amendment workflow.
- Reconcile three ways, per grant, monthly.
- Test closeout and refunds before go-live.
11 · Common questions
Frequently asked questions
What is grant-to-accounting integration?
The connection between a grants system (award terms, conditions, schedules) and a general ledger (entries, payments, restricted balances), kept in step by a shared grant ID and a defined set of events.
Should grant budgets live in the grants system or the accounting system?
The approved budget comes from the agreement, so the grants system owns it. Push a read-only copy into the GL budget by the same dimensions and run budget-vs-actual from the GL.
Do I need a separate GL account for each grant?
Usually not. Use a few natural accounts and tag grant, fund, programme and function as dimensions, classes or reporting tags.
How does ASU 2018-08 affect integration?
It decides when a tranche hits the books. A conditional tranche stays off until the condition is met, so the grants system needs a structured "condition met" event.
How often should the grants system and GL sync?
Payments and approvals daily or faster, budgets on change, reconciliation monthly. Faster sync doesn't fix a bad mapping.
Can Zoho Books handle restricted grant funds?
Yes, through its chart of accounts and reporting tags, with FundZola adding grant-wise tagging and utilisation reports. For federal awards with indirect cost rates, confirm the setup with your auditor.
