Skip to main content

Connectors

A connector links one organization to one accounting system, so invoices reach the Peppol network without anyone re-keying them. An organization can run several โ€” one row per organization and connector type.

Most customers set a connector up in the portal rather than through the API. The endpoints below exist for platforms that onboard customers programmatically, and are documented in full under API Reference โ†’ Connectors.

Two kinds of connectorโ€‹

The distinction decides who initiates the traffic, and it is the first thing to get right when you plan an integration.

Pull connectorsโ€‹

GoRoute holds credentials for your accounting system and polls it. You give us access once; new invoices are picked up, converted and sent without further action.

Systemconnector_type
Odooodoo
SAP S/4HANAsap
Zoho Bookszoho

Pull connectors are the ones that have a connect/disconnect lifecycle, because there are credentials to hold.

Push connectorsโ€‹

Your system authenticates to GoRoute with an API key and pushes documents to us. There is nothing for us to poll and no credentials of yours for us to store.

Accepted values: xero, quickbooks, zuora, oracle_ebs, tally, api, custom.

note

Calling /connect on a push connector returns 400 โ€” "it authenticates to GoRoute with an API key rather than being polled. Nothing to connect." That is the API telling you the integration runs the other way round, not an error in your request.

Lifecycle of a pull connectorโ€‹

POST /api/v1/connectors                      register the connector type
POST /api/v1/connectors/{id}/connect hand over credentials
POST /api/v1/connectors/{id}/test confirm we can reach it
POST /api/v1/connectors/{id}/sync pull now, instead of waiting
POST /api/v1/connectors/{id}/disconnect forget the credentials
DELETE /api/v1/connectors/{id} remove it entirely

GET /api/v1/connectors lists what the organization has configured and the status of each.

Odooโ€‹

Odoo connects over XML-RPC. You supply the address the customer opens to use Odoo, the database, a username and an Odoo API key (scope RPC).

POST /api/v1/connectors/discover probes a server before you commit credentials โ€” use it to confirm the address is an Odoo instance and to read back the database name.

On a multi-company database, set company_id to the company you are sending for. Both the poller and inbound delivery are scoped to it; leave it unset on single-company databases.

Zoho Booksโ€‹

Zoho connects over OAuth. The portal runs a one-click flow; if you are integrating directly, POST /api/v1/connectors/zoho/oauth/start begins it and the callback parks a refresh token you then consume with use_pending: true.

Supply the data centre your Zoho account lives in โ€” com, eu, in, au, jp or sa โ€” and the organization_id of the Zoho Books organization to send for.

Zoho also supports a webhook, so an invoice can leave Zoho and reach the network without waiting for the next poll. GET /api/v1/connectors/{id}/zoho/webhook-url returns the URL to register in Zoho.

SAP S/4HANAโ€‹

SAP connects over OData. It takes config and credentials objects rather than flat fields, because it carries a party mapping that the others have no equivalent for.

POST /api/v1/connectors/{id}/documents/{doc_id}/send sends one specific document.

What comes backโ€‹

A connector is not one-way. Once a document has been sent and the network has responded, the outcome is written back where your accountants already work โ€” so the accounting system, not just the GoRoute portal, shows what happened to each invoice.

Next Stepsโ€‹