TapTax

UK tax: take-home pay, self-employed and company tax, VAT, stamp duty, invoices and MTD.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
93%
Integridad del esquema
94%
Calidad de los nombres
93%
Riesgo de envenenamiento
100%
Coincidencia de permisos
80%
Cumplimiento del protocolo
100%

Hallazgos (14)

  • LOWTool 'calculate_gross_salary_for_take_home' description lacks action verben calculate_gross_salary_for_take_home
  • LOWTool 'calculate_pro_rata_salary' description lacks action verben calculate_pro_rata_salary
  • LOWTool 'compare_salary_and_dividends' description lacks action verben compare_salary_and_dividends
  • LOWTool 'calculate_contractor_day_rate' description lacks action verben calculate_contractor_day_rate
  • LOWTool 'compare_inside_and_outside_ir35' description lacks action verben compare_inside_and_outside_ir35
  • LOWTool 'calculate_gross_salary_for_take_home' name length outside 3-30 rangeen calculate_gross_salary_for_take_home
  • LOWTool 'calculate_student_loan_repayment' name length outside 3-30 rangeen calculate_student_loan_repayment
  • LOWTool 'calculate_tax_on_multiple_incomes' name length outside 3-30 rangeen calculate_tax_on_multiple_incomes
  • LOWTool 'compare_limited_company_and_sole_trader' name length outside 3-30 rangeen compare_limited_company_and_sole_trader
  • LOWTool 'compare_inside_and_outside_ir35' name length outside 3-30 rangeen compare_inside_and_outside_ir35

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~13,682Tokens (definiciones de herramientas)
~2.1 KBTamaño de respuesta típico
Impacto significativo en la atención (10.69% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "taptax": {
      "url": "https://api.taptax.co.uk/mcp"
    }
  }
}

Puntos de conexión remotos

