---
title: "Codat Sync for Payables is in maintenance: plan your move"
description: "Codat Sync for Payables v1 enters retirement on 1 May 2027, with Expenses v1 and Payroll. What each migration path involves and how to plan the move."
author: "Kateryna Poryvay"
published: "2026-10-16"
updated: "2026-10-16T09:22:54.709Z"
url: "https://www.apideck.com/blog/codat-sync-maintenance"
category: "Accounting"
tags: ["Accounting", "Guides & Tutorials"]
---

# Codat Sync for Payables is in maintenance: plan your move

Codat Sync for Payables v1 stopped being sold on 1 May 2026, and Codat no longer plans fixes for it. Codat announced the change on 30 March, and the [lifecycle notice](https://docs.codat.io/updates/260330-product-lifecycle-changes) puts Sync for Expenses v1 on the same schedule, and Sync for Payroll with it. Twelve months later, on 1 May 2027, Codat says that "All API access to the products will be disabled." If your product pays bills, books card spend or posts payroll through one of these APIs, the migration has a deadline, and more than five of its twelve months have already gone.

![Timeline of Codat's 2026 notices, from the lifecycle notice on 30 March 2026 to the end of maintenance on 1 May 2027](https://images.ctfassets.net/d6o5ai4eeewt/2UiFJ6hF53VYsBRgAvidFF/8c59e865f0a329dea06b38913c9c4609/timeline.png)

## Maintenance in Codat's own terms

Codat defines four lifecycle states, and maintenance is the second. In its words, a product in maintenance is "No longer sold. These products receive no new features and no planned bug fixes or maintenance work." Codat warns that customers may see the products degrade as the platforms around them change. During the twelve months the APIs keep working without "compatibility updates", and Codat sends reminders every three months.

The compatibility clause matters more than the end date. Accounting platforms change their APIs all the time. When QuickBooks Online changes a field or an OAuth requirement, a product in maintenance gets no update for it, so a sync can start failing well before May 2027. Codat asks customers to "start your migration to the new versions as soon as possible."

The end of the window is less precise than the start. The notice says that from 1 May 2027 Codat "will issue a deprecation notice outlining the retirement procedure", and in the same list that API access will be disabled. Under Codat's own definitions, a deprecated product is removed "after a defined notice period", so a short grace period after May 2027 is possible. No date for it is published, so plan for 1 May 2027.

Codat has run this process before. In its [October 2025 notice](https://docs.codat.io/updates/251003-deprecation-of-legacy-products), Visualize was removed on 31 October 2025, and Sync for Commerce v1 lost support the same day, with its removal later moved from 10 January to 28 February 2026.

## Codat Sync for Payables v1: the move to Bill Pay

Codat's migration path for Sync for Payables v1 is Bill Pay, and the shared name hides how different the two APIs are. In Codat's [OpenAPI repository](https://github.com/codatio/oas), the v1 spec describes itself as "The API for asynchronous Bill Pay solution", and the successor is titled "Bill pay (synchronous solution)".

The v1 API follows Codat's general accounting pattern: you read data from `/companies/{companyId}/data/...` and write through asynchronous push operations under `/connections/{connectionId}/push/...`. Bill Pay moves to a new path prefix, `/connections/{connectionId}/payables/...`, with a smaller set of endpoints built around bills and their payment. Several v1 write paths, credit notes and journal entries among them, have no equivalent in the new spec.

The code changes along with the endpoints. Bill Pay ships as a different npm package (`@codat/sync-for-payables`, where v1 is `@codat/sync-for-payables-version-1`). Codat also deprecated its [Java SDK](https://docs.codat.io/updates/260305-java-sdk-deprecation) on 2 April 2026 and its [Go SDK](https://docs.codat.io/updates/260401-go-sdk-deprecation) on 7 May 2026, so teams on either language rewrite against another SDK or plain HTTP anyway. Authentication stays the same: both specs use the same API-key header and the same `/companies` and `/connections` endpoints.

Coverage is the other check. [Codat's Bill Pay overview](https://docs.codat.io/payables/overview) lists six accounting integrations, QuickBooks Online and Xero among them. Business Central and Exact Online are not on the list. Codat is still adding to the product: an [August 2026 update](https://docs.codat.io/updates/260810-update-bills-suppliers-more-platforms) extended bill and supplier updates to three more platforms, including NetSuite. We found no published migration guide from v1 to Bill Pay in Codat's docs.

## Sync for Expenses v1: a different sync model

The path for Sync for Expenses v1 is Codat's current Expenses product. Version 1 works in two steps: you create an expense dataset, then call a separate endpoint to start the sync. [Expenses](https://docs.codat.io/expenses/overview) replaces that with typed endpoints per transaction type, and in Codat's words, "Once you create a categorized expense transaction, we automatically initiate a sync of these transactions."

Code that batches transactions and decides when to sync has to be reworked for that model. Expenses lists eight accounting integrations, including Business Central and QuickBooks Desktop, and support differs by transaction type. Xero takes no reimbursable expenses, for example, and NetSuite takes no transfers. Again, we found no published migration guide.

## Sync for Payroll has no replacement

Sync for Payroll is the product without a successor. Codat's migration path reads "Wind down usage, no direct replacement."

The product let payroll platforms read a customer's chart of accounts so the customer could map pay elements to accounts, then post each pay run to the accounting system as a journal entry. Its [overview](https://docs.codat.io/payroll/overview) lists six compatible accounting platforms, and its npm SDK was last published in July 2024. A payroll product running on it has to move to something outside Codat's Sync line before May 2027.

![Migration map from each Codat Sync product to Codat's own path and to the Apideck Accounting API resources for the same workflow; the payroll product has no Codat replacement](https://images.ctfassets.net/d6o5ai4eeewt/6P30qmdBPhfqhrm5ldbBYr/61502b6cfd33f56f2be4ef49b7c6a162/migration-map.png)

## The vendor changed direction

The product notice arrived a few weeks before a larger change. On 20 April 2026 Codat [rebranded](https://codat.io/resources/codat-rebrand/) around "advisory intelligence" for commercial banks, and on 5 May it [launched](https://codat.io/resources/codat-launches-advisory-intelligence-platform-bringing-real-time-data-ai-solutions-to-commercial-banks/) a platform of insight products for bankers. Codat's [summary page for AI assistants](https://codat.io/ai-info/) now lists "Primary Customers: US commercial banks", with fintech platforms as a secondary market.

Codat [says](https://docs.codat.io/updates/260420-codat-rebrand) the rebrand leaves existing connections and APIs unaffected, and Bill Pay and Expenses are still listed on its site. Those products are staying. A migration is still a good moment to ask whether a vendor whose primary customers are US banks should hold a SaaS product's accounting integrations for the next five years. Teams that answer yes can stay, and the steps below apply to them too.

## Deciding where the workflow lands

Every team on these products has a migration to finish before May 2027, and there are three realistic destinations: Codat's successor product, another unified API, or direct integrations. Building direct is cheapest for one or two ledgers and gets expensive past that, because each platform brings its own auth and approval process. QuickBooks Online alone has an [app partner programme with API fees](https://www.apideck.com/blog/quickbooks-api-pricing-and-the-intuit-app-partner-program). For a broader vendor comparison, our [Codat alternatives](https://www.apideck.com/blog/codat-alternatives) post covers seven options.

The work splits into the same steps whichever you pick:

1. List every Codat endpoint and SDK method your code calls, and mark which ones exist in the target API.
2. Count your connected customers by accounting platform and check each against the target's coverage per operation.
3. Find out whether customers have to reconnect. Ask Codat whether it can hand over the OAuth tokens it holds; if it can't, plan a reconnect campaign with in-app prompts.
4. Replace webhook handling and any polling of push-operation status.
5. Run old and new side by side on a test company per ledger before switching production traffic, and aim to finish in the first quarter of 2027.

## Moving the workflows to Apideck

Each workflow maps to resources in Apideck's Accounting API with full read and write support:

- Bill pay uses `bills` and `bill-payments`, with vendors in `suppliers` and invoice PDFs in `attachments`. Our [accounts payable guide](https://developers.apideck.com/guides/accounts-payable-automation) shows what a bill becomes in each system, for example an `ACCPAY` invoice in Xero.
- Card and expense data uses `expenses` and `expense-reports`, with receipts as attachments. Where a ledger has no expense object, the expense management guide books the transaction as a bill; Exact Online is the main case.
- Payroll posts one `journal-entries` record per pay run against the customer's ledger accounts, as the [payroll journal entries guide](https://developers.apideck.com/guides/payroll-journal-entries) describes.

Coverage on the main ledgers, from our connector data as of 14 October 2026:

| Ledger | Create bills | Pay bills | Create expenses | Post journal entries |
|---|---|---|---|---|
| QuickBooks Online | Yes | Yes | Yes | Yes |
| Xero | Yes | Yes | Yes | Yes |
| NetSuite | Yes | Yes | Yes | Yes |
| Sage Intacct | Yes | Yes | Yes | Yes |
| Microsoft Dynamics 365 Business Central | Yes | Yes | Yes | Yes |
| Zoho Books | Yes | Yes | Yes | Yes |
| Exact Online (NL and other regions; UK differs) | Yes | Yes | No, use bills | Yes |
| MYOB Business | Yes | Yes | No | Yes |
| Sage Business Cloud Accounting | Yes | Yes | Yes | No |
| FreshBooks | No | Yes | No | No |

The gaps are real: payroll posting doesn't work on Sage Business Cloud Accounting or FreshBooks today, and FreshBooks can't take new bills. On Exact Online UK, bill creation isn't supported either, so the bills fallback doesn't apply there. The coverage pages in our developer docs show every field and operation per connector.

Two architectural differences matter for the move. Apideck reads and writes the customer's ledger on each call instead of syncing a copy, so a bill created through the API exists in the ledger when the call returns, with no push operation to poll. Where a platform has no native webhooks, virtual webhooks check for changes every 24 hours by default and emit the same events. Connections run through Vault, which handles OAuth and token refresh per customer, and Vault can [import existing connections](https://developers.apideck.com/guides/migrating-integrations) from OAuth tokens or API keys if you can get your tokens out of Codat.

Start with the workflow on the shortest clock. For a payroll product that is Sync for Payroll, which has no successor at all. For bill pay and expenses, compare the ledgers your customers run with Bill Pay's six integrations before committing to either move. The [Apideck Accounting API](https://www.apideck.com/accounting-api) comes with a 30-day free trial with full access, enough to run a test company per ledger through each workflow well before May 2027.
