Kestrio.by TDCCommerceDocs

TDC Commerce Accounting Integration

Post approved invoices, credit notes, payments, and expenses from Kestrio to your TDC Commerce accounting books.

TDC Commerce Accounting Integration

The TDC Commerce Accounting integration connects Kestrio to your TDC Commerce accounting (ERP) instance. Kestrio is where service work is delivered and billed. The ERP holds your books. Once connected, approved invoices, credit notes, payments, and expense reports post to the ERP automatically, and payments recorded in the ERP come back to Kestrio.

This is different from the TDC Commerce support-ticket integration. See Integrations for that one.

Integrations are available on Pro plans and above. Only users with the TDC Commerce Accounting: Manage permission (Owners and Admins by default) can connect, configure, or disconnect it.

Open Settings > Integrations, then choose the TDCCommerce Accounting tile under Finance, or go to /settings/integrations/tdc-commerce-accounting.

Once connected, the page shows these sections from top to bottom:

SectionUse it for
ConnectionConnection status, Re-authorize, Run health check, Disconnect.
Sync switchesTurn invoice, expense, write-off, credit note, and payment sync on or off.
Legal entityChoose which ERP legal entity receives your documents.
HealthFour checks that confirm the connection is ready.
Needs attentionDocuments that are blocked, failed, or dead, with retry actions.
Invoice, Expense, Credit note, and Payment synchronizationRecent sync events for each document type.
Accounting mappingsMap Kestrio values to ERP accounts and tax rates.
CustomersLink Kestrio customers to ERP customers.

What Syncs

DataDirectionNotes
InvoicesKestrio to ERPPosted when approved or later. Voids and changes follow.
Invoice write-offsKestrio to ERPOptional. Off by default.
Credit notesKestrio to ERPPosted when issued, with applications and voids.
Payments recorded in KestrioKestrio to ERPPosted against the ERP invoice.
Payments recorded in the ERPERP to KestrioImported onto the Kestrio invoice.
Credit applications made in the ERPERP to KestrioImported onto the Kestrio credit note.
Expense reportsKestrio to ERPApproved reports post as ERP expenses.
CustomersLink onlyKestrio links to ERP customers. It can also create a missing one.
Items, products, vendorsNot syncedRevenue accounts are mapped by line type. Vendors are chosen per expense report.

Draft and In review invoices never sync.

Before You Start

Make sure these are in place:

  • A dedicated ERP integration user. You approve access as this user, and Kestrio acts with that user's ERP permissions.
  • Matching base currency. Your Kestrio base currency must equal the base currency of the ERP legal entity. If they differ, sync cannot be turned on.
  • An open ERP accounting period covering the dates of the documents you will post.
  • ERP accounts to map to. Revenue, bank or deposit, expense, tax, and write-off accounts are chosen later from the ERP.
  • Server setup by your Kestrio administrator. The Kestrio deployment must be registered with the ERP for sign-in, and your ERP address must be on its approved list. Contact support if connecting fails with an "ERP address" error.

Connect

  1. Open the TDC Commerce Accounting page.
  2. Select Connect ERP.
  3. Sign in on the TDC Commerce platform as the dedicated integration user and approve access.
  4. You return to Kestrio with "ERP connected. Choose a legal entity to finish setup."

Complete the connection in the same browser you started it in, within 10 minutes. If it fails, the page shows one of these:

MessageWhat to do
Access was deniedStart again and approve access.
The connection link is invalid or expiredStart again.
State mismatchFinish in the same browser you started in.
Token exchange failedStart again. If it repeats, contact support.
ERP address unavailableThe ERP address is not approved or could not be saved. Contact support.

Each ERP can be connected to only one Kestrio organization at a time.

If you re-authorize against a different ERP deployment, Kestrio clears the legal entity, all sync switches, every mapping, and all sync history for the connection. Set it up again from the start.

Set Up

Complete these in order.

Pick the ERP legal entity. The list shows each active entity with its base currency, for example "Acme Ltd (USD)". If the currency does not match your Kestrio base currency, a red message appears and the sync switches stay disabled.

2. Run the Health Check

Select Run health check. It runs automatically after you connect and after you pick a legal entity.

CheckPasses when
ERP connectionKestrio can sign in to the ERP. It shows who it authenticated as.
Legal entityThe selected entity exists and is active.
ScopeThe ERP granted write access. Posting needs it.
Base currencyThe entity's base currency equals Kestrio's.

3. Map Accounts and Tax

Under Accounting mappings, choose an ERP target for each Kestrio value. The badge shows "N of M mapped".