https://api.taptax.co.uk/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (48)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢estimate_self_employed_tax(taxYear, turnover, expenses, businessMiles, otherIncome, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\" (6 April 2026 to 5 April 2027). Defaults to the current one.",
      "type": "string",
      "enum": [
        "2024-25",
        "2025-26",
        "2026-27"
      ]
    },
    "turnover": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000,
      "description": "Self-employed income before expenses, in pounds"
    },
    "expenses": {
      "default": 0,
      "description": "Allowable business expenses, in pounds (excluding mileage if businessMiles is given)",
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "businessMiles": {
      "description": "Business miles driven in a car or van, claimed at the approved mileage rate",
      "type": "number",
      "minimum": 0,
      "maximum": 200000
    },
    "otherIncome": {
      "description": "Other taxable income such as a salary or pension, in pounds",
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "taxDeductedAtSource": {
      "description": "Tax already paid through PAYE or CIS deductions this year",
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "pensionContributions": {
      "description": "Personal pension contributions paid (relief at source), in pounds",
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "studentLoanPlan": {
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ]
    }
  },
  "required": [
    "turnover"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢check_tax_code(taxCode, grossSalary, taxYear, scotland, hasMultipleJobs, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxCode": {
      "type": "string",
      "minLength": 1,
      "maxLength": 20,
      "description": "The code as printed on a payslip or P45"
    },
    "grossSalary": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000,
      "description": "Annual gross pay from this job, in pounds"
    },
    "taxYear": {
      "description": "Tax year the code applies to; defaults to the current one",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25",
        "2023-24",
        "2022-23"
      ]
    },
    "scotland": {
      "description": "True for a Scottish taxpayer",
      "type": "boolean"
    },
    "hasMultipleJobs": {
      "description": "Whether the person has another job or pension; omitted when unknown",
      "type": "boolean"
    },
    "monthsOnCode": {
      "description": "For emergency codes: how many monthly payslips were paid on it so far",
      "type": "integer",
      "minimum": 1,
      "maximum": 12
    },
    "hasCompanyCar": {
      "type": "boolean"
    },
    "hasPrivateMedical": {
      "type": "boolean"
    },
    "receivesStatePension": {
      "type": "boolean"
    },
    "hasMarriageAllowance": {
      "type": "boolean"
    },
    "marriageAllowanceDirection": {
      "type": "string",
      "enum": [
        "transferring",
        "receiving"
      ]
    }
  },
  "required": [
    "taxCode",
    "grossSalary"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢check_mtd_status(selfEmploymentTurnover, propertyIncome)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "selfEmploymentTurnover": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    },
    "propertyIncome": {
      "default": 0,
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    }
  },
  "required": [
    "selfEmploymentTurnover"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_mtd_deadlines(taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxYear": {
      "description": "Defaults to the current tax year",
      "type": "string",
      "enum": [
        "2024-25",
        "2025-26",
        "2026-27"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_take_home_pay(grossSalary, pensionContributions, studentLoanPlan, scottishTaxpayer, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "grossSalary": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Gross annual salary in pounds"
    },
    "pensionContributions": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Employee pension contributions a year, in pounds"
    },
    "studentLoanPlan": {
      "description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)",
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ]
    },
    "scottishTaxpayer": {
      "description": "True for a Scottish taxpayer (Scottish bands)",
      "type": "boolean"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "grossSalary"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_gross_salary_for_take_home(targetTakeHome, pensionPercent, studentLoanPlan, scottishTaxpayer, taxYear)

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).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "targetTakeHome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Take-home pay wanted a year, in pounds"
    },
    "pensionPercent": {
      "description": "Employee pension as a percentage of gross, e.g. 5",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "studentLoanPlan": {
      "description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)",
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ]
    },
    "scottishTaxpayer": {
      "description": "True for a Scottish taxpayer (Scottish bands)",
      "type": "boolean"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "targetTakeHome"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_salary_sacrifice(grossSalary, sacrificeAmount, sacrificeType, employerNIPassback, carP11dValue, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "grossSalary": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Gross annual salary before the sacrifice"
    },
    "sacrificeAmount": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Amount given up from gross pay each year"
    },
    "sacrificeType": {
      "type": "string",
      "enum": [
        "pension",
        "ev-car"
      ],
      "description": "pension, or ev-car for an electric car scheme"
    },
    "employerNIPassback": {
      "description": "Share (0 to 1) of the employer NI saving added to the pension; pension only",
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "carP11dValue": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "List (P11D) value of the car; electric car only"
    },
    "studentLoanPlan": {
      "description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)",
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ]
    },
    "scottishTaxpayer": {
      "description": "True for a Scottish taxpayer (Scottish bands)",
      "type": "boolean"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "grossSalary",
    "sacrificeAmount",
    "sacrificeType"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_pro_rata_salary(fullTimeSalary, fullTimeUnits, actualUnits, studentLoanPlan, scottishTaxpayer, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "fullTimeSalary": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Full-time annual salary"
    },
    "fullTimeUnits": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 168,
      "description": "Full-time hours (or days) a week, e.g. 37.5"
    },
    "actualUnits": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 168,
      "description": "Hours (or days) actually worked a week, in the same unit"
    },
    "studentLoanPlan": {
      "description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)",
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ]
    },
    "scottishTaxpayer": {
      "description": "True for a Scottish taxpayer (Scottish bands)",
      "type": "boolean"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "fullTimeSalary",
    "fullTimeUnits",
    "actualUnits"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢convert_hourly_rate_to_salary(hourlyRate, hoursPerWeek, paidWeeksPerYear, studentLoanPlan, scottishTaxpayer, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "hourlyRate": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Gross pay per hour"
    },
    "hoursPerWeek": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100,
      "description": "Hours worked a week"
    },
    "paidWeeksPerYear": {
      "description": "Paid weeks a year; defaults to 52 (holiday is paid)",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 52
    },
    "studentLoanPlan": {
      "description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)",
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ]
    },
    "scottishTaxpayer": {
      "description": "True for a Scottish taxpayer (Scottish bands)",
      "type": "boolean"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "hourlyRate",
    "hoursPerWeek"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢convert_salary_to_hourly_rate(annualSalary, hoursPerWeek, paidWeeksPerYear, studentLoanPlan, scottishTaxpayer, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "annualSalary": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Gross annual salary"
    },
    "hoursPerWeek": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100,
      "description": "Hours worked a week"
    },
    "paidWeeksPerYear": {
      "description": "Paid weeks a year; defaults to 52",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 52
    },
    "studentLoanPlan": {
      "description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)",
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ]
    },
    "scottishTaxpayer": {
      "description": "True for a Scottish taxpayer (Scottish bands)",
      "type": "boolean"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "annualSalary",
    "hoursPerWeek"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_student_loan_repayment(annualIncome, plan, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "annualIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Income a year that repayments are taken from"
    },
    "plan": {
      "type": "string",
      "enum": [
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ],
      "description": "Repayment plan"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "annualIncome",
    "plan"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_child_benefit_charge(adjustedNetIncome, annualChildBenefit, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "adjustedNetIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "The higher earner's adjusted net income for the year"
    },
    "annualChildBenefit": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Child Benefit received in the year"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "adjustedNetIncome",
    "annualChildBenefit"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_tax_on_multiple_incomes(employment, payeTaxDeducted, selfEmployment, rentalProfit, dividendIncome, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "employment": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Employment income (salary)"
    },
    "payeTaxDeducted": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Income tax already deducted through PAYE"
    },
    "selfEmployment": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Self-employed profit"
    },
    "rentalProfit": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Rental profit"
    },
    "dividendIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Dividends"
    },
    "savingsInterest": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Savings interest"
    },
    "pensionContributions": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Personal pension contributions"
    },
    "studentLoanPlan": {
      "description": "Student loan plan, if any (plan4 is Scotland, postgrad the postgraduate loan)",
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2",
        "plan4",
        "postgrad"
      ]
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_pension_tax_relief(grossIncome, businessExpenses, currentPensionContribution, targetPensionContribution, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "grossIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Self-employed income before expenses"
    },
    "businessExpenses": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Allowable business expenses"
    },
    "currentPensionContribution": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Personal pension contributions now, a year"
    },
    "targetPensionContribution": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Personal pension contributions planned, a year"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "grossIncome",
    "targetPensionContribution"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_dividend_tax(dividendIncome, otherIncome, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "dividendIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Dividends received in the year"
    },
    "otherIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Other taxable income, such as a salary"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "dividendIncome"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢compare_salary_and_dividends(companyProfitBeforeSalary, salary, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "companyProfitBeforeSalary": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Company profit before the director's salary"
    },
    "salary": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Director's salary for the year"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "companyProfitBeforeSalary",
    "salary"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢compare_limited_company_and_sole_trader(annualProfit, accountancyCost, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "annualProfit": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Business profit a year"
    },
    "accountancyCost": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Extra accountancy cost of a company a year; defaults to 2000"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "annualProfit"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_corporation_tax(taxableProfit, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxableProfit": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Company's taxable profit for the year"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "taxableProfit"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_contractor_day_rate(dayRate, billableDays, hoursPerDay, businessExpenses, accountancyCost, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "dayRate": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Day rate charged"
    },
    "billableDays": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 366,
      "description": "Days billed in a year after holidays, sickness and gaps"
    },
    "hoursPerDay": {
      "description": "Hours in a working day; defaults to 7.5",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 24
    },
    "businessExpenses": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Business expenses a year"
    },
    "accountancyCost": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Accountancy cost a year"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "dayRate",
    "billableDays"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢compare_inside_and_outside_ir35(dayRate, workingDays, businessExpenses, accountancyCost, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "dayRate": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Day rate charged"
    },
    "workingDays": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 366,
      "description": "Days worked in the year"
    },
    "businessExpenses": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Business expenses a year"
    },
    "accountancyCost": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Accountancy cost a year"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "dayRate",
    "workingDays"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_cis_deduction(grossPayment, materialsAmount, cisStatus, annualIncome, expenses, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "grossPayment": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "The payment before deduction"
    },
    "materialsAmount": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Part of the payment that is materials"
    },
    "cisStatus": {
      "type": "string",
      "enum": [
        "registered",
        "unregistered",
        "gross"
      ],
      "description": "registered (20%), unregistered (30%) or gross payment status (0%)"
    },
    "annualIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Expected self-employed income for the year"
    },
    "expenses": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Expected business expenses for the year"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "grossPayment",
    "cisStatus"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢plan_quarterly_tax_set_aside(annualProfit, quarterlyProfits, studentLoanPlan, firstYearOfTrading)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "annualProfit": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Expected profit for the year (split evenly across quarters)"
    },
    "quarterlyProfits": {
      "description": "Profit for each quarter, Q1 to Q4, instead of an annual figure",
      "minItems": 4,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "number",
        "minimum": 0,
        "maximum": 100000000,
        "description": "Profit for the quarter"
      }
    },
    "studentLoanPlan": {
      "description": "Student loan plan, if any",
      "type": "string",
      "enum": [
        "none",
        "plan1",
        "plan2"
      ]
    },
    "firstYearOfTrading": {
      "description": "True in the first year, when the first payment on account is also due",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_mileage_allowance(annualBusinessMiles, vehicleType, taxBand, passengerTrips, averageMilesPerPassengerTrip)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "annualBusinessMiles": {
      "type": "number",
      "minimum": 0,
      "maximum": 500000,
      "description": "Business miles in the year"
    },
    "vehicleType": {
      "description": "Defaults to car (cars and vans)",
      "type": "string",
      "enum": [
        "car",
        "motorcycle",
        "bicycle"
      ]
    },
    "taxBand": {
      "description": "Income tax band, for the saving; defaults to basic",
      "type": "string",
      "enum": [
        "basic",
        "higher"
      ]
    },
    "passengerTrips": {
      "description": "Business trips with a passenger",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    },
    "averageMilesPerPassengerTrip": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "annualBusinessMiles"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢estimate_self_assessment_penalties(taxDue, filingDaysLate, paymentDaysLate, annualInterestRatePercent)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxDue": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Tax due on the return"
    },
    "filingDaysLate": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3650,
      "description": "Days after the filing deadline the return was filed"
    },
    "paymentDaysLate": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3650,
      "description": "Days after the payment deadline the tax was paid"
    },
    "annualInterestRatePercent": {
      "description": "HMRC's late payment interest rate a year; defaults to 7.75",
      "type": "number",
      "minimum": 0,
      "maximum": 30
    }
  },
  "required": [
    "taxDue",
    "filingDaysLate",
    "paymentDaysLate"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_vat(amount, direction, ratePercent)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "The price"
    },
    "direction": {
      "type": "string",
      "enum": [
        "add",
        "remove"
      ],
      "description": "add: the amount is net; remove: the amount includes VAT"
    },
    "ratePercent": {
      "description": "VAT rate as a percentage; defaults to 20",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "amount",
    "direction"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢check_vat_registration(annualTurnover, vatablePurchases, flatRatePercent, firstYearOfVatRegistration, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "annualTurnover": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "VAT taxable turnover over 12 months"
    },
    "vatablePurchases": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Purchases with VAT a year"
    },
    "flatRatePercent": {
      "description": "Flat Rate Scheme percentage for the sector, e.g. 14.5 for IT consultancy",
      "type": "number",
      "minimum": 0,
      "maximum": 20
    },
    "firstYearOfVatRegistration": {
      "type": "boolean"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "annualTurnover"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢check_vat_reverse_charge(answers)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "answers": {
      "description": "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",
      "propertyNames": {
        "type": "string",
        "enum": [
          "supplier-vat",
          "construction-service",
          "vat-rate",
          "employment-business",
          "customer-vat",
          "customer-cis",
          "end-user",
          "five-percent"
        ]
      },
      "additionalProperties": {
        "type": "boolean"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_markup(cost, markupPercent)

Calculate the selling price, profit and the equivalent profit margin from a cost and a markup percentage.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "cost": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Cost of the item or job"
    },
    "markupPercent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000,
      "description": "Markup on cost, as a percentage"
    }
  },
  "required": [
    "cost",
    "markupPercent"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_profit_margin(cost, price, targetMarginPercent)

Calculate the profit margin and markup from a cost and a selling price, or the selling price needed for a target margin.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "cost": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Cost of the item or job"
    },
    "price": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Selling price"
    },
    "targetMarginPercent": {
      "description": "Margin wanted, as a percentage of price",
      "type": "number",
      "minimum": 0,
      "maximum": 99.99
    }
  },
  "required": [
    "cost"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_invoice_due_date(invoiceDate, terms, days, dayOfMonth, customer)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoiceDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Invoice date, or the day the customer received it (YYYY-MM-DD)"
    },
    "terms": {
      "type": "string",
      "enum": [
        "on-receipt",
        "net",
        "end-of-month",
        "net-end-of-month",
        "day-of-following-month",
        "statutory-default"
      ],
      "description": "The payment terms"
    },
    "days": {
      "description": "Days, for net and net-end-of-month terms",
      "type": "integer",
      "minimum": 0,
      "maximum": 365
    },
    "dayOfMonth": {
      "description": "Day, for day-of-following-month terms",
      "type": "integer",
      "minimum": 1,
      "maximum": 31
    },
    "customer": {
      "type": "string",
      "enum": [
        "business",
        "public-authority"
      ]
    }
  },
  "required": [
    "invoiceDate",
    "terms"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_late_payment_interest(amount, dueDate, paidOn)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Unpaid invoice amount, VAT included if charged"
    },
    "dueDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "The last day payment was due"
    },
    "paidOn": {
      "description": "The day it was paid; defaults to today",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "amount",
    "dueDate"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_capital_gains_tax(assetType, proceeds, costBasis, allowableCosts, losses, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "assetType": {
      "type": "string",
      "enum": [
        "residential",
        "shares",
        "badr",
        "other"
      ],
      "description": "badr: Business Asset Disposal Relief"
    },
    "proceeds": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Sale proceeds"
    },
    "costBasis": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "What the asset cost"
    },
    "allowableCosts": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Costs of buying, improving and selling"
    },
    "losses": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Capital losses to offset"
    },
    "otherIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Taxable income in the year, which sets the rate"
    },
    "disposalDate": {
      "description": "Disposal date; only matters in 2024-25, when rates changed on 30 October 2024",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "assetType",
    "proceeds",
    "costBasis"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_rental_income_tax(grossRent, allowableExpenses, mortgageInterestPaid, otherIncome, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "grossRent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Rent received in the year"
    },
    "allowableExpenses": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Allowable expenses, not mortgage interest"
    },
    "mortgageInterestPaid": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Mortgage interest paid"
    },
    "otherIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Other taxable income"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "grossRent"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_savings_interest_tax(grossInterest, taxDeductedAtSource, otherIncome, taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "grossInterest": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Savings interest in the year"
    },
    "taxDeductedAtSource": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Tax already deducted from the interest"
    },
    "otherIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Other taxable income"
    },
    "taxYear": {
      "description": "UK tax year, e.g. \"2026-27\". Defaults to the current one.",
      "type": "string",
      "enum": [
        "2026-27",
        "2025-26",
        "2024-25"
      ]
    }
  },
  "required": [
    "grossInterest"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_stamp_duty(price, country, propertyUse, firstTimeBuyer, ownsOtherResidentialProperty, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "price": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Purchase price"
    },
    "country": {
      "description": "Where the property is; defaults to England or Northern Ireland",
      "type": "string",
      "enum": [
        "england-or-northern-ireland",
        "scotland",
        "wales"
      ]
    },
    "propertyUse": {
      "type": "string",
      "enum": [
        "residential",
        "non-residential",
        "mixed"
      ]
    },
    "firstTimeBuyer": {
      "type": "boolean"
    },
    "ownsOtherResidentialProperty": {
      "description": "Drives the additional property surcharge",
      "type": "boolean"
    },
    "replacingMainResidence": {
      "type": "boolean"
    },
    "ukResident": {
      "description": "False adds the non-resident surcharge (England and NI)",
      "type": "boolean"
    },
    "company": {
      "description": "True when a company is buying",
      "type": "boolean"
    },
    "completionDate": {
      "description": "Completion date; defaults to today",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "price"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢prepare_business_document(kind, lines, vatRatePercent, clientName, clientAddress, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "invoice",
        "quote",
        "receipt",
        "credit_note",
        "proforma_invoice"
      ],
      "description": "Which document"
    },
    "lines": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "quantity": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 99999
          },
          "unit": {
            "description": "Defaults to item",
            "type": "string",
            "enum": [
              "item",
              "hour",
              "day",
              "week",
              "month",
              "job",
              "mile"
            ]
          },
          "unitPrice": {
            "type": "number",
            "minimum": 0,
            "maximum": 10000000,
            "description": "In pounds, before VAT"
          }
        },
        "required": [
          "description",
          "quantity",
          "unitPrice"
        ]
      }
    },
    "vatRatePercent": {
      "description": "Defaults to 0",
      "anyOf": [
        {
          "type": "number",
          "const": 0
        },
        {
          "type": "number",
          "const": 5
        },
        {
          "type": "number",
          "const": 20
        }
      ]
    },
    "clientName": {
      "type": "string",
      "maxLength": 200
    },
    "clientAddress": {
      "type": "string",
      "maxLength": 500
    },
    "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,}$"
    },
    "fromName": {
      "description": "The business issuing it",
      "type": "string",
      "maxLength": 200
    },
    "fromAddress": {
      "type": "string",
      "maxLength": 500
    },
    "number": {
      "description": "Document number, e.g. INV-0042",
      "type": "string",
      "maxLength": 40
    },
    "date": {
      "description": "Issue date, YYYY-MM-DD; defaults to today",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "paymentTerms": {
      "type": "string",
      "maxLength": 300
    },
    "notes": {
      "type": "string",
      "maxLength": 1000
    },
    "template": {
      "description": "Design; defaults to the generator default",
      "type": "string",
      "enum": [
        "classic",
        "plain",
        "trades",
        "consultancy",
        "creative",
        "retail"
      ]
    }
  },
  "required": [
    "kind",
    "lines"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢generate_invoice_numbers(lastNumber, prefix, separator, datePart, digits, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lastNumber": {
      "description": "The last number used, e.g. INV-0041",
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "prefix": {
      "description": "Letters, numbers and single hyphens, e.g. INV",
      "type": "string",
      "maxLength": 12
    },
    "separator": {
      "type": "string",
      "enum": [
        "-",
        "/",
        ".",
        ""
      ]
    },
    "datePart": {
      "type": "string",
      "enum": [
        "none",
        "YYYY",
        "YY",
        "YYYYMM",
        "YYMM"
      ]
    },
    "digits": {
      "description": "Digits in the number; defaults to 4",
      "type": "integer",
      "minimum": 1,
      "maximum": 8
    },
    "start": {
      "description": "First number; defaults to 1",
      "type": "integer",
      "minimum": 0,
      "maximum": 99999999
    },
    "count": {
      "description": "How many; defaults to 1",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_tax_position(taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxYear": {
      "description": "Defaults to the current tax year",
      "type": "string",
      "enum": [
        "2024-25",
        "2025-26",
        "2026-27"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_transactions(taxYear, from, to, type, search, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxYear": {
      "type": "string",
      "enum": [
        "2024-25",
        "2025-26",
        "2026-27"
      ]
    },
    "from": {
      "description": "On or after this date",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "to": {
      "description": "On or before this date",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "type": {
      "type": "string",
      "enum": [
        "income",
        "expense"
      ]
    },
    "search": {
      "description": "Text to find in the description",
      "type": "string",
      "minLength": 2,
      "maxLength": 100
    },
    "needsReview": {
      "type": "boolean"
    },
    "limit": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_mileage_summary(taxYear)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxYear": {
      "type": "string",
      "enum": [
        "2024-25",
        "2025-26",
        "2026-27"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡add_transaction(type, amount, date, description, category, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "income",
        "expense"
      ]
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10000000,
      "description": "In pounds, VAT included"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "The date on the receipt or of the payment"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "Supplier or client, and what it was for"
    },
    "category": {
      "type": "string",
      "enum": [
        "costOfGoods",
        "constructionIndustryScheme",
        "staffCosts",
        "travelCosts",
        "premisesRunningCosts",
        "maintenanceCosts",
        "adminCosts",
        "advertisingCosts",
        "businessEntertainmentCosts",
        "interest",
        "financialCharges",
        "badDebt",
        "professionalFees",
        "depreciation",
        "other",
        "turnover"
      ],
      "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": {
      "default": false,
      "description": "True for a personal (non-business) payment",
      "type": "boolean"
    }
  },
  "required": [
    "type",
    "amount",
    "date",
    "description",
    "category"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_transaction(id, businessOrPersonal, category, description, amount, ...)

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.

Esquema de entrada

{
  "type": "object",
  "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)$"
    },
    "businessOrPersonal": {
      "type": "string",
      "enum": [
        "business",
        "personal"
      ]
    },
    "category": {
      "type": "string",
      "enum": [
        "costOfGoods",
        "constructionIndustryScheme",
        "staffCosts",
        "travelCosts",
        "premisesRunningCosts",
        "maintenanceCosts",
        "adminCosts",
        "advertisingCosts",
        "businessEntertainmentCosts",
        "interest",
        "financialCharges",
        "badDebt",
        "professionalFees",
        "depreciation",
        "other",
        "turnover"
      ]
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10000000
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪log_mileage_trip(date, from, to, miles, vehicle, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "from": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "to": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "miles": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 99999,
      "description": "Business miles for this trip"
    },
    "vehicle": {
      "default": "car",
      "description": "Vans count as car",
      "type": "string",
      "enum": [
        "car",
        "motorcycle",
        "bicycle"
      ]
    },
    "purpose": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    }
  },
  "required": [
    "date",
    "from",
    "to",
    "miles",
    "purpose"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_invoices(status, limit)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "status": {
      "default": "all",
      "description": "unpaid = sent, viewed or overdue",
      "type": "string",
      "enum": [
        "all",
        "unpaid",
        "overdue",
        "paid",
        "draft"
      ]
    },
    "limit": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_invoice(clientName, clientEmail, clientAddress, items, issueDate, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "clientName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "clientEmail": {
      "description": "The client email; required to send the invoice",
      "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,}$"
    },
    "clientAddress": {
      "type": "string",
      "maxLength": 500
    },
    "items": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "quantity": {
            "default": 1,
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 99999
          },
          "unitPrice": {
            "type": "number",
            "minimum": 0,
            "maximum": 10000000,
            "description": "In pounds, before VAT"
          }
        },
        "required": [
          "description",
          "unitPrice"
        ]
      }
    },
    "issueDate": {
      "description": "Defaults to today",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "dueDate": {
      "description": "Exact due date; otherwise dueInDays applies",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "dueInDays": {
      "default": 30,
      "description": "Payment terms in days when no dueDate is given (0 = due on receipt)",
      "type": "integer",
      "minimum": 0,
      "maximum": 120
    },
    "vatRatePercent": {
      "description": "VAT rate for a VAT-registered business, e.g. 20",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "notes": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "clientName",
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴send_invoice(invoiceId)

Email an invoice with its PDF to the client address on it, from the person's business name. This sends a real email to the client.

Esquema de entrada

{
  "type": "object",
  "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)$"
    }
  },
  "required": [
    "invoiceId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴mark_invoice_paid(invoiceId)

Record that the client has paid an invoice (dated today). Stops any payment reminders.

Esquema de entrada

{
  "type": "object",
  "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)$"
    }
  },
  "required": [
    "invoiceId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢prepare_quarterly_update(taxYear, quarter)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "taxYear": {
      "description": "Defaults to the current tax year",
      "type": "string",
      "enum": [
        "2024-25",
        "2025-26",
        "2026-27"
      ]
    },
    "quarter": {
      "description": "1 = to 5 July, 2 = to 5 October, 3 = to 5 January, 4 = to 5 April",
      "type": "integer",
      "minimum": 1,
      "maximum": 4
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada48 herramientas