Tax
Your taxes counted for you, country by country.
Wajub finds your customer's country, applies that country's rate and records the tax on every payment in your ledger, refunds deducted. Your reports by country and currency are the starting point for your filings.
Standard rates for 184 countries · Ledger kept on every payment
Why Wajub Tax
Sell across borders, without a tax spreadsheet.
Tax follows your customer, not your currency: Wajub applies their country's rate and records it in your ledger.
- 184 countries
- TVA in Cameroon, Côte d'Ivoire and Senegal, VAT in Kenya or Nigeria, TVA in France: Wajub keeps each country's standard rate up to date.
- The customer's country
- On the hosted payment page, Wajub locates the customer at checkout: tax follows their country, not the currency. A customer in Paris paying in XAF counts for France, at 20%.
- Tax-inclusive or exclusive
- Your prices include tax: Wajub extracts the base. They exclude it: the API gives you the tax to add before you charge. Amounts are rounded to each currency's precision.
- A ledger that keeps itself
- One row per taxed payment, a negative row per refund, at the original payment's rate.
- B2B reverse charge
- For a business customer from another country with a verified tax ID, tax drops to zero. EU VAT numbers are checked against VIES.
- Shown to the customer
- On the hosted payment page, the summary shows the tax of the customer's country, with its name and rate.
Reports
Your tax figures, country by country.
The Dashboard and the API group tax collected, reversals and taxable base by country and currency, over the period you choose.
- Net tax computed for you: collected minus reversed.
- CSV export from the Dashboard, ready for Excel, with the total converted into your base currency.
- Applied rates are frozen: last quarter's report stays accurate.
For developers
A customer's tax, in one call.
One call to /tax/calculate with the amount, currency and country returns the rate, the tax and the total. Successful payments then record themselves in the ledger, which you read through the API.
PUT /tax/settingsTurn Tax on- Tax-inclusive prices or not, default country and your tax ID: Tax will not turn on without it.
POST /tax/calculateAsk for the tax- The amount, currency and customer's country give the rate, the tax and the total, to show before payment.
POST /paymentsCharge- When the payment succeeds, its tax is recorded in the ledger, at the rate of the customer's country, or your default country if it is unknown.
GET /tax/reportsRead your reports- Tax collected, reversed and net, taxable base: by country and currency, over the period you choose.
import { Wajub } from '@wajub/node'
const wajub = new Wajub({ secretKey: process.env.WAJUB_SECRET_KEY! })
await wajub.tax.updateSettings({
enabled: true,
inclusive: true,
default_country: 'CM',
tax_id_type: 'cm.niu',
registration_number: 'M123456789000L',
})
const tax = await wajub.tax.calculate({
amount: 15000,
currency: 'XAF',
country: 'CI',
tax_inclusive: true,
})
console.log(tax.tax_amount)
await wajub.payments.create({
amount: 15000,
currency: 'XAF',
email: 'awa@example.com',
})Response200 OK
{"calculation": {"amount": 15000,"tax_amount": 2288,"total": 15000,"rate": 18,"country_code": "CI"}}
Report, 30 daysGET /tax/reports
{"report": {"summary": {"total_tax_collected": 2253734,"total_reversals": -4842,"net_tax": 2248892}}}
Response200 OK
{"calculation": {"amount": 15000,"tax_amount": 2288,"total": 15000,"rate": 18,"country_code": "CI"}}
Report, 30 daysGET /tax/reports
{"report": {"summary": {"total_tax_collected": 2253734,"total_reversals": -4842,"net_tax": 2248892}}}
Frequently asked questions
Another question? Talk to sales
- Does Wajub add tax to what my customer pays?
- No: the amount collected is the one you create the payment with. If your prices exclude tax, ask for the tax with /tax/calculate, then create the payment for the total. The ledger records the tax on every successful payment once Tax is on.
- Does Wajub file and remit tax for me?
- No. Wajub computes rates and keeps your ledger; registration, filing and remitting to authorities stay with you. The reports are a starting point for your accountant.
- Are reduced rates supported?
- Not yet: Wajub applies the standard rate of the customer's country, whatever the product.
- Which plans include Tax?
- Tax is included in Growth, Scale and Enterprise, and available as an add-on on Pay as you go. It only runs in production: test payments never compute tax.
- How is my customer's country determined?
- On the hosted payment page, Wajub infers it automatically from the customer's details at checkout. For a payment created entirely from your server, your default country applies.
Get your taxes in order from the first payment.
Turn on Tax in the Dashboard with your tax ID: every collected payment feeds your ledger from that moment.