Brushfire Orders API
The Orders API from Brushfire — 11 operation(s) for orders.
The Orders API from Brushfire — 11 operation(s) for orders.
openapi: 3.0.1
info:
title: 'Brushfire API: Version 2025-07-22 AccessCodes Orders API'
version: '2025-07-22'
description: 'The Brushfire REST API provides programmatic access to the Brushfire event ticketing and registration platform. It covers events, ticket types, sections and seats, attendees, orders, the shopping cart and checkout flow, groups, sessions and check-in, promotions and access codes, payment profiles, and webhooks (Hooks). Authenticate by sending your App Key (requested at https://developer.brushfire.com/key) in the Authorization header. The API is date-versioned: send the desired version in the api-version request header (for example, 2025-07-22). This document is the live specification published at api.brushfire.com/swagger.'
contact:
name: Brushfire Developers
url: https://developer.brushfire.com
servers:
- url: https://api.brushfire.com
description: Brushfire API (date-versioned via the api-version header)
tags:
- name: Orders
paths:
/orders:
get:
tags:
- Orders
summary: Gets list of orders by eventId and/or a date range.
parameters:
- name: eventId
in: query
description: An integer or a GUID that corresponds to a specific event. Only required if there is no startsAt or endsAt.
schema:
type: string
- name: startsAt
in: query
description: Optional start date to filter list
schema:
type: string
format: date-time
- name: endsAt
in: query
description: Optional end date to filter list
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderListOutput'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderListOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
post:
tags:
- Orders
summary: Create an order from an existing cart
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrderCreateInput'
text/json:
schema:
$ref: '#/components/schemas/OrderCreateInput'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OrderCreateInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OrderCreateOutput'
text/json:
schema:
$ref: '#/components/schemas/OrderCreateOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/{orderId}:
get:
tags:
- Orders
summary: Retrieve a single order
parameters:
- name: orderId
in: path
description: A string (orderKey) or a GUID representing a specific order
required: true
schema:
type: string
- name: accessKey
in: query
description: The Access Key for the user context
schema:
type: string
- name: qrSize
in: query
description: The width and height of the QR Code. If blank, no QR will be sent.
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OrderSingleOutput'
text/json:
schema:
$ref: '#/components/schemas/OrderSingleOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/{orderId}/fields:
get:
tags:
- Orders
summary: Retrieve fields for an order
parameters:
- name: orderId
in: path
description: A string (orderKey) or a GUID representing a specific order
required: true
schema:
type: string
- name: accessKey
in: query
description: The Access Key for the user context
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FieldOutput'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/FieldOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
post:
tags:
- Orders
summary: Update fields for an order
parameters:
- name: orderId
in: path
description: A string (orderKey) or a GUID representing a specific order
required: true
schema:
type: string
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/FieldUpdateInput'
text/json:
schema:
$ref: '#/components/schemas/FieldUpdateInput'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FieldUpdateInput'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FieldOutput'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/FieldOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/{orderId}/print:
get:
tags:
- Orders
summary: Retrieve the printable resources for a single order
parameters:
- name: orderId
in: path
description: A string (orderKey) or a GUID representing a specific order
required: true
schema:
type: string
- name: type
in: query
description: A string that is one of "Ticket", "ETicket", or "Namebadge"
schema:
$ref: '#/components/schemas/PrintType'
- name: format
in: query
description: A string that is one of "PDF", "PNG", "JPG", "GIF", "BMP" or "TIFF"
schema:
$ref: '#/components/schemas/PrintFormat'
- name: imageDpi
in: query
description: An int representing the dots per inch of the images produced that is 72, 96, 150, 300 or 600. 0 for PDF
schema:
type: integer
format: int32
default: 0
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: string
format: byte
text/json:
schema:
type: array
items:
type: string
format: byte
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/{orderId}/resend:
post:
tags:
- Orders
summary: Resend a confirmation for a single order
parameters:
- name: orderId
in: path
description: A string (orderKey) or a GUID representing a specific order
required: true
schema:
type: string
requestBody:
description: Contains optional access key
content:
application/json:
schema:
$ref: '#/components/schemas/OrderConfirmationResendInput'
text/json:
schema:
$ref: '#/components/schemas/OrderConfirmationResendInput'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OrderConfirmationResendInput'
responses:
'200':
description: OK
content:
application/json:
schema:
type: boolean
text/json:
schema:
type: boolean
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/direct:
post:
tags:
- Orders
summary: Create cart-less order for free, general admission events with no fields.
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrderCreateDirectInput'
text/json:
schema:
$ref: '#/components/schemas/OrderCreateDirectInput'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OrderCreateDirectInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResultOutput'
text/json:
schema:
$ref: '#/components/schemas/OrderResultOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/helpdesk/{email}:
get:
tags:
- Orders
summary: Retrieve orders that match provided email
parameters:
- name: email
in: path
description: An email to search across order email fields
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderHelpdeskOutput'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrderHelpdeskOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/pos:
post:
tags:
- Orders
summary: Create a point of sale order from an existing cart
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrderCreatePOSInput'
text/json:
schema:
$ref: '#/components/schemas/OrderCreatePOSInput'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OrderCreatePOSInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OrderCreateOutput'
text/json:
schema:
$ref: '#/components/schemas/OrderCreateOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/print:
post:
tags:
- Orders
summary: Retrieve the printable resources for multiple orders
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrderPrintInput'
text/json:
schema:
$ref: '#/components/schemas/OrderPrintInput'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OrderPrintInput'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: string
format: byte
text/json:
schema:
type: array
items:
type: string
format: byte
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/reader/start:
post:
tags:
- Orders
summary: Prepares an order to be paid for with a Square or Stripe Reader.
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrderReaderStartInput'
text/json:
schema:
$ref: '#/components/schemas/OrderReaderStartInput'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OrderReaderStartInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OrderReaderStartOutput'
text/json:
schema:
$ref: '#/components/schemas/OrderReaderStartOutput'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
/orders/sms:
post:
tags:
- Orders
summary: Sends SMS messages to the provided phone number (only US and Canada)
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrderSmsInput'
text/json:
schema:
$ref: '#/components/schemas/OrderSmsInput'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OrderSmsInput'
responses:
'200':
description: OK
content:
application/json:
schema:
type: boolean
text/json:
schema:
type: boolean
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiModelError'
text/json:
schema:
$ref: '#/components/schemas/ApiModelError'
security:
- apiKey: []
components:
schemas:
InvoiceRelativeDays:
enum:
- UponReceipt
- SevenDaysAfterOrder
- FourteenDaysAfterOrder
- ThirtyDaysAfterOrder
- ThirtyDaysBeforeEvent
- FourteenDaysBeforeEvent
- SevenDaysBeforeEvent
- DueByEvent
type: string
OrderListOutput:
type: object
properties:
Id:
type: string
format: uuid
OrderKey:
type: string
nullable: true
OrderedAt:
type: string
format: date-time
OrderedAtLocal:
type: string
format: date-time
IsPOS:
type: boolean
IsKiosk:
type: boolean
IsApp:
type: boolean
AcctCode:
type: string
nullable: true
ObjectNumber:
type: integer
format: int64
IsAdjustment:
type: boolean
BillingFirstName:
type: string
nullable: true
BillingLastName:
type: string
nullable: true
HostAddress:
type: string
nullable: true
ThirdPartyCustomerId:
type: string
nullable: true
SubTotal:
type: number
format: double
UndistributedFees:
type: number
format: double
OrderTotal:
type: number
format: double
AttendeeTotal:
type: number
format: double
DiscountTotal:
type: number
format: double
FeeTotal:
type: number
format: double
TaxTotal:
type: number
format: double
DeliveryTotal:
type: number
description: Deprecated. Delivery has been folded into API.Models.OrderListOutput.FeeTotal; this property is kept for backwards compatibility but should be ignored.
format: double
FeesTotal:
type: number
format: double
Payments:
type: array
items:
$ref: '#/components/schemas/OrderListPaymentOutput'
nullable: true
TransactionTotal:
type: number
format: double
readOnly: true
PaymentMethodId:
type: string
format: uuid
readOnly: true
PaymentMethod:
type: string
nullable: true
readOnly: true
PaymentNumber:
type: string
nullable: true
readOnly: true
TransactionId:
type: string
nullable: true
readOnly: true
ExternalInvoiceId:
type: string
nullable: true
readOnly: true
Summary:
type: string
nullable: true
ContactEmail:
type: string
nullable: true
ContactPhone:
type: string
nullable: true
OrderFee:
type: number
description: Deprecated. Order fees have been folded into API.Models.OrderListOutput.FeeTotal; this property is kept for backwards compatibility but should be ignored.
format: double
AttendeeCount:
type: integer
format: int32
PlacedThrough:
type: string
nullable: true
CustomerAccountNumber:
type: integer
format: int64
nullable: true
Notes:
type: string
nullable: true
ExternalId:
type: string
nullable: true
PaidInFull:
type: boolean
ExternalCustomerId:
type: string
nullable: true
FlagState:
type: string
nullable: true
additionalProperties: false
FieldOptionFullOutput:
type: object
properties:
Id:
type: string
format: uuid
Label:
type: string
nullable: true
Capacity:
type: integer
format: int32
nullable: true
Quantity:
type: integer
format: int32
HasUnitPrice:
type: boolean
UnitPrice:
type: number
format: double
nullable: true
UnitTax:
type: number
format: double
nullable: true
IsInclusiveTaxes:
type: boolean
DisplayPrice:
type: number
format: double
nullable: true
PriceDescription:
type: string
nullable: true
IsSelected:
type: boolean
HasCapacity:
type: boolean
SpotsRemaining:
type: integer
format: int32
nullable: true
RemainingText:
type: string
nullable: true
additionalProperties: false
UnitFeeLineItemOutput:
type: object
properties:
Label:
type: string
description: Display label (e.g. "Service Fee", "Sales Tax").
nullable: true
FeeType:
$ref: '#/components/schemas/FeeItemType'
Amount:
type: number
description: The evaluated amount for this line item.
format: double
additionalProperties: false
description: "A single fee or tax line item evaluated for an attendee from the attendee\r\ntype's customFees configuration. On cart outputs this is a live evaluation;\r\non order outputs it is the snapshot of what was collected at purchase time."
StringStringKeyValuePair:
type: object
properties:
Key:
type: string
nullable: true
Value:
type: string
nullable: true
additionalProperties: false
OrderPrintInput:
required:
- Orders
- Type
type: object
properties:
Type:
$ref: '#/components/schemas/PrintType'
Orders:
type: array
items:
type: string
format: uuid
Format:
$ref: '#/components/schemas/PrintFormat'
ImageDpi:
type: integer
format: int32
additionalProperties: false
OrderReaderStartInput:
required:
- BillingFirstName
- BillingLastName
- CartId
type: object
properties:
CartId:
minLength: 1
type: string
AccessKey:
type: string
nullable: true
BillingFirstName:
maxLength: 50
minLength: 0
type: string
BillingLastName:
maxLength: 50
minLength: 0
type: string
ContactEmail:
maxLength: 100
minLength: 0
pattern: ^([0-9A-Za-zÀ-ÖØ-öø-ÿ']+[-._+&])*[0-9A-Za-zÀ-ÖØ-öø-ÿ_']+@([-0-9A-Za-zÀ-ÖØ-öø-ÿ]+[.])+[a-zA-Z]{2,63}$
type: string
nullable: true
ContactPhone:
maxLength: 50
minLength: 0
pattern: ^((?:[\.\*\(\)\-\/\s\+]*\d){10,})(.*)$
type: string
nullable: true
Notes:
type: string
nullable: true
IsKiosk:
type: boolean
SendEmail:
type: boolean
Via:
type: string
nullable: true
additionalProperties: false
OrderCreateOutput:
type: object
properties:
RequiresAction:
type: boolean
ActionInfo:
type: object
additionalProperties:
type: string
nullable: true
nullable: true
Results:
type: array
items:
$ref: '#/components/schemas/OrderResultOutput'
nullable: true
additionalProperties: false
OrderCreateInput:
required:
- BillingCity
- BillingCountry
- BillingFirstName
- BillingLastName
- BillingPostalCode
- BillingRegion
- BillingStreet1
- CartId
- ContactPhone
type: object
properties:
CartId:
minLength: 1
type: string
AccessKey:
type: string
nullable: true
CustomerAccountNumber:
type: integer
format: int64
nullable: true
BillingFirstName:
maxLength: 50
minLength: 0
type: string
BillingLastName:
maxLength: 50
minLength: 0
type: string
BillingStreet1:
maxLength: 100
minLength: 0
type: string
BillingStreet2:
maxLength: 100
minLength: 0
type: string
nullable: true
BillingCity:
maxLength: 100
minLength: 0
type: string
BillingRegion:
maxLength: 100
minLength: 0
type: string
BillingCountry:
maxLength: 2
minLength: 2
type: string
BillingPostalCode:
maxLength: 20
minLength: 0
type: string
ContactEmail:
maxLength: 100
minLength: 0
pattern: ^([0-9A-Za-zÀ-ÖØ-öø-ÿ']+[-._+&])*[0-9A-Za-zÀ-ÖØ-öø-ÿ_']+@([-0-9A-Za-zÀ-ÖØ-öø-ÿ]+[.])+[a-zA-Z]{2,63}$
type: string
nullable: true
ContactPhone:
maxLength: 50
minLength: 0
pattern: ^((?:[\.\*\(\)\-\/\s\+]*\d){10,})(.*)$
type: string
PaymentMethodId:
type: string
format: uuid
nullable: true
TransactionId:
maxLength: 255
minLength: 0
type: string
nullable: true
TokenInfo:
type: object
additionalProperties:
type: string
nullable: true
nullable: true
CardName:
type: string
nullable: true
CardNumber:
pattern: ^(\d{4})(?:[- ]?)(\d{4}|\d{6})(?:[- ]?)((\d{4})(?:[- ]?)(\d{4})|(\d{5}))$
type: string
nullable: true
CardCsc:
pattern: ^\d{3,4}$
type: string
nullable: true
CardMonth:
type: integer
format: int32
nullable: true
CardYear:
type: integer
format: int32
nullable: true
RoutingNumber:
pattern: ^\d{9}$
type: string
nullable: true
AccountNumber:
type: string
nullable: true
CheckPONumber:
type: string
nullable: true
PaidInFull:
type: boolean
nullable: true
CreditCode:
pattern: ^\d{4}-\d{4}-\d{4}$
type: string
description: The event credit code to apply to the order.
nullable: true
example: 1234-5678-9012
PaymentNumberForStorage:
type: string
nullable: true
readOnly: true
Notes:
type: string
nullable: true
IsKiosk:
type: boolean
SendEmail:
type: boolean
Via:
type: string
nullable: true
IsInvoice:
type: boolean
InvoiceDue:
$ref: '#/components/schemas/InvoiceRelativeDays'
ExchangeId:
type: string
format: uuid
nullable: true
OriginalOrderId:
type: string
format: uuid
nullable: true
additionalProperties: false
OrderCreateDirectInput:
required:
- EventNumber
- FirstName
- LastName
- NumberOfTickets
type: object
properties:
AccessKey:
type: string
nullable: true
FirstName:
maxLength: 50
minLength: 0
type: string
LastName:
maxLength: 50
minLength: 0
type: string
Organization:
maxLength: 100
minLength: 0
type: string
nullable: true
Street1:
maxLength: 100
minLength: 0
type: string
nullable: true
Street2:
maxLength: 100
minLength: 0
type: string
nullable: true
City:
maxLength: 100
minLength: 0
type: string
nullable: true
Region:
maxLength: 100
minLength: 0
type: string
nullable: true
Country:
maxLength: 2
minLength: 2
type: string
nullable: true
PostalCode:
maxLength: 20
minLength: 0
type: string
nullable: true
Phone:
maxLength: 100
minLength: 0
pattern: ^((?:[\.\*\(\)\-\/\s\+]*\d){10,})(.*)$
type: string
nullable: true
Email:
maxLength: 100
minLength: 0
pattern: ^([0-9A-Za-zÀ-ÖØ-öø-ÿ']+[-._+&])*[0-9A-Za-zÀ-ÖØ-öø-ÿ_']+@([-0-9A-Za-zÀ-ÖØ-öø-ÿ]+[.])+[a-zA-Z]{2,63}$
type: string
nullable: true
IsPOS:
type: boolean
EventNumber:
type: integer
format: int64
NumberOfTickets:
maximum: 200
minimum: 1
type: integer
format: int32
Notes:
type: string
nullable: true
SendEmail:
type: boolean
ShipMethod:
maxLength: 100
minLength: 0
type: string
description: Deprecated. Delivery methods are no longer supported; this field is accepted for backwards compatibility but ignored.
nullable: true
additionalProperties: false
OrderRelationshipOutput:
type: object
properties:
Id:
type: string
format: uuid
OrderKey:
type: string
nullable: true
OrderedAt:
type: string
format: date-time
IsAdjustment:
type: boolean
Payments:
type: array
items:
$ref: '#/components/schemas/OrderRelationshipPaymentOutput'
nullable: true
TransactionId:
type: string
nullable: true
readOnly: true
TransactionTotal:
type: number
format: double
readOnly: true
additionalProperties: false
OrderHelpdeskOutput:
type: object
properties:
Id:
type: string
format: uuid
OrderKey:
type: string
nullable: true
ObjectNumber:
type: integer
format: int64
ObjectTitle:
type: string
nullable: true
ObjectSubtitle:
type: string
nullable: true
OrderedAt:
type: string
format: date-time
OrderedAtLocal:
type: string
format: date-time
FirstName:
type: string
nullable: true
LastName:
type: string
nullable: true
Amount:
type: number
format: double
IsAdjustment:
type: boolean
Culture:
type: string
nullable: true
FlagState:
type: string
nullable: true
additionalProperties: false
OrderPromotionOutput:
type: object
properties:
PromotionId:
type: string
format: uuid
DiscountAmount:
type: number
format: double
additionalProperties: false
FieldOutput:
typ
# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/brushfire/refs/heads/main/openapi/brushfire-orders-api-openapi.yml
This is an independent, third-party profile of Brushfire Orders API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.
The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.
Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.
info@apievangelist.com
·
Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and
you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.