Create Order
Use this endpoint to create an order from a valid quote.
Authentication Required
This endpoint requires a valid Bearer token and a configured Payout method on your TBB account. See Authentication and Payout Method.
Endpoint
POST /partner/v1/orders
Request
Headers
Authorization: Bearer <token>
Content-Type: multipart/form-data
note
This endpoint uses multipart/form-data to support PDF file uploads. Do not set Content-Type: application/json.
Fields
| Field | Type | Required | Description |
|---|---|---|---|
quote_id | string | Yes | Encrypted quote ID from the Create Quote response |
delivery_type | enum | Yes | Ticket delivery method — see options below |
is_ready_to_deliver | boolean | Yes | true if tickets are ready to deliver now. false if you will deliver on a future date |
in_hand_date | date (YYYY-MM-DD) | Conditional | Date TBB will receive the tickets. Required when is_ready_to_deliver is false. Must be at least 2 days before the event |
file | file (PDF) | Conditional | PDF ticket file. Required when delivery_type is pdf Max 10MB |
Delivery Types
| Value | Description |
|---|---|
mobile_transfer | TBB initiates a mobile ticket transfer |
mobile_qr | QR code-based ticket delivery |
pdf | PDF ticket file delivery |
tip
mobile_transfer is the recommended delivery type for the majority of events. Use mobile_qr or pdf only if the event platform does not support mobile transfers.
cURL Examples
Ready to deliver now (mobile transfer)
cURL
curl -X POST https://api.ticketbuyback.com/partner/v1/orders \
-H "Authorization: Bearer <token>" \
-F "quote_id=qt_9f3a2b1c" \
-F "delivery_type=mobile_transfer" \
-F "is_ready_to_deliver=true"
Delayed delivery (will deliver on a future date)
cURL — Delayed
curl -X POST https://api.ticketbuyback.com/partner/v1/orders \
-H "Authorization: Bearer <token>" \
-F "quote_id=qt_9f3a2b1c" \
-F "delivery_type=mobile_transfer" \
-F "is_ready_to_deliver=false" \
-F "in_hand_date=2026-09-10"
PDF delivery with file upload
cURL — PDF
curl -X POST https://api.ticketbuyback.com/partner/v1/orders \
-H "Authorization: Bearer <token>" \
-F "quote_id=qt_9f3a2b1c" \
-F "delivery_type=pdf" \
-F "is_ready_to_deliver=true" \
-F "file=@/path/to/ticket.pdf"
JavaScript Examples
Ready to deliver now
JavaScript
const formData = new FormData();
formData.append("quote_id", "qt_9f3a2b1c");
formData.append("delivery_type", "mobile_transfer");
formData.append("is_ready_to_deliver", "true");
const response = await fetch(
"https://api.ticketbuyback.com/partner/v1/orders",
{
method: "POST",
headers: { Authorization: `Bearer ${token}` },
body: formData,
}
);
const { data } = await response.json();
Delayed delivery
JavaScript — Delayed
const formData = new FormData();
formData.append("quote_id", "qt_9f3a2b1c");
formData.append("delivery_type", "mobile_transfer");
formData.append("is_ready_to_deliver", "false");
formData.append("in_hand_date", "2026-09-10");
const response = await fetch(
"https://api.ticketbuyback.com/partner/v1/orders",
{
method: "POST",
headers: { Authorization: `Bearer ${token}` },
body: formData,
}
);
const { data } = await response.json();
PDF delivery with file upload
JavaScript — PDF
const formData = new FormData();
formData.append("quote_id", "qt_9f3a2b1c");
formData.append("delivery_type", "pdf");
formData.append("is_ready_to_deliver", "true");
formData.append("file", pdfFileObject); // File object from input or fs
const response = await fetch(
"https://api.ticketbuyback.com/partner/v1/orders",
{
method: "POST",
headers: { Authorization: `Bearer ${token}` },
body: formData,
}
);
const { data } = await response.json();
Response — 201 Created
{
"success": true,
"data": {
"order_id": "3224729029",
"event_id": "a3cc13227263f69a5de2d14a34613600",
"section_name": "110",
"row_name": "16",
"section_name_display": "110",
"row_name_display": "16",
"quantity": 1,
"general_admission": false,
"face_value": "1.00",
"total_price": 9.62,
"status": "accepted",
"quotes": [
{
"offer_price": 9.62,
"exp_dt": "2026-03-15T03:49:01.198107",
"quote_id": "FicWEHz9cTJ+0SuY7ywn7Q=="
}
],
"restrictions": [],
"restriction_detail": null,
"primary_site": "AXS"
},
"meta": {
"request_id": "70e6c01f-12f3-4dda-bffc-1c1ccd824f09",
"timestamp": "2026-03-15T02:49:13Z"
}
}
Response Fields
| Field | Description |
|---|---|
order_id | Unique order identifier — save this for your records |
event_id | Event ID for this order |
section_name | Section name for the order |
section_name_display | Human-readable section label |
row_name | Row assigned for the order |
row_name_display | Human-readable row label |
quantity | Number of tickets in this order |
general_admission | true if the section is General Admission |
face_value | Face value of the tickets in USD |
total_price | Total charged for this order |
status | Order status — see status values below |
quotes | Array of associated quote pricing snapshots |
quotes[].offer_price | Price per ticket at time of quote |
quotes[].exp_dt | Expiry datetime of the quote |
quotes[].quote_id | Encrypted quote ID |
restrictions | List of restriction labels that apply to the seats, or empty array if none |
restriction_detail | Short restriction note, or null if none |
primary_site | Ticketing platform |
note
After a successful order is created, a confirmation email is automatically sent to the seller containing the transfer address, and event details.
Order Statuses
| Status | Description |
|---|---|
awaiting_transfer | Order confirmed — waiting for your customer to transfer the ticket |
ticket_received | Customer has transferred the ticket successfully |
payout_in_process | Ticket received — payout to the partner is being processed |
scheduled | Payout has been scheduled for disbursement |
paid | Payout has been completed successfully |
expired | Order expired |
canceled | Order was canceled |
Error Scenarios
Error Scenarios
| Scenario | HTTP Status | Error Code |
|---|---|---|
| Missing or invalid Bearer token | 401 | UNAUTHORIZED |
| Token expired | 401 | TOKEN_EXPIRED |
| Quote not found | 404 | QUOTE_NOT_FOUND |
| Quote belongs to a different partner | 403 | FORBIDDEN |
| Quote has expired | 422 | QUOTE_EXPIRED |
| Quote already used | 422 | QUOTE_ALREADY_CONSUMED |
Invalid delivery_type value | 400 | VALIDATION_ERROR |
is_ready_to_deliver=false but no in_hand_date provided | 400 | IN_HAND_DATE_REQUIRED |
delivery_type=pdf but no file attached | 400 | FILE_REQUIRED |
| PDF file exceeds 10MB | 400 | VALIDATION_ERROR |
in_hand_date is after the event date | 422 | INVALID_DELIVERY_DEADLINE |
in_hand_date is less than 2 days before the event | 422 | INVALID_DELIVERY_DEADLINE |
End-to-End Flow Summary
1. POST /auth/token → Get access token
2. GET /events → Find the event
3. GET /events/{id}/sections → Browse sections
4. GET /events/{id}/sections/{name}/rows → Browse rows
5. POST /quotes → Lock in a price
6. POST /orders → Confirm the order ← You are here
Next Step
Understand how billing and payouts work between you and Ticket Buyback: