Functional Weave
Code in Rust

legal.disbursements-vat@1.0.1

vectors.json

9,544 bytes · view raw

[
 {
  "name": "a court fee paid on the client's behalf with their authority, itemised at cost: a disbursement",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "disbursement",
   "failedConditions": [],
   "reason": "all eight conditions of VAT Notice 700 section 25.1.1 are met: pass the cost on at the exact amount, outside the value of your supply, with no VAT added"
  }
 },
 {
  "name": "actedAsAgent alone failing makes it a recharge",
  "args": [
   {
    "actedAsAgent": false,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "actedAsAgent"
   ],
   "reason": "not a disbursement for VAT purposes (actedAsAgent not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "clientReceivedAndUsed alone failing makes it a recharge",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": false,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "clientReceivedAndUsed"
   ],
   "reason": "not a disbursement for VAT purposes (clientReceivedAndUsed not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "clientResponsibleToPay alone failing makes it a recharge",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": false,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "clientResponsibleToPay"
   ],
   "reason": "not a disbursement for VAT purposes (clientResponsibleToPay not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "clientAuthorisedPayment alone failing makes it a recharge",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": false,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "clientAuthorisedPayment"
   ],
   "reason": "not a disbursement for VAT purposes (clientAuthorisedPayment not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "clientKnewThirdParty alone failing makes it a recharge",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": false,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "clientKnewThirdParty"
   ],
   "reason": "not a disbursement for VAT purposes (clientKnewThirdParty not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "separatelyItemised alone failing makes it a recharge",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": false,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "separatelyItemised"
   ],
   "reason": "not a disbursement for VAT purposes (separatelyItemised not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "exactAmountRecovered alone failing makes it a recharge",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": false,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "exactAmountRecovered"
   ],
   "reason": "not a disbursement for VAT purposes (exactAmountRecovered not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "additionalToOwnSupply alone failing makes it a recharge",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": false
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "additionalToOwnSupply"
   ],
   "reason": "not a disbursement for VAT purposes (additionalToOwnSupply not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "the solicitor's own train fare: not received by the client, not additional to the solicitor's supply",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": false,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": false
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "clientReceivedAndUsed",
    "additionalToOwnSupply"
   ],
   "reason": "not a disbursement for VAT purposes (clientReceivedAndUsed, additionalToOwnSupply not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "a bank's telegraphic transfer fee (Notice 700 25.1.3 example 1): supplied to the solicitor, not as agent",
  "args": [
   {
    "actedAsAgent": false,
    "clientReceivedAndUsed": false,
    "clientResponsibleToPay": false,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "actedAsAgent",
    "clientReceivedAndUsed",
    "clientResponsibleToPay"
   ],
   "reason": "not a disbursement for VAT purposes (actedAsAgent, clientReceivedAndUsed, clientResponsibleToPay not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "a search fee passed on with a handling mark-up",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": true,
    "exactAmountRecovered": false,
    "additionalToOwnSupply": true
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "exactAmountRecovered"
   ],
   "reason": "not a disbursement for VAT purposes (exactAmountRecovered not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "nothing met: every condition is listed, in HMRC's order",
  "args": [
   {
    "actedAsAgent": false,
    "clientReceivedAndUsed": false,
    "clientResponsibleToPay": false,
    "clientAuthorisedPayment": false,
    "clientKnewThirdParty": false,
    "separatelyItemised": false,
    "exactAmountRecovered": false,
    "additionalToOwnSupply": false
   }
  ],
  "expect": {
   "treatment": "recharge",
   "failedConditions": [
    "actedAsAgent",
    "clientReceivedAndUsed",
    "clientResponsibleToPay",
    "clientAuthorisedPayment",
    "clientKnewThirdParty",
    "separatelyItemised",
    "exactAmountRecovered",
    "additionalToOwnSupply"
   ],
   "reason": "not a disbursement for VAT purposes (actedAsAgent, clientReceivedAndUsed, clientResponsibleToPay, clientAuthorisedPayment, clientKnewThirdParty, separatelyItemised, exactAmountRecovered, additionalToOwnSupply not met): include the cost in the value of your supply and charge VAT on it at the rate of your main supply"
  }
 },
 {
  "name": "a condition left unanswered is an error, not a quiet recharge",
  "args": [
   {
    "actedAsAgent": true,
    "clientReceivedAndUsed": true,
    "clientResponsibleToPay": true,
    "clientAuthorisedPayment": true,
    "clientKnewThirdParty": true,
    "separatelyItemised": null,
    "exactAmountRecovered": true,
    "additionalToOwnSupply": true
   }
  ],
  "expectError": "separatelyItemised must be true or false"
 }
]