Driftwatch

Stripe / Stripe API /

Breakingdirection flip: their tools call this safe

purpose can now return "terminal_wifi_certificate", "terminal_wifi_private_key"

What changed

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

Affects purpose on file reachable from 547 operations.

New values: terminal_wifi_certificate, terminal_wifi_private_key.

can now return "terminal_wifi_certificate", "terminal_wifi_private_key"

Who is affected

Code that reads Stripe's file objects, used by 547 Stripe operations.

Before and after

WhereBeforeAfter
file.purpose"account_requirement", "additional_verification", "business_icon", "business_logo", "customer_signature", "dispute_evidence", "document_provider_identity_document", "finance_report_run", "financial_account_statement", "identity_document", "identity_document_downloadable", "issuing_regulatory_reporting", "pci_document", "platform_terms_of_service", "selfie", "sigma_scheduled_query", "tax_document_user_upload", "terminal_android_apk", "terminal_reader_splashscreen""account_requirement", "additional_verification", "business_icon", "business_logo", "customer_signature", "dispute_evidence", "document_provider_identity_document", "finance_report_run", "financial_account_statement", "identity_document", "identity_document_downloadable", "issuing_regulatory_reporting", "pci_document", "platform_terms_of_service", "selfie", "sigma_scheduled_query", "tax_document_user_upload", "terminal_android_apk", "terminal_reader_splashscreen", "terminal_wifi_certificate", "terminal_wifi_private_key"

Code that breaks

switch (response.purpose) {
  // existing branches …
  // no branch for "terminal_wifi_certificate"
  // no branch for "terminal_wifi_private_key"
  default:
    throw new Error("unexpected purpose");
}

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