API Updates - Detailed Breakdown

On September 1, 2026, we're shipping a set of breaking changes to the Brushfire API. These will impact all integrations using the affected endpoints, regardless of the API version sent in the header. Previously we let you know what areas would be impacted, but below is exactly what's changing, where, and what to do about it.

If you have questions or need help planning your migration, reach out to us — we're glad to work through it with you.

Full list of affected endpoints 

GET /cart/{cartId}

  • Removed from output: deliveryFee, shippingId, shippingIdName, shippingIsElectronic, shippingIsPOS, deliveryMethods[], orderFee

GET /cart/{cartId}/events/{eventId}

  • Removed from output: deliveryFee, shippingId, shippingIdName, shippingIsElectronic, shippingIsPOS, deliveryMethods[], orderFee

POST /cart/{cartId}/events/{eventId}

  • Removed from input: shippingId, unitDelivery, deliveryFee
  • Removed from output: deliveryFee, shippingId, shippingIdName, shippingIsElectronic, shippingIsPOS, deliveryMethods[], orderFee

GET /cart/{cartId}/events/{eventId}/attendees/{attendeeId}

  • Removed from output: unitDelivery

POST /cart/{cartId}/events/{eventId}/attendees/{attendeeId}

  • Removed from input: unitDelivery
  • Removed from output: unitDelivery

POST /events

  • contactPhone must be submitted in E.164 format (e.g. +15551234567)
  • Removed input fields: taxRate, orderFeePercent

GET /events/{eventId}/orders

  • Removed: deliveryTotal, feesTotal, paymentMethodId, paymentMethod, paymentNumber, transactionId, externalInvoiceId, orderFee
  • Renamed: paidInFullpaymentReceived (also on nested payments[])

GET /events/{eventId}/types

  • Removed from each attendee/ticket type: fee, tax, taxRate, orderFeePercent

POST /exchanges

  • Removed from each attendee in the response: deliveries

GET /exchanges/{exchangeId}

  • Removed from each attendee in the response: deliveries

PUT /exchanges/{exchangeId}

  • Removed from each attendee in the response: deliveries

GET /orders

  • Removed: deliveryTotal, feesTotal, paymentMethodId, paymentMethod, paymentNumber, transactionId, externalInvoiceId, orderFee
  • Renamed: paidInFullpaymentReceived (also on nested payments[])

POST /orders

  • contactPhone must be submitted in E.164 format (required field)
  • Renamed: paidInFullpaymentReceived

POST /orders/direct

  • phone must be submitted in E.164 format
  • Removed input field: shipMethod

POST /orders/pos

  • contactPhone must be submitted in E.164 format
  • Renamed: paidInFullpaymentReceived

POST /orders/reader/start

  • contactPhone must be submitted in E.164 format

POST /orders/sms

  • phoneNumber must be submitted in E.164 format

POST /orders/terminal

  • contactPhone must be submitted in E.164 format

GET /orders/{orderId}

  • Removed: orderFee, deliveryTotal, feesTotal, paymentMethod, transactionId, transactionTotal, externalInvoiceId
  • Renamed: paidInFullpaymentReceived (also on nested payments[])
  • Nested relatedOrders[]: removed transactionId, transactionTotal
  • Nested attendees[]: removed unitDelivery

GET /sessions/{sessionId}/orders/{orderId}

  • Removed: paymentMethod, deliveryMethod

Order webhooks

  • Removed: shippingName, shippingAddress, shippingFirstName, shippingLastName, shippingOrganization, shippingStreet1, shippingStreet2, shippingCity, shippingRegion, shippingPostal, shippingCountry, deliveryMethod
  • Renamed: paidInFullpaymentReceived in the order payload

What happens if I don't update by September 1? 

Starting September 1, 2026, all these changes go live on the Brushfire API — for all API Versions — there's no fallback or transition period. Integrations that haven't been updated may see:

Missing data: Fields like PaymentMethod, TransactionId, OrderFee, DeliveryFee, and delivery-related fields will no longer be returned in API responses. If your integration expects these fields, it may throw errors, show blank/null values, or break depending on how your code handles missing data.

Rejected or ignored input: Fields like ShippingId, DeliveryFee, UnitDelivery, and PaidInFull will no longer be accepted as before. Depending on how your integration sends them, this could result in request errors or the values simply having no effect.

Format errors: Phone numbers not sent in E.164 format (e.g. +14155552671) will be rejected on input starting September 1.

Bottom line: if you haven't migrated by September 1, expect your integration to behave unpredictably — anywhere from silent data gaps to outright request failures, depending on the specific field and how your code is built. We strongly recommend testing against the updated fields before that date rather than waiting to see what breaks.