Conjoin updates tax rates when a jurisdiction changes them

Charge the right tax for each customer's jurisdiction on your payments, invoices, and subscriptions once you turn on tax calculation for a billing entity. Conjoin maintains the rate tables for every supported jurisdiction.

Charge the tax rate that applies to each transaction

Once you turn on tax calculation for your billing entity, the tax engine picks the rate for each transaction from the merchant's jurisdiction, the customer's location, and whether the sale is B2B or B2C. Conjoin updates its rates whenever a jurisdiction changes them, so Billing charges the rate in force on the date of each transaction.

How the tax engine works out the tax on each transaction

Jurisdiction-based rates

Turn on tax calculation for each billing entity separately. From then on, Billing taxes every transaction of that entity at the rate for the customer's jurisdiction and the B2B or B2C classification of the sale.

Compound tax structures

Some jurisdictions calculate one tax on the base amount plus another levy. For those jurisdictions, the tax engine works through each component of the compound tax in the sequence that the law sets.

Direct and reverse charge

On a B2B sale between regions with a reverse charge rule, Billing shifts the tax obligation to the buyer. For other cross-border sales, Billing applies direct charge and adds the tax to the invoice.

Transaction-level audit trails

Billing keeps a record of the tax on every transaction that it taxes, with the rate of each component, the jurisdiction, and the B2B or B2C classification for your reports and records.

Future-dated rate changes

When a jurisdiction announces a rate change for a future date, Conjoin schedules it so that the tax engine switches to the new rate at the time that the jurisdiction sets, in its local time zone.

Tax Rate API

Query the current or historical tax rate for any supported jurisdiction through the Tax Rate API. You can call it on its own or alongside the rest of Billing.

Local time
Rate changes

Each new rate starts at the jurisdiction's own start time

Compound
Tax structures

Taxes that apply on top of other taxes

Per transaction
Audit trails

A rate breakdown for every taxed transaction

Build faster with solutions designed for real-world needs

Charge current tax rates as jurisdictions change them

Turn on tax calculation for your billing entity. Conjoin applies the current rate for each jurisdiction and loads a new rate once the jurisdiction announces it. Billing switches to a future-dated rate at its local start time, so your code makes the same calls before and after the change.

Impact

In the sample, the list call returns up to 100 active jurisdictions in Ghana, each with its tax type, its rate, and the dates between which that rate applies.

Prompt for a coding agent: List the active tax jurisdictions in Ghana with their rates and dates.

Conjoin IDE

Select a file to view its contents

Apply compound taxes in the order that each jurisdiction requires

The tax engine calculates the components of a compound tax one after another, so when a jurisdiction levies one tax on top of another, the engine includes that other levy in the base of the second tax.

Impact

In the sample, a rate lookup for Greater Accra in Ghana on May 12, 2026 returns the combined rate and each component with its own tax type and rate, which Selvedge & Loom logs one line at a time.

Prompt for a coding agent: Look up the Greater Accra tax rate, and log each component on its own line.

Conjoin IDE

Select a file to view its contents

Get reverse charge right on cross-border B2B sales

Billing classifies each transaction as B2B or B2C and applies direct or reverse charge from the jurisdictions of the merchant and the customer. Billing then stores the charge type on the tax record for both parties.

Impact

In the sample, the jurisdiction list for the Netherlands returns its reverse_charge flag. When that flag is true, Tinwood Trading bills Rasheeda Othman at 0%, with the buyer reporting the tax.

Prompt for a coding agent: Bill business customers in the Netherlands at 0% under reverse charge.

Conjoin IDE

Select a file to view its contents

Pull audit-ready tax records for any transaction

Query the tax records through the API, or receive each one in a webhook event. A record lists the rate, the breakdown by component, the jurisdiction, the B2B or B2C classification, and the charge type.

Impact

Query the records for a single transaction or for a date range, then give an auditor the rate and the jurisdiction behind every tax amount.

Build your next app on Conjoin

Conjoin will open with a free Build tier, while the pricing page already lists the launch prices for Pro and Business. If you tell us what you're building, we'll talk you through early access.