Properties
| Name | Type | Description |
|---|---|---|
| periodKey | string | Period key matching an open obligation (e.g., "23AA") |
| vatDueSales | number | Box 1: VAT due on sales and other outputs |
| vatDueAcquisitions | number | Box 2: VAT due on acquisitions from EC member states |
| totalVatDue | number | Box 3: Total VAT due (Box 1 + Box 2) |
| vatReclaimedCurrPeriod | number | Box 4: VAT reclaimed on purchases |
| netVatDue | number | Box 5: Difference between Box 3 and Box 4 |
| totalValueSalesExVAT | number | Box 6: Total value of sales excluding VAT |
| totalValuePurchasesExVAT | number | Box 7: Total value of purchases excluding VAT |
| totalValueGoodsSuppliedExVAT | number | Box 8: Total value of goods supplied to EC member states (ex VAT) |
| totalAcquisitionsExVAT | number | Box 9: Total acquisitions from EC member states (ex VAT) |
| finalised | boolean | Declaration that the submission is a final return for the period |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/VatReturnRequest",
"title": "VatReturnRequest",
"type": "object",
"required": [
"periodKey",
"vatDueSales",
"vatDueAcquisitions",
"totalVatDue",
"vatReclaimedCurrPeriod",
"netVatDue",
"totalValueSalesExVAT",
"totalValuePurchasesExVAT",
"totalValueGoodsSuppliedExVAT",
"totalAcquisitionsExVAT",
"finalised"
],
"properties": {
"periodKey": {
"type": "string",
"description": "Period key matching an open obligation (e.g., \"23AA\")"
},
"vatDueSales": {
"type": "number",
"description": "Box 1: VAT due on sales and other outputs"
},
"vatDueAcquisitions": {
"type": "number",
"description": "Box 2: VAT due on acquisitions from EC member states"
},
"totalVatDue": {
"type": "number",
"description": "Box 3: Total VAT due (Box 1 + Box 2)"
},
"vatReclaimedCurrPeriod": {
"type": "number",
"description": "Box 4: VAT reclaimed on purchases"
},
"netVatDue": {
"type": "number",
"description": "Box 5: Difference between Box 3 and Box 4"
},
"totalValueSalesExVAT": {
"type": "number",
"description": "Box 6: Total value of sales excluding VAT"
},
"totalValuePurchasesExVAT": {
"type": "number",
"description": "Box 7: Total value of purchases excluding VAT"
},
"totalValueGoodsSuppliedExVAT": {
"type": "number",
"description": "Box 8: Total value of goods supplied to EC member states (ex VAT)"
},
"totalAcquisitionsExVAT": {
"type": "number",
"description": "Box 9: Total acquisitions from EC member states (ex VAT)"
},
"finalised": {
"type": "boolean",
"description": "Declaration that the submission is a final return for the period"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/hmrc-vatreturnrequest"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.