UK tax: take-home pay, self-employed and company tax, VAT, stamp duty, invoices and MTD.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Record a business income or expense in the signed-in person's TapTax, such as a receipt or a payment. The category is the HMRC self-employment box it belongs in. The same entry added twice within 10 minutes is recorded once.
The date on the receipt or of the payment
In pounds, VAT included
For an expense, its HMRC self-employment box (SA103F): costOfGoods: materials, parts and stock used in the work or sold on, e.g. trade and building suppliers such as Screwfix, Toolstation, City Electrical Factors, Edmundson Electrical, Travis Perkins, Wickes; constructionIndustryScheme: payments to subcontractors under the Construction Industry Scheme; staffCosts: wages, salaries and pension contributions for employees, and payments to non-CIS subcontractors; travelCosts: car, van and travel: fuel, vehicle insurance, servicing and repairs, road tax, parking, tolls, public transport and taxi fares, and hotels and meals on overnight business trips; premisesRunningCosts: rent, business rates, power, heating, water, insurance and security for business premises (never vehicles); maintenanceCosts: repairs and maintenance of business premises, machinery and equipment; adminCosts: phone, broadband, postage, stationery, printing, small office items, and software and app subscriptions such as accounting or tax software (TapTax, Xero, QuickBooks); advertisingCosts: advertising, marketing and website costs; businessEntertainmentCosts: entertaining clients or customers; interest: interest on business loans and overdrafts; financialCharges: bank, overdraft, card and payment-processing charges; badDebt: money owed to the business that will not be paid and was counted as income; professionalFees: accountants, solicitors and other professional fees, and professional indemnity insurance; depreciation: depreciation of equipment (rare in a bank transaction); other: other allowable business costs, e.g. protective clothing, trade and professional body memberships, public liability insurance. For income: turnover (sales and fees) or other (other business income).
Supplier or client, and what it was for
True for a personal (non-business) payment
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Record a business income or expense in the signed-in person's TapTax, such as a receipt or a payment. The category is the HMRC self-employment box it belongs in. The same entry added twice within 10 minutes is recorded once.
| Argument | Type | Description |
|---|---|---|
| date* | string | The date on the receipt or of the payment |
| type* | string | |
| amount* | number | In pounds, VAT included |
| category* | string | For an expense, its HMRC self-employment box (SA103F): costOfGoods: materials, parts and stock used in the work or sold on, e.g. trade and building suppliers such as Screwfix, Toolstation, City Electrical Factors, Edmundson Electrical, Travis Perkins, Wickes; constructionIndustryScheme: payments to subcontractors under the Construction Industry Scheme; staffCosts: wages, salaries and pension contributions for employees, and payments to non-CIS subcontractors; travelCosts: car, van and travel: fuel, vehicle insurance, servicing and repairs, road tax, parking, tolls, public transport and taxi fares, and hotels and meals on overnight business trips; premisesRunningCosts: rent, business rates, power, heating, water, insurance and security for business premises (never vehicles); maintenanceCosts: repairs and maintenance of business premises, machinery and equipment; adminCosts: phone, broadband, postage, stationery, printing, small office items, and software and app subscriptions such as accounting or tax software (TapTax, Xero, QuickBooks); advertisingCosts: advertising, marketing and website costs; businessEntertainmentCosts: entertaining clients or customers; interest: interest on business loans and overdrafts; financialCharges: bank, overdraft, card and payment-processing charges; badDebt: money owed to the business that will not be paid and was counted as income; professionalFees: accountants, solicitors and other professional fees, and professional indemnity insurance; depreciation: depreciation of equipment (rare in a bank transaction); other: other allowable business costs, e.g. protective clothing, trade and professional body memberships, public liability insurance. For income: turnover (sales and fees) or other (other business income). |
| personal | boolean | True for a personal (non-business) payment |
| description* | string | Supplier or client, and what it was for |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"type",
"amount",
"date",
"description",
"category"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "The date on the receipt or of the payment"
},
"type": {
"enum": [
"income",
"expense"
],
"type": "string"
},
"amount": {
"type": "number",
"maximum": 10000000,
"description": "In pounds, VAT included",
"exclusiveMinimum": 0
},
"category": {
"enum": [
"costOfGoods",
"constructionIndustryScheme",
"staffCosts",
"travelCosts",
"premisesRunningCosts",
"maintenanceCosts",
"adminCosts",
"advertisingCosts",
"businessEntertainmentCosts",
"interest",
"financialCharges",
"badDebt",
"professionalFees",
"depreciation",
"other",
"turnover"
],
"type": "string",
"description": "For an expense, its HMRC self-employment box (SA103F): costOfGoods: materials, parts and stock used in the work or sold on, e.g. trade and building suppliers such as Screwfix, Toolstation, City Electrical Factors, Edmundson Electrical, Travis Perkins, Wickes; constructionIndustryScheme: payments to subcontractors under the Construction Industry Scheme; staffCosts: wages, salaries and pension contributions for employees, and payments to non-CIS subcontractors; travelCosts: car, van and travel: fuel, vehicle insurance, servicing and repairs, road tax, parking, tolls, public transport and taxi fares, and hotels and meals on overnight business trips; premisesRunningCosts: rent, business rates, power, heating, water, insurance and security for business premises (never vehicles); maintenanceCosts: repairs and maintenance of business premises, machinery and equipment; adminCosts: phone, broadband, postage, stationery, printing, small office items, and software and app subscriptions such as accounting or tax software (TapTax, Xero, QuickBooks); advertisingCosts: advertising, marketing and website costs; businessEntertainmentCosts: entertaining clients or customers; interest: interest on business loans and overdrafts; financialCharges: bank, overdraft, card and payment-processing charges; badDebt: money owed to the business that will not be paid and was counted as income; professionalFees: accountants, solicitors and other professional fees, and professional indemnity insurance; depreciation: depreciation of equipment (rare in a bank transaction); other: other allowable business costs, e.g. protective clothing, trade and professional body memberships, public liability insurance. For income: turnover (sales and fees) or other (other business income)."
},
"personal": {
"type": "boolean",
"default": false,
"description": "True for a personal (non-business) payment"
},
"description": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Supplier or client, and what it was for"
}
}
}Calculate UK Capital Gains Tax on selling an asset (residential property, shares, a business qualifying for Business Asset Disposal Relief, or other assets) for a tax year: the gain after costs, losses and the annual exempt amount, tax at each rate given other income, and the payment deadline.
| Argument | Type | Description |
|---|---|---|
| losses | number | Capital losses to offset |
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| proceeds* | number | Sale proceeds |
| assetType* | string | badr: Business Asset Disposal Relief |
| costBasis* | number | What the asset cost |
| otherIncome | number | Taxable income in the year, which sets the rate |
| disposalDate | string | Disposal date; only matters in 2024-25, when rates changed on 30 October 2024 |
| allowableCosts | number | Costs of buying, improving and selling |
Calculate the High Income Child Benefit Charge on an adjusted net income and the Child Benefit received in a tax year: the charge, the benefit kept, and the income the charge starts from.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| adjustedNetIncome* | number | The higher earner's adjusted net income for the year |
| annualChildBenefit* | number | Child Benefit received in the year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"adjustedNetIncome",
"annualChildBenefit"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"adjustedNetIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "The higher earner's adjusted net income for the year"
},
"annualChildBenefit": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Child Benefit received in the year"
}
}
}Calculate the Construction Industry Scheme deduction on a payment (labour only, materials excluded) at the registered, unregistered or gross-payment rate, the amount received, and whether the year's deductions are likely to be more or less than the tax actually due.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| expenses | number | Expected business expenses for the year |
| cisStatus* | string | registered (20%), unregistered (30%) or gross payment status (0%) |
| annualIncome | number | Expected self-employed income for the year |
| grossPayment* | number | The payment before deduction |
| materialsAmount | number | Part of the payment that is materials |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"grossPayment",
"cisStatus"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"expenses": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Expected business expenses for the year"
},
"cisStatus": {
"enum": [
"registered",
"unregistered",
"gross"
],
"type": "string",
"description": "registered (20%), unregistered (30%) or gross payment status (0%)"
},
"annualIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Expected self-employed income for the year"
},
"grossPayment": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "The payment before deduction"
},
"materialsAmount": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Part of the payment that is materials"
}
}
}Turn a contractor day rate into annual and monthly income, an hourly equivalent, and take-home pay as a sole trader, through a company outside IR35 and inside IR35, with the best route and the PAYE salary that would take home as much, for a tax year.
| Argument | Type | Description |
|---|---|---|
| dayRate* | number | Day rate charged |
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| hoursPerDay | number | Hours in a working day; defaults to 7.5 |
| billableDays* | number | Days billed in a year after holidays, sickness and gaps |
| accountancyCost | number | Accountancy cost a year |
| businessExpenses | number | Business expenses a year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"dayRate",
"billableDays"
],
"properties": {
"dayRate": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Day rate charged"
},
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"hoursPerDay": {
"type": "number",
"maximum": 24,
"description": "Hours in a working day; defaults to 7.5",
"exclusiveMinimum": 0
},
"billableDays": {
"type": "number",
"maximum": 366,
"description": "Days billed in a year after holidays, sickness and gaps",
"exclusiveMinimum": 0
},
"accountancyCost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Accountancy cost a year"
},
"businessExpenses": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Business expenses a year"
}
}
}Calculate UK corporation tax on a company's taxable profit for a tax year, including marginal relief between the small profits and main rates, with profit after tax and the effective rate.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| taxableProfit* | number | Company's taxable profit for the year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"taxableProfit"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"taxableProfit": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Company's taxable profit for the year"
}
}
}Calculate UK tax on dividends for a tax year, given the dividends and other income: the dividend allowance, tax at the basic, higher and additional dividend rates, and the effective rate.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| otherIncome | number | Other taxable income, such as a salary |
| dividendIncome* | number | Dividends received in the year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"dividendIncome"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"otherIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Other taxable income, such as a salary"
},
"dividendIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Dividends received in the year"
}
}
}Work out the gross UK salary needed to take home a given amount a year after income tax, employee National Insurance, student loan and a pension percentage, for a tax year (net to gross).
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| pensionPercent | number | Employee pension as a percentage of gross, e.g. 5 |
| targetTakeHome* | number | Take-home pay wanted a year, in pounds |
| studentLoanPlan | string | Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan) |
| scottishTaxpayer | boolean | True for a Scottish taxpayer (Scottish bands) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"targetTakeHome"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"pensionPercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Employee pension as a percentage of gross, e.g. 5"
},
"targetTakeHome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Take-home pay wanted a year, in pounds"
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string",
"description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)"
},
"scottishTaxpayer": {
"type": "boolean",
"description": "True for a Scottish taxpayer (Scottish bands)"
}
}
}Calculate the date an invoice is due from its date and the payment terms (on receipt, a number of days, end of month, days after month end, a day of the following month, or the statutory 30-day default), with the weekday and whether the terms exceed the statutory limit.
| Argument | Type | Description |
|---|---|---|
| days | integer | Days, for net and net-end-of-month terms |
| terms* | string | The payment terms |
| customer | string | |
| dayOfMonth | integer | Day, for day-of-following-month terms |
| invoiceDate* | string | Invoice date, or the day the customer received it (YYYY-MM-DD) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoiceDate",
"terms"
],
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 0,
"description": "Days, for net and net-end-of-month terms"
},
"terms": {
"enum": [
"on-receipt",
"net",
"end-of-month",
"net-end-of-month",
"day-of-following-month",
"statutory-default"
],
"type": "string",
"description": "The payment terms"
},
"customer": {
"enum": [
"business",
"public-authority"
],
"type": "string"
},
"dayOfMonth": {
"type": "integer",
"maximum": 31,
"minimum": 1,
"description": "Day, for day-of-following-month terms"
},
"invoiceDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Invoice date, or the day the customer received it (YYYY-MM-DD)"
}
}
}Calculate the statutory interest (Bank of England base rate plus 8%) and fixed compensation a business can claim on a late-paid commercial invoice under the Late Payment of Commercial Debts Act, from the amount, the due date and the payment date.
| Argument | Type | Description |
|---|---|---|
| amount* | number | Unpaid invoice amount, VAT included if charged |
| paidOn | string | The day it was paid; defaults to today |
| dueDate* | string | The last day payment was due |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"amount",
"dueDate"
],
"properties": {
"amount": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Unpaid invoice amount, VAT included if charged"
},
"paidOn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "The day it was paid; defaults to today"
},
"dueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "The last day payment was due"
}
}
}Calculate the selling price, profit and the equivalent profit margin from a cost and a markup percentage.
| Argument | Type | Description |
|---|---|---|
| cost* | number | Cost of the item or job |
| markupPercent* | number | Markup on cost, as a percentage |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"cost",
"markupPercent"
],
"properties": {
"cost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Cost of the item or job"
},
"markupPercent": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Markup on cost, as a percentage"
}
}
}Calculate the tax-free business mileage allowance for a year at HMRC's approved mileage rates for a car or van, motorcycle or bicycle, including the passenger rate, and the tax it saves at the basic or higher rate.
| Argument | Type | Description |
|---|---|---|
| taxBand | string | Income tax band, for the saving; defaults to basic |
| vehicleType | string | Defaults to car (cars and vans) |
| passengerTrips | integer | Business trips with a passenger |
| annualBusinessMiles* | number | Business miles in the year |
| averageMilesPerPassengerTrip | number |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"annualBusinessMiles"
],
"properties": {
"taxBand": {
"enum": [
"basic",
"higher"
],
"type": "string",
"description": "Income tax band, for the saving; defaults to basic"
},
"vehicleType": {
"enum": [
"car",
"motorcycle",
"bicycle"
],
"type": "string",
"description": "Defaults to car (cars and vans)"
},
"passengerTrips": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Business trips with a passenger"
},
"annualBusinessMiles": {
"type": "number",
"maximum": 500000,
"minimum": 0,
"description": "Business miles in the year"
},
"averageMilesPerPassengerTrip": {
"type": "number",
"maximum": 1000,
"minimum": 0
}
}
}Compare a self-employed person's tax with their current and a higher personal pension contribution in a tax year: the basic-rate relief added to the pension, the reduction in the tax bill, and the net cost of the extra contribution.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| grossIncome* | number | Self-employed income before expenses |
| businessExpenses | number | Allowable business expenses |
| targetPensionContribution* | number | Personal pension contributions planned, a year |
| currentPensionContribution | number | Personal pension contributions now, a year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"grossIncome",
"targetPensionContribution"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"grossIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Self-employed income before expenses"
},
"businessExpenses": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Allowable business expenses"
},
"targetPensionContribution": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Personal pension contributions planned, a year"
},
"currentPensionContribution": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Personal pension contributions now, a year"
}
}
}Work out a part-time salary from the full-time salary and the hours or days worked compared with full time, with the take-home pay on the pro rata salary for a tax year.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| actualUnits* | number | Hours (or days) actually worked a week, in the same unit |
| fullTimeUnits* | number | Full-time hours (or days) a week, e.g. 37.5 |
| fullTimeSalary* | number | Full-time annual salary |
| studentLoanPlan | string | Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan) |
| scottishTaxpayer | boolean | True for a Scottish taxpayer (Scottish bands) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"fullTimeSalary",
"fullTimeUnits",
"actualUnits"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"actualUnits": {
"type": "number",
"maximum": 168,
"description": "Hours (or days) actually worked a week, in the same unit",
"exclusiveMinimum": 0
},
"fullTimeUnits": {
"type": "number",
"maximum": 168,
"description": "Full-time hours (or days) a week, e.g. 37.5",
"exclusiveMinimum": 0
},
"fullTimeSalary": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Full-time annual salary"
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string",
"description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)"
},
"scottishTaxpayer": {
"type": "boolean",
"description": "True for a Scottish taxpayer (Scottish bands)"
}
}
}Calculate the profit margin and markup from a cost and a selling price, or the selling price needed for a target margin.
| Argument | Type | Description |
|---|---|---|
| cost* | number | Cost of the item or job |
| price | number | Selling price |
| targetMarginPercent | number | Margin wanted, as a percentage of price |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"cost"
],
"properties": {
"cost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Cost of the item or job"
},
"price": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Selling price"
},
"targetMarginPercent": {
"type": "number",
"maximum": 99.99,
"minimum": 0,
"description": "Margin wanted, as a percentage of price"
}
}
}Calculate UK income tax on rental profit for a landlord in a tax year, given rent, allowable expenses, mortgage interest (relieved as a 20% tax credit) and other income.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| grossRent* | number | Rent received in the year |
| otherIncome | number | Other taxable income |
| allowableExpenses | number | Allowable expenses, not mortgage interest |
| mortgageInterestPaid | number | Mortgage interest paid |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"grossRent"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"grossRent": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Rent received in the year"
},
"otherIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Other taxable income"
},
"allowableExpenses": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Allowable expenses, not mortgage interest"
},
"mortgageInterestPaid": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Mortgage interest paid"
}
}
}Compare pay before and after a salary sacrifice for a pension or an electric company car: income tax, National Insurance and student loan saved, employer National Insurance saved and passed back, benefit-in-kind tax for a car, the drop in take-home pay, and for a pension the cost per pound added and the saving against paying in from net pay.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| grossSalary* | number | Gross annual salary before the sacrifice |
| carP11dValue | number | List (P11D) value of the car; electric car only |
| sacrificeType* | string | pension, or ev-car for an electric car scheme |
| sacrificeAmount* | number | Amount given up from gross pay each year |
| studentLoanPlan | string | Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan) |
| scottishTaxpayer | boolean | True for a Scottish taxpayer (Scottish bands) |
Calculate UK tax on savings interest for a tax year, given the interest, any tax already deducted and other income: the starting rate for savings, the Personal Savings Allowance and the tax due.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| otherIncome | number | Other taxable income |
| grossInterest* | number | Savings interest in the year |
| taxDeductedAtSource | number | Tax already deducted from the interest |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"grossInterest"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"otherIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Other taxable income"
},
"grossInterest": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Savings interest in the year"
},
"taxDeductedAtSource": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Tax already deducted from the interest"
}
}
}Calculate the tax on buying property: Stamp Duty Land Tax in England and Northern Ireland, Land and Buildings Transaction Tax in Scotland or Land Transaction Tax in Wales, by band, with first-time buyer relief, the additional property surcharge and the non-resident surcharge where they apply.
| Argument | Type | Description |
|---|---|---|
| price* | number | Purchase price |
| company | boolean | True when a company is buying |
| country | string | Where the property is; defaults to England or Northern Ireland |
| ukResident | boolean | False adds the non-resident surcharge (England and NI) |
| propertyUse | string | |
| completionDate | string | Completion date; defaults to today |
| firstTimeBuyer | boolean | |
| replacingMainResidence | boolean | |
| ownsOtherResidentialProperty |
Calculate yearly, monthly and weekly UK student loan repayments on an income for a repayment plan (Plan 1, 2, 4 or the postgraduate loan) in a tax year.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Repayment plan |
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| annualIncome* | number | Income a year that repayments are taken from |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"annualIncome",
"plan"
],
"properties": {
"plan": {
"enum": [
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string",
"description": "Repayment plan"
},
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"annualIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Income a year that repayments are taken from"
}
}
}Calculate take-home pay from a UK salary for a tax year: income tax by band (England, Wales and Northern Ireland, or Scotland), employee National Insurance, student loan repayment and pension contributions, with yearly, monthly and weekly take-home and the employer National Insurance and total cost to the employer.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| grossSalary* | number | Gross annual salary in pounds |
| studentLoanPlan | string | Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan) |
| scottishTaxpayer | boolean | True for a Scottish taxpayer (Scottish bands) |
| pensionContributions | number | Employee pension contributions a year, in pounds |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"grossSalary"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"grossSalary": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Gross annual salary in pounds"
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string",
"description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)"
},
"scottishTaxpayer": {
"type": "boolean",
"description": "True for a Scottish taxpayer (Scottish bands)"
},
"pensionContributions": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Employee pension contributions a year, in pounds"
}
}
}Calculate the combined UK tax on income from several sources in one tax year (employment, self-employment, rental profit, dividends and savings interest), allowing for PAYE tax already deducted: income tax, National Insurance, student loan, what is left to pay and take-home.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| employment | number | Employment income (salary) |
| rentalProfit | number | Rental profit |
| dividendIncome | number | Dividends |
| selfEmployment | number | Self-employed profit |
| payeTaxDeducted | number | Income tax already deducted through PAYE |
| savingsInterest | number | Savings interest |
| studentLoanPlan | string | Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan) |
| pensionContributions |
Add VAT to a net price or take it out of a gross price at the standard (20%), reduced (5%) or any other rate, with the net, VAT and gross amounts.
| Argument | Type | Description |
|---|---|---|
| amount* | number | The price |
| direction* | string | add: the amount is net; remove: the amount includes VAT |
| ratePercent | number | VAT rate as a percentage; defaults to 20 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"amount",
"direction"
],
"properties": {
"amount": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "The price"
},
"direction": {
"enum": [
"add",
"remove"
],
"type": "string",
"description": "add: the amount is net; remove: the amount includes VAT"
},
"ratePercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "VAT rate as a percentage; defaults to 20"
}
}
}Say whether and when Making Tax Digital for Income Tax applies to someone, from their qualifying income: self-employment turnover plus property income, before expenses, as on their Self Assessment return. Employment and pension income do not count.
| Argument | Type | Description |
|---|---|---|
| propertyIncome | number | |
| selfEmploymentTurnover* | number |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"selfEmploymentTurnover"
],
"properties": {
"propertyIncome": {
"type": "number",
"default": 0,
"maximum": 100000000,
"minimum": 0
},
"selfEmploymentTurnover": {
"type": "number",
"maximum": 100000000,
"minimum": 0
}
}
}Check whether a UK PAYE tax code (e.g. 1257L, BR, K475, 1257L W1/M1) looks right for a salary and circumstances, explain what it means, and estimate any over- or under-payment. Flat-rate codes (BR, D0, D1) are only judged when hasMultipleJobs is known; without it the verdict is needs_info. Returns a verdict tier; refund figures are estimates, not amounts owed.
| Argument | Type | Description |
|---|---|---|
| taxCode* | string | The code as printed on a payslip or P45 |
| taxYear | string | Tax year the code applies to; defaults to the current one |
| scotland | boolean | True for a Scottish taxpayer |
| grossSalary* | number | Annual gross pay from this job, in pounds |
| monthsOnCode | integer | For emergency codes: how many monthly payslips were paid on it so far |
| hasCompanyCar | boolean | |
| hasMultipleJobs | boolean | Whether the person has another job or pension; omitted when unknown |
| hasPrivateMedical | boolean |
Check whether a turnover is over the UK VAT registration threshold for a tax year, and compare VAT payable under the standard scheme with the Flat Rate Scheme for the business's sector rate, including the first-year discount, with the cheaper scheme and the difference.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| annualTurnover* | number | VAT taxable turnover over 12 months |
| flatRatePercent | number | Flat Rate Scheme percentage for the sector, e.g. 14.5 for IT consultancy |
| vatablePurchases | number | Purchases with VAT a year |
| firstYearOfVatRegistration | boolean |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"annualTurnover"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"annualTurnover": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "VAT taxable turnover over 12 months"
},
"flatRatePercent": {
"type": "number",
"maximum": 20,
"minimum": 0,
"description": "Flat Rate Scheme percentage for the sector, e.g. 14.5 for IT consultancy"
},
"vatablePurchases": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Purchases with VAT a year"
},
"firstYearOfVatRegistration": {
"type": "boolean"
}
}
}Work out whether the domestic VAT reverse charge for construction services applies to an invoice, by HMRC's decision steps. Takes the yes or no answers known so far and returns the next question to answer, or the outcome with what the invoice must say.
| Argument | Type | Description |
|---|---|---|
| answers | object | Answers so far, keyed by question id: supplier-vat, construction-service, vat-rate, employment-business, customer-vat, customer-cis, end-user, five-percent |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"answers": {
"type": "object",
"description": "Answers so far, keyed by question id: supplier-vat, construction-service, vat-rate, employment-business, customer-vat, customer-cis, end-user, five-percent",
"propertyNames": {
"enum": [
"supplier-vat",
"construction-service",
"vat-rate",
"employment-business",
"customer-vat",
"customer-cis",
"end-user",
"five-percent"
],
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
}
}
}Compare a contractor's take-home pay working inside IR35 (deemed employment payment, employer National Insurance) with working outside IR35 through a limited company, from the day rate and working days, for a tax year. It compares pay; it does not decide IR35 status.
| Argument | Type | Description |
|---|---|---|
| dayRate* | number | Day rate charged |
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| workingDays* | number | Days worked in the year |
| accountancyCost | number | Accountancy cost a year |
| businessExpenses | number | Business expenses a year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"dayRate",
"workingDays"
],
"properties": {
"dayRate": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Day rate charged"
},
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"workingDays": {
"type": "number",
"maximum": 366,
"description": "Days worked in the year",
"exclusiveMinimum": 0
},
"accountancyCost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Accountancy cost a year"
},
"businessExpenses": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Business expenses a year"
}
}
}Compare take-home pay as a sole trader with running the same profit through a limited company (salary plus dividends, corporation tax and accountancy cost) for a tax year, with the annual difference and an approximate break-even profit.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| annualProfit* | number | Business profit a year |
| accountancyCost | number | Extra accountancy cost of a company a year; defaults to 2000 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"annualProfit"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"annualProfit": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Business profit a year"
},
"accountancyCost": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Extra accountancy cost of a company a year; defaults to 2000"
}
}
}For a limited company director, work out take-home pay from a chosen salary plus dividends paid from the remaining profit after employer National Insurance and corporation tax, with every tax and the effective rate, for a tax year.
| Argument | Type | Description |
|---|---|---|
| salary* | number | Director's salary for the year |
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| companyProfitBeforeSalary* | number | Company profit before the director's salary |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"companyProfitBeforeSalary",
"salary"
],
"properties": {
"salary": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Director's salary for the year"
},
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"companyProfitBeforeSalary": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Company profit before the director's salary"
}
}
}Convert an hourly rate to the annual salary it adds up to for the hours a week and paid weeks a year given, with take-home pay on that salary for a tax year.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| hourlyRate* | number | Gross pay per hour |
| hoursPerWeek* | number | Hours worked a week |
| studentLoanPlan | string | Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan) |
| paidWeeksPerYear | number | Paid weeks a year; defaults to 52 (holiday is paid) |
| scottishTaxpayer | boolean | True for a Scottish taxpayer (Scottish bands) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hourlyRate",
"hoursPerWeek"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"hourlyRate": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Gross pay per hour"
},
"hoursPerWeek": {
"type": "number",
"maximum": 100,
"description": "Hours worked a week",
"exclusiveMinimum": 0
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string",
"description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)"
},
"paidWeeksPerYear": {
"type": "number",
"maximum": 52,
"description": "Paid weeks a year; defaults to 52 (holiday is paid)",
"exclusiveMinimum": 0
},
"scottishTaxpayer": {
"type": "boolean",
"description": "True for a Scottish taxpayer (Scottish bands)"
}
}
}Convert an annual salary to its gross hourly rate and the take-home pay per hour, for the hours a week and paid weeks a year given, in a tax year.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27". Defaults to the current one. |
| annualSalary* | number | Gross annual salary |
| hoursPerWeek* | number | Hours worked a week |
| studentLoanPlan | string | Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan) |
| paidWeeksPerYear | number | Paid weeks a year; defaults to 52 |
| scottishTaxpayer | boolean | True for a Scottish taxpayer (Scottish bands) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"annualSalary",
"hoursPerWeek"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"annualSalary": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Gross annual salary"
},
"hoursPerWeek": {
"type": "number",
"maximum": 100,
"description": "Hours worked a week",
"exclusiveMinimum": 0
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string",
"description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)"
},
"paidWeeksPerYear": {
"type": "number",
"maximum": 52,
"description": "Paid weeks a year; defaults to 52",
"exclusiveMinimum": 0
},
"scottishTaxpayer": {
"type": "boolean",
"description": "True for a Scottish taxpayer (Scottish bands)"
}
}
}Create and save a draft invoice in the signed-in person's TapTax account from a client name and one or more line items. No saved client, earlier invoice or client email is needed to create it; an email is only needed later, to send it. It is numbered in their sequence, uses their saved business details, and is not sent. Free plans include 3 invoices; paid plans are unlimited.
| Argument | Type | Description |
|---|---|---|
| items* | array | |
| notes | string | |
| dueDate | string | Exact due date; otherwise dueInDays applies |
| dueInDays | integer | Payment terms in days when no dueDate is given (0 = due on receipt) |
| issueDate | string | Defaults to today |
| clientName* | string | |
| clientEmail | string | The client email; required to send the invoice |
| clientAddress | string | |
| vatRatePercent | number | VAT rate for a VAT-registered business, e.g. 20 |
Estimate Self Assessment late filing penalties, late payment penalties and late payment interest on the tax due, from how many days late the return was filed and the tax was paid.
| Argument | Type | Description |
|---|---|---|
| taxDue* | number | Tax due on the return |
| filingDaysLate* | integer | Days after the filing deadline the return was filed |
| paymentDaysLate* | integer | Days after the payment deadline the tax was paid |
| annualInterestRatePercent | number | HMRC's late payment interest rate a year; defaults to 7.75 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"taxDue",
"filingDaysLate",
"paymentDaysLate"
],
"properties": {
"taxDue": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Tax due on the return"
},
"filingDaysLate": {
"type": "integer",
"maximum": 3650,
"minimum": 0,
"description": "Days after the filing deadline the return was filed"
},
"paymentDaysLate": {
"type": "integer",
"maximum": 3650,
"minimum": 0,
"description": "Days after the payment deadline the tax was paid"
},
"annualInterestRatePercent": {
"type": "number",
"maximum": 30,
"minimum": 0,
"description": "HMRC's late payment interest rate a year; defaults to 7.75"
}
}
}Estimate UK income tax and Class 4 National Insurance for a sole trader from turnover and allowable expenses, with the take-home figure, effective and marginal rates, payments on account and tailored tips, from HMRC's published rates for the tax year. Works from the figures given, without a TapTax account.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | UK tax year, e.g. "2026-27" (6 April 2026 to 5 April 2027). Defaults to the current one. |
| expenses | number | Allowable business expenses, in pounds (excluding mileage if businessMiles is given) |
| turnover* | number | Self-employed income before expenses, in pounds |
| otherIncome | number | Other taxable income such as a salary or pension, in pounds |
| businessMiles | number | Business miles driven in a car or van, claimed at the approved mileage rate |
| studentLoanPlan | string | |
| taxDeductedAtSource | number | Tax already paid through PAYE or CIS deductions this year |
| pensionContributions |
Generate invoice numbers: the next number after a given one (keeping its prefix and zero padding), or a run of numbers in a chosen format (prefix, separator, optional year or month, number of digits) from a starting number.
| Argument | Type | Description |
|---|---|---|
| count | integer | How many; defaults to 1 |
| start | integer | First number; defaults to 1 |
| digits | integer | Digits in the number; defaults to 4 |
| prefix | string | Letters, numbers and single hyphens, e.g. INV |
| datePart | string | |
| separator | string | |
| lastNumber | string | The last number used, e.g. INV-0041 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many; defaults to 1"
},
"start": {
"type": "integer",
"maximum": 99999999,
"minimum": 0,
"description": "First number; defaults to 1"
},
"digits": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Digits in the number; defaults to 4"
},
"prefix": {
"type": "string",
"maxLength": 12,
"description": "Letters, numbers and single hyphens, e.g. INV"
},
"datePart": {
"enum": [
"none",
"YYYY",
"YY",
"YYYYMM",
"YYMM"
],
"type": "string"
},
"separator": {
"enum": [
"-",
"/",
".",
""
],
"type": "string"
},
"lastNumber": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The last number used, e.g. INV-0041"
}
}
}Read the signed-in person's own mileage log in their TapTax account for a tax year: total miles, the deductible amount at the approved rates, and the most recent trips.
| Argument | Type | Description |
|---|---|---|
| taxYear | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"taxYear": {
"enum": [
"2024-25",
"2025-26",
"2026-27"
],
"type": "string"
}
}
}List the standard Making Tax Digital quarterly update periods and deadlines for a tax year, and which one is next. Updates are cumulative from 6 April.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | Defaults to the current tax year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"taxYear": {
"enum": [
"2024-25",
"2025-26",
"2026-27"
],
"type": "string",
"description": "Defaults to the current tax year"
}
}
}Read the signed-in person's own TapTax account: their tax year so far, as their dashboard shows it: business income, expenses and profit counted by the filing rule, the estimated income tax and Class 4 NI, how many transactions still need a business-or-personal decision, which quarterly updates they have filed through TapTax, and the next deadline. Needs no figures from the person: everything comes from their records.
| Argument | Type | Description |
|---|---|---|
| taxYear | string | Defaults to the current tax year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"taxYear": {
"enum": [
"2024-25",
"2025-26",
"2026-27"
],
"type": "string",
"description": "Defaults to the current tax year"
}
}
}Read the signed-in person's own invoices from their TapTax account, newest first, with each one's live status (a sent invoice past its due date reads as overdue) and the totals outstanding and overdue. Needs no details from the person.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| status | string | unpaid = sent, viewed or overdue |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"status": {
"enum": [
"all",
"unpaid",
"overdue",
"paid",
"draft"
],
"type": "string",
"default": "all",
"description": "unpaid = sent, viewed or overdue"
}
}
}Read and search the signed-in person's own income and expense records in their TapTax account, newest first. Filter by tax year or dates, type, text in the description, or needsReview=true for the ones still waiting for a business-or-personal decision (the review queue). Needs no details from the person beyond what to look for.
| Argument | Type | Description |
|---|---|---|
| to | string | On or before this date |
| from | string | On or after this date |
| type | string | |
| limit | integer | |
| search | string | Text to find in the description |
| taxYear | string | |
| needsReview | boolean |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "On or before this date"
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "On or after this date"
},
"type": {
"enum": [
"income",
"expense"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"search": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "Text to find in the description"
},
"taxYear": {
"enum": [
"2024-25",
"2025-26",
"2026-27"
],
"type": "string"
},
"needsReview": {
"type": "boolean"
}
}
}Record a business journey in the signed-in person's mileage log. TapTax prices it at the approved mileage rate for the tax year (tiered after 10,000 car miles). Commuting to a permanent workplace is not business mileage. Mileage tracking is on the Pro plan.
| Argument | Type | Description |
|---|---|---|
| to* | string | |
| date* | string | |
| from* | string | |
| miles* | number | Business miles for this trip |
| purpose* | string | |
| vehicle | string | Vans count as car |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"date",
"from",
"to",
"miles",
"purpose"
],
"properties": {
"to": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"from": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"miles": {
"type": "number",
"maximum": 99999,
"description": "Business miles for this trip",
"exclusiveMinimum": 0
},
"purpose": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"vehicle": {
"enum": [
"car",
"motorcycle",
"bicycle"
],
"type": "string",
"default": "car",
"description": "Vans count as car"
}
}
}Record that the client has paid an invoice (dated today). Stops any payment reminders.
| Argument | Type | Description |
|---|---|---|
| invoiceId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoiceId"
],
"properties": {
"invoiceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Plan how much to set aside for tax as a sole trader under Making Tax Digital, from the year's profit or each quarter's profit: the income tax, Class 4 National Insurance and student loan due, monthly and weekly amounts to put away, running totals by quarter with each update deadline, and any first payment on account.
| Argument | Type | Description |
|---|---|---|
| annualProfit | number | Expected profit for the year (split evenly across quarters) |
| studentLoanPlan | string | Student loan plan, if any |
| quarterlyProfits | array | Profit for each quarter, Q1 to Q4, instead of an annual figure |
| firstYearOfTrading | boolean | True in the first year, when the first payment on account is also due |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"annualProfit": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Expected profit for the year (split evenly across quarters)"
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2"
],
"type": "string",
"description": "Student loan plan, if any"
},
"quarterlyProfits": {
"type": "array",
"items": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Profit for the quarter"
},
"maxItems": 4,
"minItems": 4,
"description": "Profit for each quarter, Q1 to Q4, instead of an annual figure"
},
"firstYearOfTrading": {
"type": "boolean",
"description": "True in the first year, when the first payment on account is also due"
}
}
}Prepare an invoice, quote, receipt, credit note or pro forma invoice in TapTax's free document generator, without a TapTax account. Returns the totals and a link that opens the generator with the document filled in, where the person checks it, adds a logo if they like, and downloads the PDF. The details travel in the link itself and are not stored by TapTax.
| Argument | Type | Description |
|---|---|---|
| date | string | Issue date, YYYY-MM-DD; defaults to today |
| kind* | string | Which document |
| lines* | array | |
| notes | string | |
| number | string | Document number, e.g. INV-0042 |
| fromName | string | The business issuing it |
| template | string | Design; defaults to the generator default |
| clientName | string | |
| clientEmail | string |
Get the signed-in person's Making Tax Digital quarterly update ready: the cumulative income, expenses and profit from 6 April to the end of the quarter, what still needs reviewing, and a card with a button that opens TapTax to check and file it. Filing itself always happens in the TapTax app, never from the chat, so HMRC receives the details of the device the person files from.
| Argument | Type | Description |
|---|---|---|
| quarter | integer | 1 = to 5 July, 2 = to 5 October, 3 = to 5 January, 4 = to 5 April |
| taxYear | string | Defaults to the current tax year |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"quarter": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "1 = to 5 July, 2 = to 5 October, 3 = to 5 January, 4 = to 5 April"
},
"taxYear": {
"enum": [
"2024-25",
"2025-26",
"2026-27"
],
"type": "string",
"description": "Defaults to the current tax year"
}
}
}Get one of the signed-in person’s invoices ready to email, with its PDF, to the client address on it from their business name. It opens a card showing exactly what the client will receive (who it goes to, the lines and the total) with a Send button. Nothing is emailed until the person presses Send on that card.
| Argument | Type | Description |
|---|---|---|
| invoiceId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoiceId"
],
"properties": {
"invoiceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Emails the invoice shown on a TapTax send card to its client, when the person presses Send on that card. Needs the one-time token the card was given.
| Argument | Type | Description |
|---|---|---|
| invoiceId* | string | |
| sendToken* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoiceId",
"sendToken"
],
"properties": {
"invoiceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"sendToken": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
}
}Change a transaction the signed-in person owns: mark it business or personal (this is how the review queue is cleared), or correct its category, description, amount or date.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| date | string | |
| amount | number | |
| category | string | |
| description | string | |
| businessOrPersonal | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"amount": {
"type": "number",
"maximum": 10000000,
"exclusiveMinimum": 0
},
"category": {
"enum": [
"costOfGoods",
"constructionIndustryScheme",
"staffCosts",
"travelCosts",
"premisesRunningCosts",
"maintenanceCosts",
"adminCosts",
"advertisingCosts",
"businessEntertainmentCosts",
"interest",
"financialCharges",
"badDebt",
"professionalFees",
"depreciation",
"other",
"turnover"
],
"type": "string"
},
"description": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"businessOrPersonal": {
"enum": [
"business",
"personal"
],
"type": "string"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"assetType",
"proceeds",
"costBasis"
],
"properties": {
"losses": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Capital losses to offset"
},
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"proceeds": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Sale proceeds"
},
"assetType": {
"enum": [
"residential",
"shares",
"badr",
"other"
],
"type": "string",
"description": "badr: Business Asset Disposal Relief"
},
"costBasis": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "What the asset cost"
},
"otherIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Taxable income in the year, which sets the rate"
},
"disposalDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Disposal date; only matters in 2024-25, when rates changed on 30 October 2024"
},
"allowableCosts": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Costs of buying, improving and selling"
}
}
}| employerNIPassback |
| number |
| Share (0 to 1) of the employer NI saving added to the pension; pension only |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"grossSalary",
"sacrificeAmount",
"sacrificeType"
],
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"grossSalary": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Gross annual salary before the sacrifice"
},
"carP11dValue": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "List (P11D) value of the car; electric car only"
},
"sacrificeType": {
"enum": [
"pension",
"ev-car"
],
"type": "string",
"description": "pension, or ev-car for an electric car scheme"
},
"sacrificeAmount": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Amount given up from gross pay each year"
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string",
"description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)"
},
"scottishTaxpayer": {
"type": "boolean",
"description": "True for a Scottish taxpayer (Scottish bands)"
},
"employerNIPassback": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Share (0 to 1) of the employer NI saving added to the pension; pension only"
}
}
}| boolean |
| Drives the additional property surcharge |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"price"
],
"properties": {
"price": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Purchase price"
},
"company": {
"type": "boolean",
"description": "True when a company is buying"
},
"country": {
"enum": [
"england-or-northern-ireland",
"scotland",
"wales"
],
"type": "string",
"description": "Where the property is; defaults to England or Northern Ireland"
},
"ukResident": {
"type": "boolean",
"description": "False adds the non-resident surcharge (England and NI)"
},
"propertyUse": {
"enum": [
"residential",
"non-residential",
"mixed"
],
"type": "string"
},
"completionDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Completion date; defaults to today"
},
"firstTimeBuyer": {
"type": "boolean"
},
"replacingMainResidence": {
"type": "boolean"
},
"ownsOtherResidentialProperty": {
"type": "boolean",
"description": "Drives the additional property surcharge"
}
}
}| number |
| Personal pension contributions |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\". Defaults to the current one."
},
"employment": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Employment income (salary)"
},
"rentalProfit": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Rental profit"
},
"dividendIncome": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Dividends"
},
"selfEmployment": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Self-employed profit"
},
"payeTaxDeducted": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Income tax already deducted through PAYE"
},
"savingsInterest": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Savings interest"
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string",
"description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)"
},
"pensionContributions": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Personal pension contributions"
}
}
}| hasMarriageAllowance | boolean |
| receivesStatePension | boolean |
| marriageAllowanceDirection | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"taxCode",
"grossSalary"
],
"properties": {
"taxCode": {
"type": "string",
"maxLength": 20,
"minLength": 1,
"description": "The code as printed on a payslip or P45"
},
"taxYear": {
"enum": [
"2026-27",
"2025-26",
"2024-25",
"2023-24",
"2022-23"
],
"type": "string",
"description": "Tax year the code applies to; defaults to the current one"
},
"scotland": {
"type": "boolean",
"description": "True for a Scottish taxpayer"
},
"grossSalary": {
"type": "number",
"maximum": 1000000,
"minimum": 0,
"description": "Annual gross pay from this job, in pounds"
},
"monthsOnCode": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "For emergency codes: how many monthly payslips were paid on it so far"
},
"hasCompanyCar": {
"type": "boolean"
},
"hasMultipleJobs": {
"type": "boolean",
"description": "Whether the person has another job or pension; omitted when unknown"
},
"hasPrivateMedical": {
"type": "boolean"
},
"hasMarriageAllowance": {
"type": "boolean"
},
"receivesStatePension": {
"type": "boolean"
},
"marriageAllowanceDirection": {
"enum": [
"transferring",
"receiving"
],
"type": "string"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"clientName",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"unitPrice"
],
"properties": {
"quantity": {
"type": "number",
"default": 1,
"maximum": 99999,
"exclusiveMinimum": 0
},
"unitPrice": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "In pounds, before VAT"
},
"description": {
"type": "string",
"maxLength": 500,
"minLength": 1
}
}
},
"maxItems": 50,
"minItems": 1
},
"notes": {
"type": "string",
"maxLength": 2000
},
"dueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Exact due date; otherwise dueInDays applies"
},
"dueInDays": {
"type": "integer",
"default": 30,
"maximum": 120,
"minimum": 0,
"description": "Payment terms in days when no dueDate is given (0 = due on receipt)"
},
"issueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Defaults to today"
},
"clientName": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"clientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The client email; required to send the invoice"
},
"clientAddress": {
"type": "string",
"maxLength": 500
},
"vatRatePercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "VAT rate for a VAT-registered business, e.g. 20"
}
}
}| number |
| Personal pension contributions paid (relief at source), in pounds |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"turnover"
],
"properties": {
"taxYear": {
"enum": [
"2024-25",
"2025-26",
"2026-27"
],
"type": "string",
"description": "UK tax year, e.g. \"2026-27\" (6 April 2026 to 5 April 2027). Defaults to the current one."
},
"expenses": {
"type": "number",
"default": 0,
"maximum": 10000000,
"minimum": 0,
"description": "Allowable business expenses, in pounds (excluding mileage if businessMiles is given)"
},
"turnover": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Self-employed income before expenses, in pounds"
},
"otherIncome": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Other taxable income such as a salary or pension, in pounds"
},
"businessMiles": {
"type": "number",
"maximum": 200000,
"minimum": 0,
"description": "Business miles driven in a car or van, claimed at the approved mileage rate"
},
"studentLoanPlan": {
"enum": [
"none",
"plan1",
"plan2",
"plan4",
"postgrad"
],
"type": "string"
},
"taxDeductedAtSource": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Tax already paid through PAYE or CIS deductions this year"
},
"pensionContributions": {
"type": "number",
"maximum": 1000000,
"minimum": 0,
"description": "Personal pension contributions paid (relief at source), in pounds"
}
}
}| fromAddress | string |
| paymentTerms | string |
| clientAddress | string |
| vatRatePercent | any | Defaults to 0 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind",
"lines"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Issue date, YYYY-MM-DD; defaults to today"
},
"kind": {
"enum": [
"invoice",
"quote",
"receipt",
"credit_note",
"proforma_invoice"
],
"type": "string",
"description": "Which document"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"quantity",
"unitPrice"
],
"properties": {
"unit": {
"enum": [
"item",
"hour",
"day",
"week",
"month",
"job",
"mile"
],
"type": "string",
"description": "Defaults to item"
},
"quantity": {
"type": "number",
"maximum": 99999,
"exclusiveMinimum": 0
},
"unitPrice": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "In pounds, before VAT"
},
"description": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
}
},
"maxItems": 20,
"minItems": 1
},
"notes": {
"type": "string",
"maxLength": 1000
},
"number": {
"type": "string",
"maxLength": 40,
"description": "Document number, e.g. INV-0042"
},
"fromName": {
"type": "string",
"maxLength": 200,
"description": "The business issuing it"
},
"template": {
"enum": [
"classic",
"plain",
"trades",
"consultancy",
"creative",
"retail"
],
"type": "string",
"description": "Design; defaults to the generator default"
},
"clientName": {
"type": "string",
"maxLength": 200
},
"clientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"fromAddress": {
"type": "string",
"maxLength": 500
},
"paymentTerms": {
"type": "string",
"maxLength": 300
},
"clientAddress": {
"type": "string",
"maxLength": 500
},
"vatRatePercent": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 5
},
{
"type": "number",
"const": 20
}
],
"description": "Defaults to 0"
}
}
}