MappingOne for eachUsed by
Revenue accountsInvoice line type: time, expense, milestone, fixed fee, retainer, manual, subscription fee, support overageInvoices and credit notes
Payment deposit accountsPayment method: bank transfer, credit card, cheque, otherPayments
Expense accountsExpense category, plus "Uncategorized expenses"Expense reports
Tax ratesActive Kestrio tax codeInvoice lines with a tax code
Write-off accountA single accountWrite-offs
Company cardA single accountNot used yet
  • Only suitable, active ERP accounts are offered. Revenue needs income accounts, deposits need bank or credit-card accounts, and expenses need expense accounts.
  • A Kestrio tax code can only map to an ERP tax rate with the same percentage. If none match, the page shows "No active ERP tax rate matches X%".
  • You can change or remove a mapping at any time. A mapping whose ERP account becomes inactive stops counting as mapped.
  • Only the first 500 ERP accounts and 500 tax rates are listed.

A document is blocked only on the specific mapping it needs, so you can map gradually. Map every line type and payment method you use before turning sync on.

Every customer you invoice must be linked to an ERP customer. Under Customers:

  1. Select Match records. Kestrio links customers whose name matches exactly one ERP customer, ignoring case and extra spaces. If no name matches, it tries an exact billing email.
  2. Review rows marked "Multiple exact matches" or "No exact match".
  3. For each, search the ERP (3 to 100 characters) and select Save link, or choose Create customer to create a new ERP customer. Creating needs an ERP customer form and a new customer status.

An ERP customer can be linked to only one Kestrio customer. Removing a link is allowed. Kestrio never updates linked ERP customers afterwards.

5. Turn On Sync

Turn on the switches you want. Each can be paused again at any time.

SwitchNotes
Invoice syncRequired for credit note, payment, and write-off sync. Turning it off turns those off.
Expense syncIndependent of invoice sync.
Write-off syncOff by default because it creates ledger entries. Needs a mapped write-off account. Confirm with finance first.
Credit note syncNeeds invoice sync. Credits post as gross amounts.
Payment syncNeeds invoice sync.

A switch cannot be turned on until the connection is active, a legal entity is selected, write access was granted, and the base currencies match.

Start date. The first time you turn a switch on, Kestrio records today as its start date. Documents dated before it are not posted. Turning a switch off and on again keeps the original date, so any documents created since then will post. Only a different-ERP reconnect clears it.

How Each Document Syncs

Invoices

An invoice posts when it moves into Approved, Sent, Partially paid, Paid, Written off, or Overdue.

Kestrio sends one ERP line per invoice line, with amounts converted to the base currency using the invoice's saved exchange rate. The reference in the ERP is the Kestrio invoice number. After posting, Kestrio reads the document back and checks the total matches.

An invoice waits as Blocked until it has:

  • a linked customer;
  • a bill-to address that includes a region and phone code;
  • at least one line item and a valid issue date;
  • a mapped revenue account for every line type;
  • a mapped tax rate for every tax code used;
  • saved base-currency totals.

Later edits to an eligible invoice update the ERP document. Voiding a Kestrio invoice voids it in the ERP. The ERP also refuses to void an invoice that still has payments or applications.

If the ERP's own approval workflow leaves a posted invoice unapproved, Kestrio raises a conflict.

Write-offs

With write-off sync on, a written-off invoice posts a credit to your write-off account and applies it to the ERP invoice. The invoice must already be synced.

Payments

A payment recorded in Kestrio posts to the matching ERP invoice once the invoice has synced.

  • The deposit account comes from your payment method mapping.
  • Cheque payments need a cheque number in the reference.
  • If a payment is larger than the ERP's open balance, Kestrio posts only the open balance and adds a note. Record the excess in the ERP as a prepayment or refund.
  • A payment dated before the start date is not posted.

Payments recorded in the ERP are imported onto the Kestrio invoice, which updates its paid and due amounts and status. Kestrio finds them when it checks an invoice, which follows a change notification from the ERP. Imported payments use the ERP payment reference. If the ERP payment is later changed or voided, the imported Kestrio payment is updated or removed to match.

Credit Notes

Credit notes post when Issued, Applied, or Void. Draft, pending approval, and approved credit notes do not post.

  • A credit posts as a standalone ERP credit. Applications to invoices become ERP applications, and removing one in Kestrio unapplies it in the ERP.
  • Voiding a credit unapplies its applications, then voids it in the ERP.
  • Credits post as gross amounts, with no tax reversal.
  • Applications made in the ERP against credits that Kestrio posted are imported into Kestrio.

Expense Reports

An expense report posts when approved, and again when changed afterwards.

  • Choose an ERP vendor on the report (New Expense Report, or the report detail while it is Draft or Returned). The field appears only when ERP sync is available. A report with no vendor is blocked until one is picked, and the vendor must belong to the connected legal entity.
  • Entries paid by personal funds, cash, or other methods post. Company card entries are not posted, and the report keeps a note saying so. Rejected entries are left out.
  • Each entry's expense account comes from its category mapping. Entries without a category use "Uncategorized expenses".

