ml-connector
Zoho BooksWooCommerce

Zoho Books and WooCommerce integration

WooCommerce runs your online store. Zoho Books runs your accounting. Connecting them keeps your accounting records synchronized with every order without re-keying invoices by hand. New orders placed on WooCommerce flow into Zoho Books as customer invoices, and customer information from WooCommerce updates your Zoho Books contact list.

How Zoho Books works

Zoho Books is a cloud-based accounting platform supporting invoicing, purchase orders, bills, vendor payments, customer payments, chart of accounts, and multi-currency transactions. It uses REST APIs over HTTPS with region-specific base URLs (US, EU, India, Australia, Japan, Canada, China, Saudi Arabia). Authentication requires OAuth2 with a user-delegated refresh token, which does not expire but has rate limits of 100 requests per minute and daily limits varying by plan. Access tokens expire after 1 hour and must be refreshed proactively. Every API call requires an organization ID query parameter. Zoho Books supports outgoing webhooks for invoices, bills, purchase orders, contacts, and payments with HMAC signature verification.

How WooCommerce works

WooCommerce is an open-source e-commerce plugin installed directly on WordPress, exposing orders, refunds, customers, products, coupons, and reports through REST APIs. Each deployment is self-hosted at a unique domain with no shared base URL. Authentication uses API Key pairs (Consumer Key and Consumer Secret) with HTTP Basic Auth or OAuth 1.0a. WooCommerce supports webhooks for order, customer, product, and coupon events with HMAC-SHA256 signatures. Webhooks are disabled after 5 consecutive failed deliveries and must be manually re-enabled.

What moves between them

Orders and customers flow from WooCommerce into Zoho Books. Each WooCommerce order is written to Zoho Books as a customer invoice with line items mapped to Zoho Books items. Customer records from WooCommerce create or update contacts in Zoho Books. The flow is event-driven; ml-connector subscribes to WooCommerce order.created, order.updated, and customer.created events and pushes each event into Zoho Books synchronously. Reference data such as product mappings is resolved at integration setup time.

How ml-connector handles it

ml-connector stores both API credential sets encrypted. For Zoho Books, it routes all calls to the regional base URL determined by the OAuth2 token response, resolves the organization ID after authentication, and refreshes the access token proactively before expiry. For WooCommerce, it extracts the site domain from the credential configuration and makes all calls to the REST v3 endpoint. ml-connector subscribes to WooCommerce webhooks for order and customer events, receives each webhook delivery, validates the HMAC-SHA256 signature, and transforms the order into a Zoho Books invoice structure. Line items are mapped to Zoho Books item records by SKU or product name; missing items are created on first encounter. Customer emails are matched to Zoho Books contacts by email address, creating new contacts where needed. Zoho's organization ID requirement is cached after first resolution to reduce token usage. WooCommerce webhooks that fail to deliver are handled with exponential backoff retries, and each transformation is logged with a full audit trail for replay if a downstream call fails.

A real-world example

A small e-commerce business runs WooCommerce on a WordPress site and uses Zoho Books for accounting and tax reporting. Before the integration, the owner manually exported orders from WooCommerce once per day, created invoices in Zoho Books by hand, and reconciled customer records weekly. The process took 2 to 3 hours per week and created frequent data-entry errors that showed up at tax time. With WooCommerce and Zoho Books connected, each order placed on the website automatically appears in Zoho Books as an invoice within seconds, customer information is kept in sync, and the owner has accurate accounting records immediately ready for reports and compliance.

What you can do

  • Push WooCommerce orders into Zoho Books as customer invoices with line items and amounts.
  • Sync WooCommerce customer records into Zoho Books contacts, creating new contacts or updating existing ones by email.
  • Map WooCommerce products to Zoho Books items by SKU or product name, creating missing items on first encounter.
  • Handle regional routing for Zoho Books and refresh OAuth2 access tokens automatically before expiry.
  • Receive WooCommerce order and customer events via webhooks with signature validation and full audit trail.

Questions

Which direction does data move between WooCommerce and Zoho Books?
Orders and customers move from WooCommerce into Zoho Books. Each WooCommerce order becomes a Zoho Books customer invoice, and WooCommerce customer records create or update Zoho Books contacts. Reference data such as items and product mappings are configured at setup time. Zoho Books accounting transactions do not flow back to WooCommerce.
How does ml-connector handle Zoho Books' regional base URLs and organization ID requirement?
The OAuth2 token response returns the api_domain field, which tells ml-connector which region the customer's Zoho Books account lives in. ml-connector routes all subsequent API calls to the correct regional base URL. The organization ID is resolved once after authentication and cached to reduce token usage, since every API call requires it as a query parameter.
What happens if a WooCommerce webhook delivery fails or a product does not have a matching Zoho Books item?
WooCommerce webhooks that fail to deliver are retried with exponential backoff and logged with a full audit trail. If a product does not exist in Zoho Books, ml-connector creates it on first encounter using the WooCommerce product name and SKU. All transformations and failures are logged so they can be replayed if needed.

Related integrations

Connect Zoho Books and WooCommerce

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started