openactive / open-booking-api

Repository for the Open Booking API specification
Other
2 stars 3 forks source link

Tax Mode does not take exemptions into account #140

Closed nathansalter closed 4 years ago

nathansalter commented 4 years ago

Proposer

Playfinder/Bookteq

Use Case

The Tax Mode is currently set at the Seller level, but this ignores several cases where the VAT rate will change for different opportunities provided by the same seller. For example, if a seller provides both Football pitches and Classrooms in the same feed, the pitches could be at the 20% VAT rate, but classrooms could be at 0% VAT rate.

Furthermore, there are often VAT discounts for booking blocks of time. I'm not certain about the rules of this but many of our Venues when booking 10 or more weeks at a time will also have a 0% VAT rate. There are also situations where specific Customers will require VAT to be charged (e.g. Businesses) where Individuals and small groups are exempt.

Why is this needed?

Currently Tax Mode only allows a global value, which ignores cases where this may not apply.

Proposal

Add a VatRate and VatAmount per Accepted Offer in the Booking API. Possibly also and VatAmount to the PriceSpecification resource.

nickevansuk commented 4 years ago

It's probably worth pointing out a couple of other areas of the spec that are relevant here:

https://openactive.io/open-booking-api/EditorsDraft/#tax-mode

https://openactive.io/open-booking-api/EditorsDraft/#taxation-0

https://openactive.io/open-booking-api/EditorsDraft/#tax-calculation

https://openactive.io/open-booking-api/EditorsDraft/#schema-order

      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 1,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ],

The above should collectively cover this use case, but interested if anything is missing?

nathansalter commented 4 years ago

Thanks for the concise answer here, I think I'd just got a bit lost in the documentation and your answer in https://github.com/openactive/modelling-opportunity-data/issues/246 does imply that this isn't handled