For Agents
Push expense transactions from a card or spend management platform into a customer's accounting software with correct account, tax, and category mapping.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Sync for Expenses API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Sync for Expenses API API.
Configure a Sync for Expenses connection between the partner platform and the customer's accounting system
Push expense transactions into the linked accounting platform with mapped account, tax rate, and tracking category
Read mapping options so the partner platform can present the correct GL accounts and tax rates to users
Trigger sync runs and monitor sync status at company, latest, and per-sync granularity
GET STARTED
Use for: I want to push a card expense into a customer's QuickBooks ledger, Get the mapping options available for an accounting connection, Check whether the latest sync of expenses succeeded, List the status of every transaction in a given sync run
Not supported: Does not handle commerce sales sync, accounting ledger reads, or payment processing — use for posting expense transactions from a partner platform into accounting software with correct GL mapping only.
Codat's Sync for Expenses API lets corporate card and spend management platforms write expense transactions into a customer's accounting software with the right account mapping, tax rate, and tracking category applied. It manages partner-expense connections, mapping options, sync triggers, and per-transaction status so the platform can show finance teams exactly which expenses reached the ledger and which need attention. It is used by card issuers, expense apps, and travel-and-expense platforms that want one accounting integration covering QuickBooks, Xero, and Sage.
Inspect per-transaction status to identify which expense lines posted successfully and which failed
Manage partner-expense connections that link a customer's account on the partner platform to their accounting platform
Patterns agents use Sync for Expenses API API for, with concrete tasks.
★ Corporate Card Expense Sync
Card issuers and corporate card platforms use Sync for Expenses to write each cardholder transaction into the customer's accounting ledger automatically. The /companies/{companyId}/sync/expenses/syncs endpoint triggers a run and the /sync/expenses/syncs/{syncId}/status endpoint exposes per-transaction status so the finance team sees what posted and what needs review.
Trigger a sync for company {companyId}, then retrieve the latest sync status and list any transactions that failed to post.
Travel and Expense Platform Reconciliation
Travel-and-expense apps use Sync for Expenses to write approved expense reports into accounting platforms with correct GL coding. The /sync/expenses/mappingOptions endpoint surfaces the chart of accounts and tax rates available in the destination, letting the platform offer accurate dropdowns at submission time so each expense lands in the right account when synced.
Fetch mapping options for company {companyId} and return the available GL accounts and tax rates for use in the expense submission UI.
Spend Management Reliability Monitoring
Spend management ops teams monitor sync reliability through the status endpoints. /sync/expenses/syncs/list/status and /sync/expenses/syncs/lastSuccessful/status surface health across customers so the team can investigate failed syncs before the customer's finance team notices the missing entries.
List the status of the last 50 syncs for company {companyId} and report any with status other than 'Success'.
AI Agent Expense Reconciliation
AI agents that handle expense reconciliation use Sync for Expenses through Jentic to remediate failed posts. The agent searches Jentic for 'expense sync status', loads the operation, identifies failed transactions, and triggers a re-sync after correcting the mapping. Jentic isolates the Codat API key in its vault.
Search Jentic for 'sync for expenses status', load the operation, and identify expenses for company {companyId} that failed in the last run.
14 endpoints — codat's sync for expenses api lets corporate card and spend management platforms write expense transactions into a customer's accounting software with the right account mapping, tax rate, and tracking category applied.
METHOD
PATH
DESCRIPTION
/companies/{companyId}/sync/expenses/config
Read sync configuration for a company
/companies/{companyId}/sync/expenses/connections/partnerExpense
Create a partner-expense connection
/companies/{companyId}/sync/expenses/mappingOptions
List available accounts, tax rates, and tracking categories
/companies/{companyId}/sync/expenses/syncs
Trigger a sync run
/companies/{companyId}/sync/expenses/syncs/lastSuccessful/status
Check the last successful sync status
/companies/{companyId}/sync/expenses/syncs/{syncId}/status
Get per-transaction status for a specific sync run
/companies/{companyId}/sync/expenses/config
Read sync configuration for a company
/companies/{companyId}/sync/expenses/connections/partnerExpense
Create a partner-expense connection
/companies/{companyId}/sync/expenses/mappingOptions
List available accounts, tax rates, and tracking categories
/companies/{companyId}/sync/expenses/syncs
Trigger a sync run
/companies/{companyId}/sync/expenses/syncs/lastSuccessful/status
Check the last successful sync status
Three things that make agents converge on Jentic-routed access.
Credential isolation
Codat API keys are stored encrypted in the Jentic vault. Agents receive a scoped execution token; the 'Basic' Authorization header is constructed inside Jentic and never enters the agent runtime.
Intent-based discovery
Agents search Jentic by intent (e.g. 'sync expenses to accounting software') and Jentic returns the matching Sync for Expenses operation with its input schema.
Time to first call
Direct Codat Sync for Expenses integration: 1-3 weeks for auth, mapping flow, and status handling. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Codat Accounting API
Provides full read and write access to the accounting ledger that Sync for Expenses posts into
Use Accounting when the agent needs general ledger reads or non-expense writes; use Sync for Expenses for the focused expense posting workflow.
Codat Sync for Commerce
Pushes commerce sales rather than expenses into accounting platforms
Choose Sync for Commerce for sales-side data; choose Sync for Expenses for expense-side data.
Codat Bank Feeds
Posts transactions as a native bank feed rather than as expense entries
Use Bank Feeds when the destination should receive a bank-feed-style stream; use Sync for Expenses when transactions should land as expense entries with GL coding.
Specific to using Sync for Expenses API API through Jentic.
What authentication does the Sync for Expenses API use?
The API uses an API key passed in the Authorization header as 'Basic <base64-encoded-key>'. The single security scheme in the spec is named auth_header. Through Jentic, the Codat API key is stored encrypted in the vault and the Authorization header is constructed at execution time.
Can I push corporate card transactions into QuickBooks with this API?
Yes. After creating a partner-expense connection via /companies/{companyId}/sync/expenses/connections/partnerExpense, push expenses through the sync endpoints under /companies/{companyId}/sync/expenses. The transactions arrive in QuickBooks with the GL account, tax rate, and tracking category applied based on the mapping options you supply.
What are the rate limits for the Sync for Expenses API?
Codat does not publish a fixed rate limit in the OpenAPI spec; limits are governed at the company and connection level and depend on the destination accounting platform's own limits. Codat returns HTTP 429 with a Retry-After header when limits are hit and recommends exponential backoff.
How do I check why an expense transaction failed to post through Jentic?
Search Jentic for 'expense sync transaction status', load the GET /companies/{companyId}/sync/expenses/syncs/{syncId}/status operation, and execute it with the sync ID. Install with pip install jentic and use the standard async search, load, and execute flow.
Which accounting platforms does Sync for Expenses support?
Sync for Expenses supports QuickBooks Online, Xero, and Sage as primary destinations using the same endpoint surface. The destination is selected when the partner-expense connection is created, and the mapping options endpoint returns the destination-specific chart of accounts.
Note that the API spec marks this API version as 'prealpha' — is it production-ready?
The OpenAPI spec exposes version 'prealpha' in info.version, indicating Codat may still iterate on the surface. Production deployments should pin to the spec version they tested against and watch for breaking changes; through Jentic the loaded schema is versioned with the spec used at search time.
/companies/{companyId}/sync/expenses/syncs/{syncId}/status
Get per-transaction status for a specific sync run