Activating and using native sync with Zoho
Goal
Sync invoices and credit notes generated by POP with Zoho Invoice or Zoho Books, without having to manage a webhook or an n8n workflow yourself.
Prerequisites
- An active Zoho Invoice or Zoho Books account.
- On WordPress: no minimum plan, syncing is available on every plan (including Free), using credits. On Shopify, the Basic plan or higher is required instead.
Activation (two steps)
- POP account — go to
popapi.io > My Account > API Integrationsand complete the OAuth authorization towards Zoho. From here Zoho is one of the available sending channels: activating it as the primary channel automatically deactivates any other channel already active (SdI via POP, PEPPOL, KSeF, Fatture in Cloud, Aruba, SdI via PEC — they’re all mutually exclusive). - Plugin/app side — authorizing the POP account alone isn’t enough: it also needs to be enabled locally.
WordPress
On the Integrations tab, find the “Zoho (via POP)” card and click Activate. If the POP account hasn’t completed authorization yet, the card shows “Activate and connect Zoho in your POP account first.” — go back to step 1.
Shopify
Go to Settings > Invoice Channel and select the “Zoho via POP” option among the available channels (radio button selector). If the option is disabled with an “(unavailable)” badge, a banner explains why (e.g. the POP account isn’t ready, or the active connector on the POP side isn’t Zoho).
Manual and automatic sending
WordPress:
- Manual — “Create Zoho Invoice” / “Create Zoho Credit Note” buttons on the order; after sending they become “Zoho invoice created” / “Zoho credit note created”.
- Automatic — uses the same automatic-sending setting already available for other channels (an order status that triggers the send, with an optional delay in hours).
Shopify:
- Manual — “Send invoice to Zoho” / “Send credit note to Zoho” buttons on the Orders page.
- Status shown in the table: “Zoho: sent” or “Zoho: pending”.
Credit notes need the invoice synced to Zoho first
A credit note cannot be sent to Zoho if the linked order doesn’t already have a successfully synced Zoho invoice:
- WordPress — the button stays blocked with: “Zoho credit notes require a Zoho parent invoice reference on the original order. Create the Zoho invoice first.”
- Shopify — same block, message: “Send the parent invoice through Zoho before generating or sending the credit note.”
Fix: send the original invoice to Zoho first, then the credit note.
Sandbox
- WordPress — a sandbox send doesn’t create anything in Zoho: it returns a dry-run confirmation, “Zoho sandbox dry run succeeded. No document was created in Zoho.” — this is expected behavior, not an error.
- Shopify — a queued auto-send is blocked with: “Zoho auto-send is disabled while POP sandbox mode is active. Switch the environment back to live to process queued invoices.”
Verify
After activation, check in the plugin/app that the Zoho status shows connected and that the linked product (Zoho Invoice or Zoho Books) is correctly indicated, not “not available”.
Common errors
- The product shows “not available” — the OAuth authorization wasn’t completed or has expired: redo step 1 from the account panel.
- I activated Zoho and another channel deactivated itself — expected behavior: the main channels are mutually exclusive.
- The credit-note send button stays blocked — see the section above: the original order is missing its linked Zoho invoice.
- “The previous Zoho send may have timed out…” (WordPress) — the previous send may not have gotten a response in time: if the document was actually created in Zoho, confirm and save the returned ID manually; otherwise cancel and retry.
- Sync fails due to a missing contact — check the auto-create-contacts option; if disabled, the contact must already exist in Zoho before syncing.
Related configuration
To choose between this channel and the others available, see choosing-an-invoicing-integration. For endpoint details, see api/zoho.