Two-way sync
Changes in Bill or Citus instantly reflect in both systems. No stale data, no manual imports.
Keep Bill and Citus in sync without custom scripts. Cut weeks of integration work, eliminate silent data drift, and give your team a single, reliable source of truth.
Engineers need finance data more often than finance systems make it easy to get: for internal tools, reporting services, or logic that reacts to invoices and payments. Working through the vendor API means rate limits, pagination, and glue code that has to be maintained forever.
Stacksync mirrors Chart of Accounts, Bank Accounts, Vendor Credits and Credit Memos, Bills from Bill into Sequences, Distributed tables, Reference tables, Local tables in Citus and keeps the two in sync bi-directionally and in real time. Your services read finance records with normal queries against Citus, and rows your code writes or updates flow back into Bill with validation, so the finance system stays the system of record.
Build dashboards and back-office tools directly on Citus; Stacksync handles the API calls, rate limits, and retries against Bill.
Updates written to the synced tables in Citus propagate into Bill, so automations can create or correct finance records without custom integration code.
Changes in Bill appear in Citus as row changes, so you can trigger downstream logic with the database tooling you already use.
Representative objects on each side — any object or custom field can map to any target. Schemas are auto-detected; types are converted between the two systems.
| Bill objects | Citus objects | How this pairing syncs | |
|---|---|---|---|
| Bank Accounts Funding and deposit accounts; read to reconcile payments and posted transactions against the ledger. | Reference tables Small lookup tables replicated to every node, synced like ordinary Postgres tables. | Bank Accounts is specific to Bill and Reference tables to Citus — each maps to any object or custom field on the other side. | |
| Vendor Credits and Credit Memos AP and AR adjustments applied against bills and invoices; synced so balances stay accurate on both sides. | Local tables Coordinator-only tables that behave exactly like standard PostgreSQL tables. | Vendor Credits and Credit Memos is specific to Bill and Local tables to Citus — each maps to any object or custom field on the other side. | |
| Bills Accounts-payable amounts owed to vendors, with bill line items; read and created via /v3/bills and pulled incrementally by filtering on createdTime/updatedTime. | Schemas Standard Postgres namespaces used to scope what a sync user can read and write. | Bills is specific to Bill and Schemas to Citus — each maps to any object or custom field on the other side. | |
| Vendors Payee master records; synced two-way with vendor/supplier tables in an ERP or accounting system so new payees don't have to be re-keyed. | Views Curated projections over distributed data, often used as read-only sync sources. | Vendors is specific to Bill and Views to Citus — each maps to any object or custom field on the other side. | |
| Invoices Accounts-receivable invoices sent to customers; created and read via /v3/invoices to keep billing status aligned with the ERP or CRM. | Sequences Key generators that matter when external writes must not collide with application inserts. | Invoices is specific to Bill and Sequences to Citus — each maps to any object or custom field on the other side. | |
| Customers AR customer master records; mapped to customer/account records in a CRM or ERP so finance and sales share one view. | Distributed tables Tables sharded across worker nodes by a distribution column; the main sync target for large datasets. | Customers is specific to Bill and Distributed tables to Citus — each maps to any object or custom field on the other side. |
Each direction of the sync is driven by what the source system can signal and what the destination accepts — detection, delivery, and expected latency below.
DetectionBill notifies Stacksync of record changes through webhook events. Webhook event subscriptions (POST /v3/subscriptions) for bills, vendors, payments, invoices, and bank accounts, with polling on.
DeliveryEach detected change is applied to Citus as a row-level write, with types converted between the two schemas.
DetectionChanges in Citus are captured at the source via change data capture — no polling loop against its API. PostgreSQL logical decoding / CDC, with caveats: changes to distributed tables occur on worker shards, so CDC setup differs from single-node Postgres.
DeliveryEach detected change is written to Bill through its API, with automatic retries and rate-limit backoff.
Real-time sync, workflow automation, event queues, EDI, and monitoring, for every Bill–Citus connection.
Changes in Bill or Citus instantly reflect in both systems. No stale data, no manual imports.
Trigger automated workflows whenever Bill or Citus data changes, update records, fire webhooks, or kick off sequences without brittle API scripts.
Handle millions of events per minute without losing a single Bill or Citus record.
Track your Bill ⇄ Citus sync health, view errors, and replay failed events in one click.
Transform legacy EDI complexity into simple database interactions between Bill and Citus.
Configure and sync within minutes, no code. Whether you sync 50k or 100M+ records, Stacksync handles the queues, infra, and plumbing. Integrations are non-invasive and need zero setup on your systems.
Authenticate Bill and Citus with each platform's native method — OAuth, API keys, or service accounts — plus secure options like SSH tunneling, IP whitelisting, and VPC peering.
Pick the Bill and Citus objects to sync — Stacksync auto-detects both schemas, including custom fields where the platform exposes them. Sync to existing tables, or let Stacksync create new ones with ideal data types.
Fields map automatically even when names and types differ. Stacksync handles transformation and type casting for you, zero configuration required.
Yes. Stacksync provides a managed, real-time two-way integration between Bill and Citus: authenticate both systems, choose the objects to sync (such as Bill's Bank Accounts and Vendor Credits and Credit Memos), map fields visually, and changes propagate both ways in milliseconds — no code required.
Common patterns for Bill and Citus: Internal tools without API plumbing; Write back safely; React to financial events. Build dashboards and back-office tools directly on Citus; Stacksync handles the API calls, rate limits, and retries against Bill.
Bill: REST/JSON (BILL v3 Connect API). Authentication: Session-based: POST /v3/login with username, password, organizationId, and a developer key (devKey) returns a sessionId that is passed with the devKey as headers on every subsequent call; OAuth is available for partner/embedded apps. Citus: PostgreSQL wire protocol; any standard Postgres driver connects to the coordinator node. Authentication: Database credentials (standard PostgreSQL authentication; managed deployments add cloud IAM options). Stacksync manages authentication, retries, and rate limits on both sides.
Bill: Rate limits are enforced per developer key: 20,000 requests per hour, login capped at 200 per hour, and a maximum of 3 concurrent requests per developer key per organization. Citus: Because shard data lives on worker nodes, log-based CDC is more involved than on single-node Postgres and depends on the Citus version and hosting (including the Azure managed service). Stacksync's field mapping accounts for these differences between Bill and Citus without custom code.
Stacksync is SOC 2 Type II and ISO 27001 certified with HIPAA BAA support. Data is encrypted in transit, and a zero-persistent-storage architecture means Bill and Citus records are not retained after a sync operation.
Stacksync pricing is usage-based and starts at $1,000/month, including the managed Bill and Citus connectors, real-time two-way sync, monitoring, and support. That replaces building and maintaining a custom Bill–Citus integration in-house.
As a data company, we understand the importance of keeping your data secure. Stacksync is built with security best practices to keep your data safe at every layer, and is DPF-certified for US, EU, UK and CH data transfers.
Let your users access Stacksync from your centralized user management systems. Works with Okta, Azure, Google SSO and more.
Immediately get alerted about record syncing issues over email, Slack, PagerDuty and WhatsApp. Resolve issues from a centralized dashboard with retry and revert options.
Securely connects to your systems with:
Every pair below is a real-time, two-way sync. Search all 426 integrations available for Bill and Citus.