Monitor and Fix

Needs Attention

This list shows up to 200 documents that are Blocked, Failed, or Dead.

StatusMeaningWhat happens next
PendingWaiting to post.Posts automatically.
In progressPosting now.
SucceededPosted.
BlockedSomething is missing, such as a mapping or a customer link.Fix it. Kestrio retries blocked items automatically about every 15 minutes.
FailedThe ERP rejected it or a total did not match.Fix the cause, then Retry.
DeadRetries ran out.Fix the cause, then Retry, or Ignore.

Each row shows the document, why it is blocked, and the latest message. Common reasons:

LabelFix
Customer not linkedLink the customer.
Invoice not in the ERP yetThe invoice must post first.
ERP vendor neededPick a vendor on the expense report.
Account not mappedAdd the missing mapping.
Connection or ERP write accessRe-authorize and run the health check.
Unresolved createA response was lost. See below.

Retry all blocked retries every blocked item. Retry is unavailable when the connection is inactive or that module is paused.

Transient errors such as timeouts are retried automatically up to eight times over about an hour before a document goes Dead. Accounting setup problems, such as a closed accounting period or a missing ERP account, are shown as Blocked, not Failed. Fix them in the ERP and Kestrio posts the document on its next sweep.

Unresolved Creates

If Kestrio cannot tell whether a document reached the ERP, it first searches by reference. If still unsure, it blocks to avoid a duplicate and asks you to choose:

  • Link ERP invoice or Link ERP credit: paste the ERP document ID. Kestrio checks the reference matches.
  • Not in ERP: Kestrio posts a new document.

Changes Made in the ERP

Kestrio watches posted invoices, credit notes, and expense reports and records a finding when the ERP no longer matches:

FindingMeaning
Voided in the ERPThe document is voided or deleted in the ERP but active in Kestrio.
Total changedThe ERP total differs from Kestrio's by more than 0.01.
Payment added or removed in the ERPA payment was recorded, voided, or removed outside Kestrio.
Credit application added or removed in the ERPApplications differ between the systems.
Balance mismatchFound by the nightly balance check.

The Needs attention card shows a count as "Changes in the ERP".

Alerts

Users with the Manage permission receive an in-app notification when:

  • the connection needs re-authorizing;
  • more than five documents went Dead in the last hour;
  • outbound work has been waiting for more than 30 minutes;
  • a balance mismatch is open.

Each alert is sent once, then again after 24 hours if still true. Alerts are not sent by email or Slack.

Common Workflows

Connect and Post the First Invoice

  1. Connect and choose the legal entity.
  2. Run the health check and fix any failures.
  3. Map revenue accounts, deposit accounts, and tax rates.
  4. Link customers.
  5. Turn on Invoice sync.
  6. Approve a test invoice and watch Invoice synchronization.
  7. Check the document in the ERP, including the total.
  8. Turn on payment, credit note, and expense sync.

Reconnect After the Connection Expires

If the page says the ERP rejected Kestrio's credentials, select Re-authorize ERP and approve again. Mappings, links, and switches are kept when you reconnect to the same ERP.

Disconnect

Select Disconnect. Kestrio deletes its saved tokens and turns off every sync switch. There is no confirmation prompt.

Kestrio does not revoke access inside the ERP. Remove it there if access should end. Mappings, history, and start dates are kept.

Good to Know

  • One legal entity. Changing the legal entity on a live connection keeps your mappings and customer links. Review them for the new entity.
  • Base currency only. The ledger receives base-currency amounts. Foreign-currency documents convert at the saved exchange rate. Realized exchange gains and losses are not represented.
  • Not synced: vendors, items, drafts, refunds, receipts, company-card expenses, and discounts on ERP payments (those payments are skipped on import).
  • Tax. Tax is posted per mapped rate. The ERP chooses a tax category from the shipping address, and differences appear as total conflicts after posting.
  • Notes are never cleared. Informational notes, such as an overpayment or company-card note, stay in "Open notes and errors".
  • Display limits. Each module panel shows the latest 50 events and 50 open errors. Vendor pickers show the first 100 matches.
  • ERP requirements. Kestrio does not check the integration user's ERP role. Missing permissions show up as errors on posting.

Safety Notes

  • Use a dedicated integration user and confirm the ERP legal entity before connecting.
  • Confirm sign-off with finance before enabling write-off sync, and review how gross credit notes should be treated in your books.
  • Post a test invoice and check totals and tax in the ERP before turning on every module.
  • Turning a switch back on posts everything since its original start date.
  • Fix the root cause before retrying a Failed or Dead document.
  • Revoke access in the ERP separately when disconnecting for good.