Tax

OCAPI supports tax-inclusive and tax-exclusive pricing for tickets, items, booking fees, and other monetary values.

Monetary values are returned as the following properties to support various tax calculations:

  • valueIncludingTax : The monetary value including tax.
  • valueExcludingTax : The monetary value excluding tax.
  • tax : The amount of tax.

Retrieving tax for tickets and items

Tax values for tickets and items can be retrieved using the following endpoints:

The monetary values returned by these endpoints can be used to calculate the total tax for an order before the order is created. However, for tax-exclusive price modes, the tax values should be considered an estimated amount only, as the total tax for an order may differ due to rounding.

Tax on loyalty rewards and promotions

In some cases, a loyalty member may have a reward which will change the price of an item. Additionally, a promotion may be applied to the item, requiring tax to be recalculated.

For fixed tax rates (e.g., $1.00 for alcohol), the recalculated tax may differ significantly from the actual tax.

Promotion is calculated based on full item/ticket price and tax value from discounted price value as in the example below.

Copy
Copied
{
  "title": "Medium drink",
  "displayPriority": 3,
  "itemId": "0002-700716",
  "prices": [
    {
      "price": {
        "valueIncludingTax": 1.6,
        "valueExcludingTax": 1.38,
        "tax": 0.22
      },
      "isDefault": true,
      "restrictions": [],
      "rewardId": null,
      "discount": null,
      "discountId": null
    },
    {
      "price": {
        "valueIncludingTax": 1.12,
        "valueExcludingTax": 0.97,
        "tax": 0.15
      },
      "isDefault": false,
      "restrictions": ["MemberReward"],
      "rewardId": 5016,
      "discount": {
        "calculation": {
          "percentageOff": 30.0,
          "type": "PercentageOff"
        },
        "amountSaved": {
          "valueIncludingTax": 0.48,
          "valueExcludingTax": 0.41,
          "tax": 0.07
        }
      },
      "discountId": "0002-0000000001"
    }
  ]
}

Price modes and limitations

Promotions can be applied to prices that already include taxes, or prices that exclude taxes, depending on the cinema site's configuration in Vista.

For instance, consider a scenario where a $1.00 discount is calculated based on a tax-inclusive price, valueIncludingTax. This is the default tax calculation price mode and can be applied to tickets and items.

When a tax-exclusive price mode is enabled, the discount $1.00 will be based on the tax-exclusive price, valueExcludingTax. The tax value will be calculated in addition to the discounted price and reflected in amountSaved property.

NOTE

Promotion calculations for tax-exclusive cinema sites have limitations, such as item class overrides of the price mode, items ordered as part of ticket packages, subscription purchases, and tickets.

Tax on variable-priced items

Tax information for variable-priced items is not available in the item profile. The tax will only be available once the item has been added to the order at the chosen price.

Retrieving tax for orders

When an order is populated (e.g., adding tickets or items) the tax is calculated by the cinema site for the individual order lines and the entire order. These values are returned by OCAPI and can be treated as the final tax amount.

Use the GetOrder endpoint to retrieve the tax values for an in-progress order.

Copy
Copied
{
  "order": {
    "id": "cbe9ece3fd1c4dac844d93050a372c39",
    "type": "Standard",
    "status": "InProgress",
    "totalPrice": {
      "valueIncludingTax": 1.6,
      "valueExcludingTax": 1.38,
      "tax": 0.22
    },
    "booking": {
      "mode": "Paid",
      "totalBookingFee": {
        "valueIncludingTax": 0.0,
        "valueExcludingTax": 0.0,
        "tax": 0.0
      }
    },
    "showtimes": [],
    "items": [
      {
        "id": "a1b0fd21-4275-46b5-ae08-44b0c07ada8f",
        "itemId": "0002-700716",
        "type": "Normal",
        "price": {
          "valueIncludingTax": 1.6,
          "valueExcludingTax": 1.38,
          "tax": 0.22
        },
        "amountSaved": {
          "valueIncludingTax": 0.0,
          "valueExcludingTax": 0.0,
          "tax": 0.0
        }
      }
    ],
    "amountSaved": {
      "valueIncludingTax": 0.0,
      "valueExcludingTax": 0.0,
      "tax": 0.0
    },
    "tip": {
      "amount": {
        "valueIncludingTax": 0.0,
        "valueExcludingTax": 0.0,
        "tax": 0.0
      }
    }
  }
}
NOTE

Some properties have been omitted from the code snippet above for brevity.