Zoho Books — the books are mirrored, each day once
Store the Zoho organisation and its OAuth refresh token under the vault key; pull Zoho's chart into the mapping; send journals, invoices, customer payments (with the TDS withheld), credit notes and bills as batches; Zoho's answers and ids come back to the batch.
Menu → Ledger → Connectors → Zoho Books. Once: create a self-client on Zoho's API console, grant ZohoBooks.fullaccess.all, and paste the client id, client secret and refresh token here with the organisation id and region. The secrets are kept under the app's vault key and never shown again. Pull the chart reads Zoho's accounts and taxes into the mapping: a name that matches ours takes Zoho's id; the rest you map by hand on the Mapping tab. A batch is refused until every account it touches has a Zoho id. Send a batch: journals become Zoho journals with our journal number as the reference; a documents batch becomes invoices (customer, GSTIN, place of supply, SAC, tax %), customer payments with *tax amount withheld* for the TDS, credit notes and bills. Customers and vendors are found by name or created. Zoho's ids come back onto the batch; a re-send updates by our reference rather than duplicating. Zoho's rate limit is respected — a 429 waits and tries again.