Booking Entity
Bookings represent customer reservations for skydiving experiences. Each booking tracks the customer information, scheduled jump date, and the processing status of their video/photo content.
Fields
Read/Write Fields
These fields can be set when creating or updating a booking via the API.
| Field | Type | Required | Description |
|---|---|---|---|
external_id |
string | Yes (for API sync) | Unique identifier from external system |
external_service |
string | Yes | Name of your booking system. (e.g. Burble, Icarus, Rob's Awesome Booking System, etc..) |
name |
string | Yes | Customer's name |
email |
string | Yes | Email address |
mobile |
string | No | Mobile number |
jump_on |
date | Yes | Scheduled jump date in the customer's timezone (format: YYYY-MM-DD) |
language |
string | No | Customer language choice (two letter code) |
extractor_id |
string | No | Internal extractor identifier |
extractor_site |
string | No | Internal site identifier |
camera_package |
string | No | The name of the camera/video package in the external system |
tandem_product_name |
string | No | Name of tandem product (can be used by Burble) |
reference |
string | No | Freeform text for customer note. Max 255 chars |
show_publicly |
boolean | Yes | If false, the booking will not be shown on the AppleTV. Try hard to make this true! |
jump_scheduled_at |
datetime | No | Scheduled time for the customer's jump. e.g. showing customers booked for the 11am slot vs the 2pm slot. Useful for ordering bookings by time of day at reception. Format: ISO 8601 with timezone (see below) |
jump_manifested_at |
datetime | No | When the jump was manifested. Manifested bookings appear in a priority section on the iPad/QR app. Format: ISO 8601 with timezone (see below) |
jump_performed_at |
datetime | No | When the jump actually flew. Even a nominal time is useful — providing this indicates the booking resulted in a real jump, enabling camera sales statistics. Format: ISO 8601 with timezone (see below) |
Read-Only Fields
These fields are returned in API responses but cannot be modified via the API.
| Field | Type | Required | Description |
|---|---|---|---|
id |
bigint | Yes | FFF Internal database ID |
uuid |
uuid | Yes | Unique UUID for the booking |
link |
string | Yes | Unique booking link identifier |
album_status_raw |
string | Yes | Current processing status code (see Status Codes below) |
delivered_paid_at |
datetime | No | Timestamp when paid content was delivered |
delivered_preview_at |
datetime | No | Timestamp when preview was delivered |
product_id |
bigint | No | FFF Product ID associated with this booking |
created_at |
datetime | Yes | Timestamp when booking was created |
updated_at |
datetime | Yes | Timestamp when booking was last updated |
Datetime Format
All datetime fields (jump_scheduled_at, jump_manifested_at, jump_performed_at) must be sent in ISO 8601 format with a timezone offset. Rails will parse a variety of ISO 8601 representations, but the timezone must be included.
Accepted formats:
| Format | Example |
|---|---|
| Full ISO 8601 with offset | 2026-03-29T14:30:00+02:00 |
| With Z for UTC | 2026-03-29T14:30:00Z |
| With seconds and milliseconds | 2026-03-29T14:30:00.000+02:00 |
Not accepted:
| Format | Example | Why |
|---|---|---|
| No timezone | 2026-03-29T14:30:00 |
Ambiguous — timezone is required |
| Date only | 2026-03-29 |
Use jump_on for date-only values |
Status Codes
The album_status_raw field contains one of these values:
| Status | Description |
|---|---|
waiting_for_footage |
Booking created, waiting for project to be connected in the edit app |
waiting_for_upload |
Project connected, waiting for upload to begin |
uploading |
Files are currently being uploaded |
processing_preview |
Upload complete, generating preview content |
delivered_preview |
Preview has been delivered to customer |
processing_paid |
Processing full paid content after payment |
delivered_paid |
Full paid content has been delivered to customer |
processing_failed |
An error occurred during processing |
nothing_to_offer |
No product available for this booking which matches the uploaded materials |
URL Generation
Using the link and id fields, you can generate URLs to key pages.
Please note that these are intended for internal use, rather than for sharing with customers.
| URL | Description |
|---|---|
| https://freefall.ing/bookings/#id | View booking details |
| https://freefall.ing/bookings/#id/edit | Edit booking details |
| https://freefall.ing/j/#link | View customer page |
Supported Language Codes
| Code | Language |
|---|---|
| en | English |
| et | Estonian |
| cs | Czech |
| da | Danish |
| nl | Dutch |
| fr | French |
| de | German |
| hu | Hungarian |
| it | Italian |
| ko | Korean |
| lv | Latvian |
| nb | Norwegian (Bokmål) |
| pl | Polish |
| pt | Portuguese |
| ro | Romanian |
| es | Spanish |
| sv | Swedish |
| bg | Bulgarian |
| sr | Serbian |
Nested Entities
When retrieving a single booking via GET /api/f1/sync/bookings/:external_id, the response includes:
jump- The associated jump record (see Jump entity)finance_events- Array of finance events (see Finance Event entity)