Driftwatch

Stripe / Stripe API /

Breakingdirection flip: their tools call this safe

tax_type can now return "admissions_tax", "attendance_tax", "digital_excise_tax", "entertainment_tax", "gross_receipts_tax", "hospitality_tax", "luxury_tax", "recycling_fee", "resort_tax", "tourism_tax", "utility_users_tax"

What changed

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

Affects tax_type on tax_product_resource_line_item_tax_rate_details reachable from 3 operations.

New values: admissions_tax, attendance_tax, digital_excise_tax, entertainment_tax, gross_receipts_tax, hospitality_tax, luxury_tax, recycling_fee, resort_tax, tourism_tax, utility_users_tax.

can now return "admissions_tax", "attendance_tax", "digital_excise_tax", "entertainment_tax", "gross_receipts_tax", "hospitality_tax", "luxury_tax", "recycling_fee", "resort_tax", "tourism_tax", "utility_users_tax"

Who is affected

Code that reads Stripe's tax_product_resource_line_item_tax_rate_details objects, used by 3 Stripe operations.

Before and after

WhereBeforeAfter
tax_product_resource_line_item_tax_rate_details.tax_type"amusement_tax", "communications_tax", "gst", "hst", "igst", "jct", "lease_tax", "mass_transit_parking_tax", "parking_tax", "pst", "qst", "retail_delivery_fee", "rst", "sales_tax", "service_tax", "vat""admissions_tax", "amusement_tax", "attendance_tax", "communications_tax", "digital_excise_tax", "entertainment_tax", "gross_receipts_tax", "gst", "hospitality_tax", "hst", "igst", "jct", "lease_tax", "luxury_tax", "mass_transit_parking_tax", "parking_tax", "pst", "qst", "recycling_fee", "resort_tax", "retail_delivery_fee", "rst", "sales_tax", "service_tax", "tourism_tax", "utility_users_tax", "vat"
tax_product_resource_tax_rate_details.tax_type"amusement_tax", "communications_tax", "gst", "hst", "igst", "jct", "lease_tax", "mass_transit_parking_tax", "parking_tax", "pst", "qst", "retail_delivery_fee", "rst", "sales_tax", "service_tax", "vat""admissions_tax", "amusement_tax", "attendance_tax", "communications_tax", "digital_excise_tax", "entertainment_tax", "gross_receipts_tax", "gst", "hospitality_tax", "hst", "igst", "jct", "lease_tax", "luxury_tax", "mass_transit_parking_tax", "parking_tax", "pst", "qst", "recycling_fee", "resort_tax", "retail_delivery_fee", "rst", "sales_tax", "service_tax", "tourism_tax", "utility_users_tax", "vat"

Code that breaks

switch (response.tax_type) {
  // existing branches …
  // no branch for "admissions_tax"
  // no branch for "attendance_tax"
  // no branch for "digital_excise_tax"
  // no branch for "entertainment_tax"
  // no branch for "gross_receipts_tax"
  // no branch for "hospitality_tax"
  // no branch for "luxury_tax"
  // no branch for "recycling_fee"
  // no branch for "resort_tax"
  // no branch for "tourism_tax"
  // no branch for "utility_users_tax"
  default:
    throw new Error("unexpected tax_type");
}

Based on Stripe’s published API specification. How severity is decided.