Connecting Sage Accounting
1. Which Sage this is
accounting.sage.com, this is you. If you run Sage 50 on a desktop, it isn't —
tell us and we'll say where that stands.2. What the connection does
When you raise an invoice in Dispatch Pro, you can push it into Sage instead of retyping it. That's the whole feature.
| What crosses | Direction |
|---|---|
| Invoices you raised here — reference, date, lines, tax, total | Dispatch Pro → Sage |
| The contact needed to hang that invoice on | Dispatch Pro → Sage |
| Anything at all from your books | Never. |
Push only. We do not sync, reconcile, or read your ledger. Nothing moves until you connect and press push on a specific invoice.
3. What you need first
- A Sage Accounting business and an account that can authorize apps for it.
- Company admin on your Dispatch Pro account — the Accounting card is admin-only.
- Your tax rate id and your ledger account id from Sage. Both are required and neither is guessed; see §7.
- About ten minutes to register the app.
4. Registering your Sage app
Sage connections run under an app you register, so the developer relationship, the app name on the consent screen, and the ability to revoke it are all yours.
- Sign in at
developer.sage.comand open the app registry for Sage Accounting. - Create an app and name it something your team will recognise on a consent screen.
- Add this Callback URL exactly:
Sage requireshttps://app.pinnaclegrove.ca/auth/accounting/callbackhttps://and matches the callback exactly against what we send. The Accounting card in Settings shows the same URL for whichever address you're signed in to — copy it from there if it differs. - Save, then reveal the Client ID and Client Secret with the Show control beside each field and copy both.
5. Pasting the credentials
- Settings → Accounting, on the Sage Accounting row.
- Open Connect with your own Sage Accounting app.
- Paste the Client ID and Client secret, then Save credentials.
The secret is encrypted before it is stored and never shown again — the field goes blank and reads stored — type to replace. That's expected. To rotate it later, type the new one over the top; you don't need the old one.
Changing the client ID means connecting as a different application, so any existing connection has to be re-made and Dispatch Pro will say so. Rotating only the secret keeps the connection.
6. Connecting
- Press Connect on the Sage Accounting row.
- Sage asks you to sign in and approve. If you have more than one business, pick carefully — that's the one the invoices land in.
- Allow access. You come back to Settings and the row reads connected.
Sage doesn't name the business as part of the sign-in, so immediately afterwards we ask Sage directly and record it. If no business comes back, the connection is refused rather than saved pointing at nothing.
7. Tax rate and ledger account
Once connected the row grows two required fields. Fill both and press Save codes.
| Field | What to enter |
|---|---|
| Tax code in Sage Accounting | Your Sage tax rate id — the id the API uses, not the display name. |
| Revenue account in Sage Accounting | The ledger account id that haulage revenue posts to. |
8. Pushing an invoice
Raise the invoice as usual (Invoices tab), then push it. The status sits on the invoice:
| Status | Meaning |
|---|---|
| queued | Accepted, waiting its turn. Retries on its own. |
| needs customer | We couldn't be sure which Sage contact this is. See §9. |
| pushed | It's in Sage, with Sage's own id recorded here. |
| failed | Sage refused it. Sage's own reason is shown on the invoice. |
An invoice can only land once. Before creating anything we search Sage for an
invoice carrying that reference and confirm it matches exactly — so a retry after a timeout
cannot mint a duplicate, and INV-7 is never mistaken for INV-70.
9. Matching contacts
The first time you invoice a given customer we search your Sage customers by name. One obvious match is used. Several, or none, and the push stops at needs customer and asks you to pick — or to create the contact — rather than guessing. Your choice is remembered, so it's a once-per-customer question.
10. When it stops working
| What you see | What to do |
|---|---|
| connection expired — reconnect | Sage's permission lapsed — refresh tokens last about 31 days without use, and someone may have revoked us in Sage. Press Connect again. Nothing is lost. |
| not switched on here | Ours to enable, not yours. Ask us where it stands. |
| A push failed mentioning tax or ledger | The tax rate id or ledger account id doesn't match one in Sage. Check both against Sage's own settings (§7). |
| The Sage screen errors on redirect | Callback URL mismatch — see the note in §4. |
| Invoices land in the wrong business | You authorized a different one. Disconnect, reconnect, and pick carefully. |
11. Disconnecting
Disconnect stops further pushes immediately. It does not reach into Sage — invoices already pushed are yours and stay where they are. You can reconnect later.
You can also revoke Dispatch Pro from inside Sage; we'll show the connection as needing a reconnect the next time we try to use it.
Removing your app credentials deletes the stored secret. What we keep either way is the record of when the connection was made, changed, removed, and used — see Terms §15 and the Privacy Policy.