# Getting Started with EZDZ

> How onboarding works, what the EZDZ team sets up for you, and the short list of things to do on day one: sign in, connect Stripe, and set up email.

Source: https://ezdzskydive.com/docs/getting-started · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

EZDZ onboarding is hands-on. You tell us about your dropzone, our team sets up your workspace, and you finish a short list of steps that only you can do (like connecting your own Stripe account). Most dropzones are taking bookings within a few days.

## How onboarding works

1. **Sign up at [/get-started](https://ezdzskydive.com/get-started).** Tell us your dropzone name, what you use today, and what you want to improve first.
2. **We reach out if we need more.** Depending on how you filled out the form, an EZDZ admin may ask a few follow-up questions. Nothing changes on your side until we confirm the details with you.
3. **We set up your dropzone.** Our team creates your dropzone and configures as much as we can ahead of time (see below).
4. **You get an app link.** Your EZDZ contact sends you the link to the EZDZ app.
5. **Create your account and finish your profile.** See [Account & access](https://ezdzskydive.com/docs/account-and-access).
6. **Register at your dropzone and tell your EZDZ contact.** They raise your role to DZ Admin or DZ Staff so the admin area opens up for you.
7. **Finish setup.** Double-check your aircraft and schedule, connect Stripe, set up email, and (optionally) place one real booking to check it end to end. The checklist below walks through it.

> **What we set up for you**
>
> When you already run an online booking flow, we recreate it before you log in. That usually includes your dropzone and timezone, aircraft, weekly schedule, packages and add-ons, pricing, branding, and contact details. You will still want to **double-check aircraft capacity and your schedule**, because those drive how many people can be booked and manifested.

## Your first-day checklist

Work through these in order. Each step links to the full guide. Once your role is raised, this is the screen you land on: **DZ Admin** is highlighted in the top navigation, and the sidebar gives you Loads, Bookings, Fun Jumpers, Analytics, Gear/Aircraft, and Settings.

![The DZ Admin overview: top navigation with DZ Admin, the left sidebar, and quick actions such as Create Reservation](https://ezdzskydive.com/docs/getting-started/dz-admin-overview.webp "1200x484")

1. **Sign in and confirm your role.** Open the app link, sign in, and check that **DZ Admin** appears in the top navigation. If it doesn't, sign out and back in. See [Account & access](https://ezdzskydive.com/docs/account-and-access).
2. **Check your dropzone settings.** Confirm address, timezone, and your manifest and credit settings. See [Dropzone settings](https://ezdzskydive.com/docs/dropzone-settings).
3. **Check your aircraft.** Capacity is copied into every new load, so make sure it's right. See [Aircraft & gear](https://ezdzskydive.com/docs/aircraft-and-gear).
4. **Review your booking setup.** Check time slots, packages, and prices, and make sure the booking page is set to **Active**. See [Booking system](https://ezdzskydive.com/docs/booking-system).
5. **Connect Stripe.** You must do this before you can take card payments. It takes about 3 minutes. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments#connect-stripe).
6. **Set up email.** Connect your SMTP account so confirmations and reminders go out under your name. See [Email setup](https://ezdzskydive.com/docs/email-setup).
7. **Place one real booking yourself (optional, recommended).** Book the cheapest slot on your public booking page with your own card. It is a real charge, so refund it afterward from the [bookings desk](https://ezdzskydive.com/docs/bookings-desk). You are checking that the booking shows up there and that the confirmation email arrives (email only sends once SMTP is set up in the previous step).
8. **Put the booking page on your website.** Copy the embed code from **Preview & Embed**. See [Booking system](https://ezdzskydive.com/docs/booking-system#preview-and-embed).

> **You're set when**
>
> **DZ Admin** shows in your top navigation, aircraft capacity and schedule look right, the booking page is **Active**, and Stripe shows **Payments: Enabled** and **Payouts: Enabled**. If you did the optional booking in step 7, it appears on your bookings desk and the confirmation email reached your inbox.

## Who can do what

| Role | What it's for | What they can reach |
| --- | --- | --- |
| DZ Owner / DZ Admin | Owners and managers | Everything for your dropzone: settings, booking system, payments, staff |
| DZ Staff | Manifest and desk staff | Day-to-day operations: loads, bookings, jumpers. Most **Settings** tabs are hidden, but Manage Staff is available |
| Fun Jumper | Licensed jumpers | Their own dashboard: tickets, profile, self-manifest |

Your role is set by you or another admin under **Settings → Manage Staff**, and your EZDZ contact can do it too. See [Staff & jumpers](https://ezdzskydive.com/docs/staff-and-jumpers).

## Where to go next

- Running the day: [Bookings desk](https://ezdzskydive.com/docs/bookings-desk) and [Manifest & loads](https://ezdzskydive.com/docs/manifest-and-loads)
- Money questions (paid? declined? refund?): [Checking payments](https://ezdzskydive.com/docs/checking-payments)
- Verifying fun jumpers with USPA: [USPA verification](https://ezdzskydive.com/docs/uspa-verification)
- Using ChatGPT or Claude with your dropzone: [AI assistants](https://ezdzskydive.com/docs/ai-assistants)
- Stuck? Browse the [FAQ](https://ezdzskydive.com/docs/faq) or email door@ezdz.xyz

---

# Account & access

> Create your EZDZ account, complete your jumper profile (including what to enter if you have no USPA membership), register at your dropzone, and get your admin or staff role.

Source: https://ezdzskydive.com/docs/account-and-access · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

Everyone on your team, admin or staff, has a normal EZDZ account first. Your role is then added to that account. This page covers each step.

## Create your account

1. Open the **app link** your EZDZ contact sent you.
2. Click **Sign In / Sign Up** in the top right, then choose the **Create account** tab.
3. Enter your **Full name**, **Email**, and a **Password** (at least 6 characters), then confirm the password.
4. Tick **I agree to the Terms of Service and Privacy Policy** and click **Create Account**.

You're signed in right away. Forgot your password later? Use **Forgot password?** on the sign-in tab and we'll email you a reset link.

> **Use your real name**
>
> Use the same first and last name that appears on your USPA record. USPA lookups match on name, and a nickname or initial can cause a "not found" result. See [USPA verification](https://ezdzskydive.com/docs/uspa-verification).

## Complete your profile

EZDZ asks for your jumper profile when you register at a dropzone. If anything is missing you'll see **Finish your jumper profile to register** with a **Complete profile** button.

The form is titled **Complete Your Jumper Profile**.

| Field | Required? | What to enter |
| --- | --- | --- |
| License Number | Yes | Just the number, like `12345`. We add the letter for you |
| License Level | Yes | A, B, C, or D License |
| Emergency Contact Name | Yes | Someone the dropzone can call in an emergency |
| Emergency Contact Phone | Yes | Their phone number |
| Exit Weight (lbs) | Yes | Your real weight **including gear**. The dropzone uses it to plan loads |
| Canopy Size (sqft) | Yes | Your canopy size |
| Total Jumps | No | Your current jump count |
| Experience Level | No | Beginner (0-50), Intermediate (50-200), Advanced (200-500), Expert (500+) |
| Nickname, Date of Birth | No | Optional |
| Canopy Type | No | For example Sabre 2 or Katana |
| Medical Conditions or Medications | No | Shared with medical personnel only if needed |

### Staff without a license or USPA membership

Instructors, office staff, and videographers don't always hold a jump license. The profile still needs a value, so:

- **License Number:** enter `00000` and choose **A License**. The link **Fill it in for me** does this in one click.
- **Canopy Size:** if you don't own a canopy, enter `190`. You can change it later in Settings.
- **Exit Weight:** enter your real weight with gear.
- **USPA member number:** leave it blank. It's optional and is entered separately in your account settings (see below).

You can update any of this later under **Settings → Your Profile & Settings**.

### Adding your USPA member number

Open your dashboard, go to **Settings**, find **USPA Membership**, and fill in **USPA Member Number**. This is your numeric USPA ID (like `95031`), **not** your license number (like `D-17516`). It's optional, and it speeds up verification at dropzones that use USPA checks.

## Register at your dropzone

1. Open your dashboard and go to the **Manifest** page.
2. In **Your Dropzone**, pick your dropzone.
3. Click **Register at {Dropzone name}**. If your profile is incomplete, finish it first.

Registration is instant. You become a **Fun Jumper** at that dropzone, which is the starting role for everyone.

## Get your admin or staff role

Registering doesn't make you an admin. Someone with admin rights raises your role:

- **Your EZDZ contact** can do it. Email door@ezdz.xyz or tell the person who onboarded you.
- **An existing DZ admin or owner** can do it under **Settings → Manage Staff**. Find your name and use the **Role** dropdown (Fun Jumper, DZ Staff, DZ Admin, DZ Owner), then **Save**.

> **Sign out and back in**
>
> Your role is loaded when you sign in. After it changes, **sign out and sign back in** (or reload the page) before **DZ Admin** shows up in the top navigation.

> **New staff don't appear in Manage Staff until they register**
>
> Manage Staff lists people who are already registered at your dropzone. If you can't find someone, ask them to create an account and click **Register at {Dropzone name}** first.

### Instructor and pilot flags

Two switches in **Manage Staff** matter for the day-to-day:

- **Is Instructor** marks someone as a tandem or AFF instructor. It applies to the person everywhere, not just one dropzone.
- **Is Pilot** is set per dropzone. Only people flagged as pilots show up in the **Pilot (Optional)** list when you create a load.

## Roles at a glance

| Role | Typical person | Notes |
| --- | --- | --- |
| DZ Owner | Dropzone owner | Full control for your dropzone |
| DZ Admin | Manager | Full control for your dropzone, including Settings |
| DZ Staff | Manifest and desk staff | Operations. Most Settings tabs are hidden; Manage Staff is available |
| Fun Jumper | Licensed jumpers | Own dashboard, tickets, self-manifest |

You can't remove the last admin or owner. Assign another one first.

---

# Dropzone settings

> Every setting under Settings → Dropzone Settings: address and timezone, manifest and credit rules, ticket prices, weather alerts, and sales tax, with defaults and what each one does.

Source: https://ezdzskydive.com/docs/dropzone-settings · Last updated: 2026-11-03 · Audience: DZ admins · Support: door@ezdz.xyz

These are the dropzone-wide defaults for manifesting, credits, weather alerts, and tax. Your EZDZ team usually fills in the basics (address and timezone) when we set up your dropzone. It's worth a quick review on day one.

> **Where to find it**
>
> Open **DZ Admin → Settings → Dropzone Settings**. Make your changes and click **Save Settings**. They apply immediately. DZ Staff can't see this tab.

![The Dropzone Settings tab: timezone, self-manifest, credits, ticket and AFF prices](https://ezdzskydive.com/docs/dropzone-settings/dropzone-settings.webp "1105x900")

## Location and timezone

**Timezone** (Where: Dropzone Settings · Default: America/New_York · Admins only)
Controls how manifest times, reports, history, booking slots, and reminder emails are shown. **If dates or times look "off" on your booking page, check this first.** Pick your dropzone's local timezone from the list.

**Dropzone Address** (Where: Dropzone Settings · Default: Empty · Admins only)
Optional physical address used on manifests, customer communications, and map embeds.

**Latitude and Longitude** (Where: Dropzone Settings · Default: Empty · Admins only)
Used for weather widgets and public maps, and by the weather alert emails below. Use six decimal places, for example `34.267850` and `-81.589320`.

## Manifest and credits

**Allow Self-Manifest** (Where: Dropzone Settings · Default: On · Admins only)
When on, fun jumpers can manifest themselves from their own dashboard. Encourage this on busy days because it cuts a lot of work at the manifest desk. Turn it off if you want staff to control every slot.

**Require Credits** (Where: Dropzone Settings · Default: Off · Admins only)
When on, a jumper needs credits (tickets) to be manifested. This is the easiest way to run a fun jumper operation: they buy tickets, manifest, and the credit is finalized at takeoff, so you never chase payment afterward. If you would rather let people fly now and settle up later, use Reconciliation Mode instead (see below).

**Auto-deduct Credits** (Where: Dropzone Settings · Default: On · Admins only)
The app describes this as automatically deducting credits when loads take off. Leave it **On**. Credits are set aside when a jumper is manifested and finalized when you mark the load **In The Air**.

**Fun Jumper Ticket Price** (Where: Dropzone Settings · Default: 0 · Admins only)
The price per ticket (one credit is one jump slot) when jumpers buy tickets from their dashboard.

**Default AFF Price** (Where: Dropzone Settings · Default: Blank · Admins only)
Default price for AFF student jumps. Leave blank if you don't run AFF.

See [Staff & jumpers](https://ezdzskydive.com/docs/staff-and-jumpers#choose-how-your-dropzone-runs-credits) for the four ways to run credits (including packages and Reconciliation Mode) and how to sell and adjust them.

## Weather alert thresholds

There's no official tandem wind standard, so these are conservative starting points you can adjust for your site. When the forecast crosses either threshold for an upcoming operating day, staff get an **informational email**. Nothing is cancelled automatically. This needs your latitude and longitude.

**Gust Spread (knots)** (Where: Dropzone Settings → Weather Alert Thresholds · Default: 10 · Admins only)
The difference between gusts and sustained wind that triggers an alert.

**Sustained Wind (knots)** (Where: Dropzone Settings → Weather Alert Thresholds · Default: 18 · Admins only)
The sustained wind speed that triggers an alert.

## Sales tax

Turn tax on if you collect sales tax on bookings and products. You also mark individual packages and add-ons as **Taxable** in [Booking system → Pricing & Packages](https://ezdzskydive.com/docs/booking-system#pricing-and-packages).

**Enable Tax Collection** (Where: Dropzone Settings → Tax Settings · Default: Off · Admins only)
Adds sales tax to taxable products at checkout. Turning it on reveals the fields below.

**Tax Rate (%)** (Where: Dropzone Settings → Tax Settings · Default: None · Admins only)
For example, enter `8.25` for 8.25%.

**Tax Label** (Where: Dropzone Settings → Tax Settings · Default: Sales Tax · Admins only)
The name customers see at checkout.

**Apply Tax After Discounts** (Where: Dropzone Settings → Tax Settings · Default: Off · Admins only)
When on, coupons reduce the taxable amount before tax is calculated.

> **Platform fees are not charged on tax**
>
> EZDZ's platform fee is calculated on the booking amount before tax. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments).

---

# Aircraft & gear

> Add and edit aircraft, set capacity and maintenance tracking, log hours, and manage dropzone-owned rigs. Capacity is copied into every new load.

Source: https://ezdzskydive.com/docs/aircraft-and-gear · Last updated: 2026-11-03 · Audience: DZ admins · Support: door@ezdz.xyz

Aircraft live under **DZ Admin → Gear/Aircraft**, in the **Aircraft** tab. The same screen has a **Rigs** tab for dropzone-owned gear. Staff can use this screen too.

> **Probably already done**
>
> We usually add your aircraft when we set up your dropzone. Open this page anyway and **confirm the capacity** for each one. It decides how many slots every new load gets.

## Add an aircraft

1. Go to **Gear/Aircraft** and stay on the **Aircraft** tab.
2. Click **+ Add Aircraft** to open **New Aircraft**.
3. Fill in the fields below and save.

![The Gear/Aircraft screen with an aircraft card and its Log Hours, View History, Edit, and Delete buttons](https://ezdzskydive.com/docs/aircraft-and-gear/aircraft-tab.webp "1120x680")

**Aircraft Name** (Where: New Aircraft · Default: None (required) · Admins only)
Must be unique among your active aircraft. If you reuse a name you'll see "Aircraft with this name already exists at this dropzone."

**Capacity** (Where: New Aircraft · Default: 4 (required) · Admins only)
Seats available on each load, from 1 to 50. Count everyone who needs a slot: jumpers, tandem students, and instructors.

**Model** (Where: New Aircraft · Default: Empty · Admins only)
Optional, for example "Cessna 182".

**Tail Number** (Where: New Aircraft · Default: Empty · Admins only)
Optional registration, for example "N123AB". There is no separate "registration" field. This is it.

**Maintenance Hour Interval** (Where: New Aircraft · Default: 100 · Admins only)
How many flight hours between inspections. Drives the maintenance gauge below.

**Maintenance Notes** (Where: New Aircraft · Default: Empty · Admins only)
Free text. Long notes are shortened on the card; click to expand.

## Capacity and loads

> **Changing capacity doesn't change existing loads**
>
> When you create a load, EZDZ copies the aircraft's capacity into it and builds that many empty slots. Editing an aircraft's capacity later only affects **loads you create afterward**.

Booking time slots have their own **Max Bookings** number. It is **not** linked to aircraft capacity. See [Booking system](https://ezdzskydive.com/docs/booking-system#schedule-and-availability).

### Create a load

1. Go to **Loads** and click **Add New Load**.
2. Pick your **aircraft**. The list shows each aircraft's capacity.
3. Optionally set an **Estimated Takeoff Time** and a **Pilot**. Only people flagged **Is Pilot** appear.
4. Click **Create**. The load opens right away for manifesting.

If you have no active aircraft, **Create Load** is disabled and a red message tells you to add one. See [Manifest & loads](https://ezdzskydive.com/docs/manifest-and-loads) for what comes next.

## Edit, deactivate, or delete an aircraft

- **Edit:** open the aircraft card and change any field. Edits include an **Active** switch.
- **Deactivate:** turn **Active** off. The aircraft shows an **Inactive** badge, disappears from new-load creation, and can be turned back on any time.
- **Delete:** removes the aircraft from the screen and from load creation. Past hour logs stay in the database, but the aircraft can't be recovered from the UI, so prefer deactivating.

## Track maintenance hours

Click **Log Hours** on an aircraft card to record a reading.

| Field | Notes |
| --- | --- |
| Reading (hrs) | The aircraft's total time, in steps of 0.1 |
| Date | Defaults to today |
| Note | Optional |
| Mark as inspection completed | Resets the maintenance gauge from this reading |

The card shows a gauge against your interval, your pace in hours per day, and a projected due date. A strip at the top of the page flags aircraft that need attention: **amber at 70%** of the interval and **red at 90%**. You can see the history and delete an entry if you logged it by mistake.

## Rigs

The **Rigs** tab tracks dropzone-owned gear.

| Field | Notes |
| --- | --- |
| Name and Type | Required. Types: Student, Rental, Tandem, Other |
| Serial Number | Optional |
| Container size and color, Canopy size and color | Optional |
| Reserve Pack Date and Reserve Expiration Date | Rigs are flagged **amber within 30 days** of expiry and **red** once past it |
| Notes and Active | Optional |

---

# Booking system

> Set up your online tandem booking page: weekly schedule, overrides for weather and closures, packages and add-ons, coupons, gift certificates, and the website embed code.

Source: https://ezdzskydive.com/docs/booking-system · Last updated: 2026-11-03 · Audience: DZ admins · Support: door@ezdz.xyz

Everything customers see on your booking page is configured in one place: **DZ Admin → Settings → Booking System Config**. It has seven tabs. This page covers all of them and links out to payments and email, which have their own guides.

> **Most of this is pre-configured**
>
> We usually set up your slug, branding, packages, and weekly schedule from your existing booking page. Use this guide to review it and make changes any time.

> **Saving**
>
> The blue **Save Configuration** button saves General Settings, your time slots, your packages, and payment settings together. Schedule overrides, coupons, gift certificates, and email settings save on their own with their own buttons.

| Tab | What it controls |
| --- | --- |
| General Settings | Page URL, on/off, contact info, branding, rules |
| Schedule & Availability | Weekly time slots and one-off overrides |
| Pricing & Packages | Packages, prices, add-ons |
| Coupons & Gift Certs | Discount codes and gift certificates |
| Payment Settings | Stripe, deposits, fees, plan. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments) |
| Email Settings | SMTP and templates. See [Email setup](https://ezdzskydive.com/docs/email-setup) |
| Preview & Embed | Live preview and website embed code |

## General settings

**Booking URL Slug** (Where: General Settings · Default: From your dropzone name · Admins only)
Your booking page lives at `/booking/{slug}`, for example `https://ezdz.xyz/booking/skydive-buckeye`. Change it only if you must, because links you've shared will stop working.

**Status: Active** (Where: General Settings · Default: Off for a brand-new booking page · Admins only)
The booking page only accepts bookings while this is on. **If customers can't see your booking page, check this first.**

**Contact Email and Contact Phone** (Where: General Settings · Default: Empty · Admins only)
Shown on the booking page and in confirmation emails.

**Email me when new bookings come in** (Where: General Settings · Default: On · Admins only)
Staff notifications for new bookings and gift certificate purchases. Customer emails aren't affected. **Send notifications to** defaults to your contact email; enter another address to send notifications elsewhere without changing the public contact email.

**Review Link** (Where: General Settings · Default: Empty · Admins only)
A Google or Yelp review URL included in the post-jump review request email.

**Custom Logo URL, Font Family, Primary and Secondary Color** (Where: General Settings · Default: Blue and system font · Admins only)
Branding for the booking page and emails. The logo is a URL, not an upload, so host the image on your website and paste the link. Fonts: System UI, Inter, Roboto, Open Sans, or Lato.

**Minimum Age and Maximum Weight (lbs)** (Where: General Settings · Default: 18 and 250 · Admins only)
The limits shown to customers before they book.

**Require Phone Number and Require Emergency Contact** (Where: General Settings · Default: On · Admins only)
Collected during checkout so your team has them on jump day.

**Terms and Conditions Text, Confirmation Message, Custom Requirements** (Where: General Settings · Default: Empty or default · Admins only)
Your waiver and deposit language, the message shown after booking, and any extra checkboxes you want customers to accept. Each requirement can be marked **Required**.

## Schedule and availability

Each row in **Schedule & Availability** is one continuous availability window on one weekday. EZDZ generates individual bookable times inside that window using your duration and buffer.

1. Click **Add Time Slot** and choose the **Day**, **Start Time**, and **End Time**.
2. Set **Duration (min)**. This is how often a time appears. `60` gives one time every hour, `120` every two hours.
3. Set **Buffer Minutes** if you want a gap between back-to-back times.
4. Set **Max Bookings** to cap how many tandems can book each time.
5. Switch the row to **Active**. Inactive rows don't appear on the booking page.
6. Click **Save Configuration**.

For example, a `10 AM` to `4 PM` window at `60` minutes gives times at 10, 11, 12, 1, 2, and 3.

![Schedule & Availability: each row is one window. The two Sunday rows overlap between 9 AM and noon, which would show duplicate times](https://ezdzskydive.com/docs/booking-system/schedule-and-availability.webp "1105x840")

**Max Bookings** (Where: Schedule & Availability · Default: 8 for a new row · Admins only)
The most tandems that can book into **one** time. It counts people, not groups: a group of four counts as four. It applies to tandem bookings through the booking page only, and has nothing to do with aircraft capacity. Leave it blank for no limit.

**Duration (min)** (Where: Schedule & Availability · Default: 60 · Admins only)
Between 15 and 180 minutes.

**Buffer Minutes** (Where: Schedule & Availability · Default: 15 · Admins only)
Time between bookings, from 0 to 60. `0` means no buffer.

> **Breaks in the day**
>
> Taking a lunch break? Make two rows on the same day, like 10 AM to 12 PM and 2 PM to 5 PM. A gap between rows is correct.

> **Duplicate times on your booking page**
>
> If two **active rows on the same day overlap**, every overlapping time appears twice and customers can book both, which can double your bookings. Review each day and make sure windows don't cross. To offer a package only at certain times, don't add an overlapping row. Use **Restrict to specific times** on the package instead.

Removing a time slot row deletes it immediately.

## Schedule overrides

Overrides change **one specific date** without touching your weekly template. Find them at the bottom of **Schedule & Availability** under **Schedule Overrides**.

1. Click **Add Override**.
2. Choose **Single Date** or **Date Range**, then pick the date or dates.
3. Choose an **Override Type**.
4. If it applies to specific times, pick the **Time Slot**. Leave it blank for all slots.
5. Optionally add a **Custom Message** shown to customers, such as "Weather hold".
6. Click **Check Affected Bookings** to see anyone already booked in that window.
7. Click **Save Override**.

| Override type | Use it to |
| --- | --- |
| Block Entire Day | Close a whole day: weather, holiday, plane maintenance, off-season |
| Block Specific Time Slots | Close only certain times |
| Reduce Capacity | Lower Max Bookings for a slot |
| Add Additional Availability | Open a time you don't normally offer, such as a sunset jump |
| Extend Hours | Offer times past your usual close for a busy day |

> **Existing bookings are not moved**
>
> Closing a day blocks **new** bookings immediately. People who already booked stay booked. Use **Check Affected Bookings** before you save, then contact those customers, reschedule them, or refund them. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk).

Reopening early? Find the override in **Active Overrides** and delete it. Availability returns to the booking page right away. A date range creates one override per day.

## Pricing and packages

A package is a product customers choose when booking, such as "Standard Tandem". Add-ons (handcam, outside video, photos) hang off a package.

### Create a package

1. Open **Pricing & Packages** and click **Add Package**.
2. Enter the **Package Name**, **Base Price**, and **Description**.
3. Choose which **Available Days** it runs.
4. Click **Add Add-on** for each extra, with its name and price.
5. Click **Save Configuration**.

**Package Name** (Where: Pricing & Packages · Default: New Package · Admins only)
Each package name is unique per dropzone. **Renaming a package creates a new package** rather than renaming the old one, so remove or deactivate the old one afterward.

**Base Price** (Where: Pricing & Packages · Default: 269 for a new package · Admins only)
The package price in your dropzone currency.

**Taxable** (Where: Pricing & Packages · Default: Off · Admins only)
Whether tax applies to the base price. Add-ons have their own **Taxable** checkbox. Turn on tax collection in [Dropzone settings](https://ezdzskydive.com/docs/dropzone-settings#sales-tax).

**Active** (Where: Pricing & Packages · Default: On · Admins only)
Turn off to hide a package without deleting it. Use this for seasonal products.

**Package Photo URL** (Where: Pricing & Packages · Default: Empty · Admins only)
Optional image link. Square or 16:9 works best.

**Restrict to specific times** (Where: Pricing & Packages · Default: Off · Admins only)
Limits when a package is offered. Set **From** and **Until** times. A customer only sees the package when their chosen time falls inside the window. Example: make a "Sunset Skydive" visible from 4:30 PM so a 3 PM customer sees only your regular packages and a 5 PM customer sees both.

**Display Order** (Where: Pricing & Packages · Default: Position in list · Admins only)
Lower numbers appear first.

> **Changing a booking's package later**
>
> Open the booking in the tandem bookings desk and use **Edit Package**, then **Charge Balance** or **Refund**. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk).

## Coupons and gift certificates

The **Coupons & Gift Certs** tab has two buttons: **+ Coupon** and **+ Gift Cert**.

| Item | Fields |
| --- | --- |
| Coupon | Code (like `SUMMER20`), Name, Discount Type (percentage, fixed amount, or comp a package), amount, Max Uses (blank is unlimited), Expires, Active |
| Gift certificate | Card Title, Type (gift card amount or package comp), amount or package, Expires, Active |

Each row has **Share**, which creates a QR code and a ready-to-print card (minimal, dark, or branded) with **Copy Link**, **Download QR**, and **Print / PDF**. Coupon links look like `/booking/{slug}?coupon=CODE`, which pre-fills the code. Customers can also type a code at checkout under **Have a coupon or gift certificate code?**

## Preview and embed

The **Preview & Embed** tab shows a live preview of your booking page. **Open in new tab** opens it full size.

### Put it on your website

1. Make sure the booking page is **Active** (see General Settings).
2. Click **Copy Embed Code**.
3. Paste it into your website's HTML where you want the booking form to appear.
4. Reload your site and book a test.

The code looks like this. Copy yours from the tab rather than retyping it, because it includes your slug and dropzone name:

```html
<!-- EZDZ Booking Widget -->
<div id="ezdz-booking-container"></div>
<script
  async
  src="https://ezdz.xyz/booking-embed.js"
  data-slug="your-slug"
  data-dropzone-name="Your Dropzone">
</script>
```

The widget sizes itself, works on phones and tablets, and shows a small "Powered by EZDZ" link. There is a matching **Gift Certificate Embed Code** for selling gift certificates from your site.

> **Test before you advertise**
>
> Before you share the link, consider placing one real booking on the cheapest slot with your own card, checking the confirmation email, then refunding it from the bookings desk. It is a real charge until you refund it. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments) and [Email setup](https://ezdzskydive.com/docs/email-setup).

---

# Stripe & payments

> Connect your Stripe account to take card bookings, choose deposit or full payment, understand EZDZ plans and platform fees (Starter 4%, Pro $199/mo + 2%), and use fee pass-through.

Source: https://ezdzskydive.com/docs/stripe-and-payments · Last updated: 2026-11-03 · Audience: DZ admins · Support: door@ezdz.xyz

EZDZ uses **Stripe Connect**. Customer payments go straight to **your own Stripe account**, and EZDZ's platform fee is taken automatically. You must connect Stripe before you can take card bookings.

## Connect Stripe

Only DZ Admins and DZ Owners can do this. It takes about 3 minutes.

1. Go to **DZ Admin → Settings → Booking System Config → Payment Settings**.
2. In the **Stripe Connect** card, click **Connect with Stripe**.
3. In **Connect Stripe Account**, choose your **Country** and confirm the **Currency** (it fills in from the country).
4. Click **Continue to Stripe**.
5. Finish Stripe's hosted form: business details, bank account, and identity verification.
6. Stripe sends you back to EZDZ. Open the same card and check the status.

> **Country and currency are permanent**
>
> Stripe can't change the country or currency after the account is created. Check them before you continue.

### Check your status

Once connected, the card shows your account ID and two tiles:

| Tile | Meaning |
| --- | --- |
| Payments | **Enabled** means you can charge cards. **Pending verification** means Stripe still needs something |
| Payouts | **Enabled** means money can reach your bank account |

If either tile says **Pending verification**, a yellow box lists what Stripe still needs. Click **Resume Onboarding** to finish. Use **Refresh** to re-check, and **Open Stripe Dashboard** to see payments, payouts, and disputes in Stripe.

> **You're set when**
>
> Both tiles read **Enabled**.

### If Stripe isn't connected

A booking can still be created, but online payment fails. The customer sees "Online payment is not available" or a **Retry payment setup** button, and the booking stays unpaid. Connect Stripe before you share your booking page.

## Payment options

Still under **Payment Settings**, the **Payment Options** panel controls what customers pay at checkout. Click **Save Payment Options** after changing it.

**Collect deposit now, balance on arrival** (Where: Payment Options · Default: Selected · Admins only)
Customers pay the **Deposit Amount** online and the rest at the dropzone. Collect the balance with **Charge Balance** on the bookings desk. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk).

**Collect full amount upfront** (Where: Payment Options · Default: Not selected · Admins only)
Customers pay the full price when they book.

**Deposit Amount** (Where: Payment Options · Default: 50 · Admins only)
Only shown in deposit mode. This is what customers pay up front.

**Let customers choose deposit or pay in full** (Where: Payment Options · Default: Off · Admins only)
When on, your current setting stays the default and customers can pick the other option.

**Pass platform fee to customers** (Where: Payment Options · Default: Off · Admins only)
Adds a surcharge at checkout instead of taking the fee out of your payout. See the next section.

**Fee Label** (Where: Payment Options · Default: Booking Fee · Admins only)
The text customers see for the surcharge on checkout and receipts. Examples: "Booking Fee" or "Service Fee".

## Plans and fees

Two plans, both with no setup fees or contracts. Standard Stripe processing (2.9% + $0.30 per card payment) is separate and is paid from your own Stripe account.

| | Starter | Pro |
| --- | --- | --- |
| Monthly price | $0 | $199 |
| EZDZ platform fee | 4% of each payment | 2% of each payment |
| Best for | Seasonal or lower-volume dropzones | Busy dropzones |

See [pricing](https://ezdzskydive.com/pricing) for the full comparison. A flat-rate plan with no percentage fees is available on request.

### What customers pay with pass-through

If you turn on **Pass platform fee to customers**, the customer pays a surcharge and you keep the whole booking amount. **Customers pay 4% by default on both plans.** Your EZDZ contact can set a custom lower rate (up to 4%) for you.

Example on a $100 booking, before Stripe's processing fee and any tax:

| Plan | Pass-through | Customer pays | EZDZ platform fee | You receive |
| --- | --- | --- | --- | --- |
| Starter | Off | $100.00 | $4.00 | $96.00 |
| Starter | On | $104.00 | $4.00 | $100.00 |
| Pro | Off | $100.00 | $2.00 | $98.00 |
| Pro | On (default 4%) | $104.00 | $2.00 | $102.00 |

The platform fee is calculated on the amount before tax. On Starter with pass-through, the [$0 EZDZ Guarantee](https://ezdzskydive.com/guarantee) covers the fee if a payment doesn't cover it.

> **Which plan?**
>
> Pro pays for itself when lowering the fee from 4% to 2% saves you more than $199 a month. Use the calculator under **Subscription Plan** in Payment Settings to compare with your own numbers. Its pass-through checkbox is only a what-if toggle and doesn't change your settings.

### Switch plans

In **Payment Settings → Subscription Plan**:

- **Upgrade to Pro:** you need a billing card first. Click **Add Subscription Payment Method**, save a card, then **Upgrade to Pro**. The $199 is charged right away and renews monthly.
- **Switch to Starter:** your Pro plan runs to the end of the current period, then drops to Starter. A banner reads "Scheduled to downgrade to Starter."
- **Resume Pro Plan:** cancels a scheduled downgrade.

The billing card is separate from customer payments. It's how you pay EZDZ for the Pro subscription. If that card fails, the plan shows **past_due**; update it with **Update Subscription Payment Method**.

## Stripe Terminal (in-person payments)

If you take cards at the desk, connect a Stripe Terminal reader from **Payment Settings → Stripe Terminals**.

1. On the reader, open **Settings → Register** to find its registration code.
2. In EZDZ, enter a **Terminal Label** (like "Front Desk") and the **Registration Code**.
3. The first time only, enter your dropzone address.
4. Click **Connect Terminal**. It then appears under **Connected Terminals** with an online or offline status.

Use **Remove** to unregister a reader. Terminals are used for balances and custom charges on the bookings desk.

## Next

- Did a customer pay, or did a card decline? [Checking payments](https://ezdzskydive.com/docs/checking-payments)
- Taking balances and refunds: [Bookings desk](https://ezdzskydive.com/docs/bookings-desk)

---

# Checking payments

> How to tell whether a customer paid, why a card declined, and what to do next: payment status badges, the Show unpaid filter, Charge Balance errors, refunds, and Stripe checks.

Source: https://ezdzskydive.com/docs/checking-payments · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

"Did their payment go through?" and "My card declined" are the two most common questions. You can answer both without leaving EZDZ and your Stripe dashboard.

## Did they pay?

Open **Bookings** and find the booking (search by name or booking reference). Each booking shows a **payment status badge**:

| Badge | Color | Meaning |
| --- | --- | --- |
| PAID | Green | Paid in full (including any coupon or gift certificate) |
| PENDING | Yellow | Unpaid or only a deposit has been paid. The balance is still owed |
| FAILED | Red | A card payment was attempted and declined |
| REFUNDED, PARTIALLY_REFUNDED | Red | Money was returned in full or in part |
| CANCELLED | Red | The booking was cancelled |

Open the booking to see the detail: **paid / total** with the amount **due** in red, any refund and its reason, and how it was paid (**Stripe**, **Cash**, **Other**, **Non-Rev**, or a **Gift Cert**).

> **Unpaid and failed bookings are hidden by default**
>
> The bookings list only shows bookings with money collected. To see abandoned, walk-in, and failed bookings, tick **Show unpaid**. If a customer says they booked and you can't find them, turn this on first.

> **Still not sure? Check Stripe**
>
> If the badge, the amount, or the customer's story doesn't add up, log in to your **Stripe Dashboard** and search for the customer's email or the amount. Stripe is the source of truth for whether money actually moved, and it shows the exact decline reason EZDZ doesn't. From EZDZ you can open it with **Open Stripe Dashboard** in **Settings → Booking System Config → Payment Settings**. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments).

A booking with a deposit stays **PENDING** until the deposit and any discounts cover the total. That is normal. Use **Charge Balance** to collect the rest.

## A card declined

When Stripe declines a card payment, EZDZ marks the booking **FAILED**. EZDZ doesn't show the bank's reason, but Stripe does.

1. In EZDZ go to **Settings → Booking System Config → Payment Settings** and click **Open Stripe Dashboard**.
2. Open **Payments** and search for the customer's email or the amount.
3. Open the failed payment. Stripe shows the decline reason, such as insufficient funds, expired card, or a bank block.
4. Tell the customer what happened and choose an option below.

What you can do:

- **Customer retries.** They can try another card from the payment link in their booking email, or book again. Booking recovery links resume the same booking.
- **You collect it.** Open the booking and use **Charge Balance** with a different card or the card reader. If there's no saved card, EZDZ opens the card entry window.
- **They pay another way.** Record it with **Cash**, **Other**, or **Gift Cert** on the booking.

There is no admin "retry" button. Charging again is always a new charge.

## Taking money on the bookings desk

| Button | Use it for |
| --- | --- |
| Charge Balance | Collect exactly what's still owed. Charges the saved card, or opens card entry |
| Custom Charge | Extras after the balance is paid: gear rental, coaching, pro shop |
| Cash, Other, Gift Cert | Record a payment taken outside Stripe |
| Non-Rev | Mark a comped booking (pending bookings only) |
| Refund | Return money, in full or in part |

If **Charge Balance** fails, the message tells you why:

| Message | What it means |
| --- | --- |
| Card declined | The saved card was declined. Try another card |
| Payment requires additional authentication | The bank wants the customer to approve it. Have them pay manually |
| No saved payment method found | The customer has no card on file. Use card entry or the reader |

> **Upgrading a package?**
>
> Click **Edit Package** first, then **Charge Balance**. The balance updates automatically and your records stay clean. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk).

## Refunds

Click **Refund** on a paid booking. You'll see what was charged and what's refundable. Enter the amount (full or partial), pick a reason, optionally notify the customer, and confirm.

Reasons: Customer Request, No Show, Weather Cancellation, Service Issue, Administrative, Other. Refunds go back to the original payment method. If you refund directly in the Stripe Dashboard instead, EZDZ records it as an **Administrative** refund on the booking.

## Payouts and verification

Money reaches your bank on Stripe's payout schedule. Check **Open Stripe Dashboard → Balances / Payouts** for timing. If payments or payouts show **Pending verification** in Payment Settings, finish **Resume Onboarding**. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments).

## Your EZDZ subscription

If you're on Pro and the billing card fails, your plan shows **past_due** under **Subscription Plan**. Update the card with **Update Subscription Payment Method**. This only affects your Pro subscription, not customer payments.

---

# Email setup

> Connect your SMTP account so booking confirmations, reminders, and review requests send under your dropzone's name. Includes Gmail and Outlook settings, test steps, and the automated templates.

Source: https://ezdzskydive.com/docs/email-setup · Last updated: 2026-11-03 · Audience: DZ admins · Support: door@ezdz.xyz

Booking confirmations, reminders, abandoned-booking follow-ups, and review requests are sent from **your** email account, so customers see your dropzone's name. You connect an SMTP account once.

> **No email setup, no customer emails**
>
> If email isn't configured and enabled, customer emails are **not sent**, and nothing in the booking flow tells you. Set this up before you launch.

## Before you start

- Finish your branding first in **Booking System Config → General Settings**: logo URL, colors, contact email, contact phone, and review link. Emails use them.
- Get SMTP details from your email provider. A dedicated address like `bookings@yourdropzone.com` works best.

| Provider | SMTP host | Port | Notes |
| --- | --- | --- | --- |
| Gmail | `smtp.gmail.com` | 587 | Turn on 2-step verification and create an **App Password**. Use that as the password |
| Outlook / Microsoft 365 | `smtp-mail.outlook.com` | 587 | Use your full email as the username |
| Your own domain | From your host | 587, 465, or 25 | Port 587 with TLS is the usual choice |

## Connect your email

1. Go to **DZ Admin → Settings → Booking System Config → Email Settings**.
2. Under **SMTP Configuration**, fill in the fields below.
3. Tick **Use TLS/SSL** and **Enable Email System**.
4. Click **Save Configuration**.
5. Click **Test Connection**. You should see "SMTP connection test successful."
6. Click **Send Test Email** and enter your own address to confirm it arrives.

![Email Settings: SMTP configuration and the automated email templates (example values shown)](https://ezdzskydive.com/docs/email-setup/email-settings.webp "1105x1180")

**SMTP Host and SMTP Port** (Where: Email Settings · Default: Port 587 · Admins only)
The server address and port from your provider.

**Username and Password** (Where: Email Settings · Default: Empty · Admins only)
Your SMTP login. For Gmail, use an app password, not your normal password. The password is stored encrypted and is optional when you edit settings later.

**Sender Name and Sender Email** (Where: Email Settings · Default: Empty (required) · Admins only)
The "From" name and address customers see.

**Reply-To Email** (Where: Email Settings · Default: Empty · Admins only)
Optional. Where customer replies go.

**Enable Email System** (Where: Email Settings · Default: Off for a new setup · Admins only)
Turn this on, or no emails are sent even if the connection tests fine.

## Templates and automations

The first time you save your email configuration, EZDZ creates four templates and turns on four automations for you:

| Automation | Sends | When |
| --- | --- | --- |
| Booking Confirmation | Default Booking Confirmation | Right after a booking is created |
| Day-Before Jump Reminder | Default Day-Before Reminder | 9:00 AM the day before |
| Abandoned Booking Follow-up | Default Abandoned Booking | 30 minutes after an unfinished booking |
| Post-Jump Review Request | Default Review Request | 60 minutes after the load lands |

Open a template to **Preview**, **Edit**, or **Send test to your inbox**. Use **New Template** to create your own (types: Confirmation, Reminder, Thank You, Review Request, Custom). Templates support merge fields such as `{{customerName}}`, `{{bookingReference}}`, and `{{paymentUrl}}`. The editor lists them all.

> **Branding carries into emails**
>
> Colors and your logo from General Settings flow into the templates automatically, so update them there rather than in each template.

## Staff notifications are separate

New-booking alerts to your team are controlled in **General Settings** with **Email me when new bookings come in** and **Send notifications to**. They don't need SMTP. See [Booking system](https://ezdzskydive.com/docs/booking-system#general-settings).

## Keeping email healthy

- Send a test email every so often, and after any password change.
- If your email provider forces a password change, update the **Password** here and run **Test Connection** again.
- Not seeing emails? See [Troubleshooting](https://ezdzskydive.com/docs/troubleshooting).

---

# Bookings desk

> Run the tandem bookings desk: find, reschedule, cancel and refund bookings, send weather-hold emails, change packages, collect balances, and take phone reservations or walk-ins.

Source: https://ezdzskydive.com/docs/bookings-desk · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

The tandem bookings desk is where staff handle customers day to day. Open **DZ Admin → Bookings**.

## Find a booking

- Search by **customer name** or **booking reference**.
- Use the **date picker** to jump to a day.
- Switch between **List**, **Calendar** (a month view for planning), and **On Hold**.
- The list shows payment status, package, and waiver status at a glance.

> **Can't find someone?**
>
> Tick **Show unpaid**. By default the desk hides bookings with no money collected, including abandoned checkouts, failed payments, and walk-ins you created unpaid. See [Checking payments](https://ezdzskydive.com/docs/checking-payments).

## Reschedule customers

Use this for a weather move or a customer request. You can move one booking or a whole day.

1. Tick the booking checkboxes. Use **Select All** to grab everyone on a day.
2. Click **Send Email** first to tell customers about the change.
3. Click **Change Time** and choose the new day and time.

Both actions work on the same selection, so you don't have to reselect between steps.

## Message customers

For weather holds, parking changes, waiver links, or anything else:

1. Filter to the date you need.
2. Tick the customers, or click **Select All**.
3. Click **Send Email**, write your message, and send.

## Cancel a booking

There is no separate cancel button. To cancel:

1. Click **Refund** and refund the right amount. Partial refunds are supported.
2. Click **Send Email** to let the customer know.

Check your deposit policy before you refund. Refunds go back to the original payment method. More in [Checking payments](https://ezdzskydive.com/docs/checking-payments#refunds).

## Change a booking's package

1. Open the booking and click **Edit Package**.
2. Change the package or add or remove add-ons, then save. The total updates automatically.
3. Click **Charge Balance** if the customer now owes more, or **Refund** if the new package costs less.

> **Always edit first, then charge**
>
> **Charge Balance** calculates against the updated total, so you collect exactly the right amount without math, and the upsell shows cleanly in your records.

## Take money

| Button | When to use it |
| --- | --- |
| Charge Balance | The customer owes money on this booking, whether they paid a deposit online or are paying at the counter. Use the card reader or manual entry |
| Custom Charge | Extras after the balance is paid: AFF gear rental, coach fees, pro shop, video upgrades. Enter a description and amount |
| Cash, Other, Gift Cert | Record a payment taken outside Stripe |

For purchases not tied to any booking (walk-up pro shop sales), use **Create Charge** on the main DZ Admin overview.

## Assign tandems to loads

You can do it from either side:

- **From the booking:** find it, click **Assign to Load**, choose the load, then the instructor.
- **From the load:** open the load, click an empty slot, and pick the tandem booking and instructor in the window. A videographer can be added there too.

See [Manifest & loads](https://ezdzskydive.com/docs/manifest-and-loads).

## Walk-ins and phone reservations

The top of the bookings desk has two buttons for creating a booking yourself. They look similar but treat payment very differently.

| | **+ Walk-in** | **+ Reservation** |
| --- | --- | --- |
| Takes a card payment now | No | **Yes, required** |
| Booking is created | Unpaid | Only after the card is charged |
| Shows on the list | Only with **Show unpaid** on | Normal list, with the money collected |
| Use it for | Someone standing at the desk who will pay later or in person | Phone bookings, or when you always require a deposit or full payment up front |

### Create a reservation

Click **+ Reservation** (or **Create Reservation** in the quick actions on the DZ Admin overview). The **Create Reservation** window has two tabs: **Reservation** and **Gift Certificate**. On the **Reservation** tab, work down the four steps:

1. **How many jumpers?** Use **+** and **−** (1 to 10).
2. **Pick a date & time.** Choose from the calendar and the time slots. If an admin has closed that date or time with a [schedule override](https://ezdzskydive.com/docs/booking-system#schedule-overrides), it is flagged. You can still book it, so make sure a jump can actually run first.
3. **Package & add-ons.** Only packages available for that date and time are listed. The price summary shows the full price, any deposit, tax, and any booking fee, and ends with **Due Now**.
4. **Customer info.** Name, email, and phone are required for Jumper 1. For a group, other jumpers use Jumper 1's email and phone if you leave theirs blank. Weight and emergency contact are optional under **Show optional fields**.

Enter the customer's card at the bottom and click **Pay $X & Confirm Booking**. What gets charged follows your [payment options](https://ezdzskydive.com/docs/stripe-and-payments): the deposit if you take deposits, or the full price if you require full payment. Tax is always collected in full up front. If you pass the fee to customers, it is added to the amount due now. A deposit booking has a remaining balance, collected later with **Charge Balance** like an online booking.

When the payment goes through you get a **Reservation Confirmed** screen with the amount charged and a reference for each jumper. The confirmation email is sent once the payment is recorded, and only if [email is set up](https://ezdzskydive.com/docs/email-setup).

The **Gift Certificate** tab sells a certificate over the phone the same way: pick an amount, then click **Pay $X & Issue Certificate**.

> **The card was charged but the booking didn't save**
>
> If you see a message that the card **WAS charged** but the booking could not be confirmed, **do not charge the card again.** Open the bookings list and look for the customer on that date first. If it isn't there, click **Retry saving booking**. If it keeps failing, email door@ezdz.xyz with the payment ID shown in the message.

### Create a walk-in

Click **+ Walk-in** to add a booking without taking payment. It is created unpaid, so turn on **Show unpaid** to find it. Record the money later with **Charge Balance**, **Cash**, or **Other** when the customer pays.

## Keep availability in step with reality

If weather or staffing changes, adjust availability so the booking page matches. Add a block with [Schedule overrides](https://ezdzskydive.com/docs/booking-system#schedule-overrides), turn a time slot off, or lower **Max Bookings**.

---

# Manifest & loads

> Create loads, manifest tandems, fun jumpers, and groups, run the load calls, move or remove people, use the wait list, and set license holds, in the order a manifest desk does it.

Source: https://ezdzskydive.com/docs/manifest-and-loads · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

The manifest desk keeps aircraft full and everyone informed. Open **DZ Admin → Loads**. Every change shows live on the [Public Display and TV mode](https://ezdzskydive.com/docs/public-display) and in jumpers' dashboards.

## Create a load

1. Click **Add New Load**.
2. Choose the **aircraft**.
3. Optionally add an **estimated takeoff time** and a **pilot**.
4. Click **Create**. The load opens right away.

Capacity comes from the aircraft. See [Aircraft & gear](https://ezdzskydive.com/docs/aircraft-and-gear).

## Manifest people

### A tandem

Use whichever fits your workflow:

- **From the bookings desk:** find the booking, click **Assign to Load**, pick the load and an instructor.
- **From the load:** click an empty slot, pick the tandem booking and instructor, and add a videographer if needed.

### A fun jumper

1. Open the load and click an open slot.
2. For a registered jumper, type their name and select them. For a guest, type the guest's name instead.
3. Choose the jump type (belly, freefly, tracking, and so on) and confirm.

If your dropzone uses [USPA verification](https://ezdzskydive.com/docs/uspa-verification), you may see a warning here with an option to override it.

> **Let jumpers self-manifest**
>
> If **Allow Self-Manifest** is on, fun jumpers add themselves from their dashboard. It cuts workload at busy times. See [Dropzone settings](https://ezdzskydive.com/docs/dropzone-settings).

### A group jump

Click **Group Jump** on the load and add each member the same way (search a registered jumper or enter a guest name, then pick a jump type). Exit order is arranged automatically by category.

## Call the load

Buttons on the load update its status live, and everyone watching sees it instantly:

1. **15 Min**, **10 Min**, **5 Min**, **Now**: call times, used in order as departure gets closer.
2. **In The Air**: press when the aircraft departs. If **Auto-deduct Credits** is on, credits come off now.
3. **Landed**: press when everyone is back on the ground. This closes out the load.

Pressed the wrong one? Set the load back to **Manifesting** to reverse a call.

## Move or remove people

- **Remove** takes someone off a slot.
- **Drag and drop** a jumper from one load slot to another to move them.
- **Remove Load** removes a load, and asks whether to delete it or **bump** everyone to another load. Use this to merge partly-filled loads.

## Wait list

When the wait list is enabled (use **Create Wait List** on the loads screen), fun jumpers can't add themselves directly to loads. They use **Join Wait List**, and you drag them onto open slots. It works for fun jumpers, instructors, students, and tandems. It's useful on busy days when you want tandems and instructors placed before fun jumpers fill the plane. You manage the wait list from the loads screen.

## License hold

Open a load and click **Set License Hold**, then choose the minimum license level. Jumpers below that level can't manifest on that load, from the admin side or self-manifest. It applies instantly.

## Quick reference

| I want to... | Do this |
| --- | --- |
| Start a new load | **Loads → Add New Load** |
| Put a tandem on a load | **Assign to Load** on the booking, or click an empty slot |
| Reverse a mistaken call | Set the load back to **Manifesting** |
| Merge two loads | **Remove Load**, then bump jumpers to the other load |
| Charge for gear or coaching | **Custom Charge**. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk) |

---

# Public Display & TV mode

> Put a live load board on a TV in your loading area. What the Public Display shows, how to open full-screen TV mode, the weather pop-up, and the URL options.

Source: https://ezdzskydive.com/docs/public-display · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

EZDZ has two live load boards that jumpers and customers can read without asking the manifest desk: the **Public Display** and a full-screen **TV mode**. Both update as you manifest, call, hold, and launch loads. They are display-only, so there is nothing on them to change, and they are built from the public load board, which leaves out contact details and credits.

## Pick the right one

| | **Public Display** | **TV mode** |
| --- | --- | --- |
| Where | **Public Display** in the top navigation | **TV Mode** button on the Public Display, or the `/tv` address |
| Made for | A laptop, tablet, or phone | A TV or large monitor in the loading area |
| Shows | The load in the air, the next loads, winds, and the exit order | Every active load as a card with its estimated exit order |
| Weather | Always on screen | Pops up now and then |

## Public Display

Click **Public Display** in the top navigation. You get:

- The load that is **In The Air**, with a running timer since takeoff.
- Up to three active loads as cards (**Manifesting**, **On Call**, or **On Hold**) with their call stage and countdown to the estimated takeoff. More loads are listed in a compact **Upcoming** list beside them.
- A live **winds and weather** panel for your dropzone.
- The **Exit Order Manifest**.
- A clock in your dropzone's timezone, and a dropzone selector if you have more than one.

## TV mode

Open TV mode in either of two ways:

1. On the Public Display, click **TV Mode** (the TV icon, top left).
2. Or go straight to the `/tv` address on your EZDZ app link.

![TV mode: a full-screen board with every active load, its status and countdown, and the estimated exit order (demo data)](https://ezdzskydive.com/docs/public-display/tv-mode.webp "1200x645")

### What's on the board

- **Header:** your dropzone name, a count of loads by status, and the clock in your timezone.
- **One card per active load:** **In The Air**, **On Call**, **On Hold**, and **Manifesting**. Landed loads are not shown.
- **Status and timer:** each card shows its status and a timer. A load in the air counts up from takeoff and shows when it departed. Other loads count down to the estimated takeoff, and a `+` in front means the load is running late by that much.
- **Call stage:** **15 MIN CALL**, **10 MIN CALL**, **5 MIN CALL**, or **NOW CALL**. The card turns red at 5 minutes and under.
- **Estimated exit order:** the people on the load in exit order, with their jump type, plus how many are on the load and how many slots are **open**. Groups show their members underneath.

| Card color | Meaning |
| --- | --- |
| Green | In the air |
| Amber | On call |
| Red | On call, 5 minutes or less |
| Orange | On hold |
| Blue | Manifesting |

### Size and paging

The board fits the screen. A phone shows one card, and a big TV shows up to five columns and two rows. If you have more active loads than fit, it flips through them every 20 seconds and shows **Page 1 of 2** with the number of loads at the bottom.

### Weather pop-up

By default the board shows the **jump conditions** for 10 seconds every minute: winds and gusts at 0, 3,000, 6,000, 10,000, 13,000, and 15,000 ft, plus a Windy map. The forecast is for general reference only, so always check the weather yourself before jumping or flying. It uses your dropzone's latitude and longitude, so make sure they are set in [Dropzone settings](https://ezdzskydive.com/docs/dropzone-settings).

You can change the timing with options on the address, in seconds:

| Address | Result |
| --- | --- |
| `/tv` | Default: weather 10 seconds, every 60 seconds |
| `/tv?weather=30&weatherFor=5` | Show the weather for 5 seconds, every 30 seconds |
| `/tv?weather=off` | Never show the weather |

### Controls

Move the mouse or tap the screen and the controls appear for about 4 seconds, in place of the status counts:

- A **theme** button to cycle light, dark, and system.
- A **dropzone** picker, only if you have more than one dropzone.
- **Exit TV mode**, which takes you back to the Public Display.

The dropzone you choose is remembered on that browser, and it is shared with the Public Display.

## Set up a TV

1. **Open a browser on the TV or on a computer plugged into it.** Any modern browser works.
2. **Go to your EZDZ app link followed by `/tv`.** Add `?weather=off` if you don't want the weather.
3. **Make it full-screen.** Press **F11** (or your browser's full-screen option) so the browser bars are hidden.
4. **If you have more than one dropzone, pick yours.** Move the mouse to reveal the picker. It stays selected next time.

> **Keep the screen awake**
>
> A TV or computer that goes to sleep shows a blank screen. Turn off sleep or screen saver for the display.

> **It only shows what's manifested**
>
> The board is a live view of your loads. If a load isn't there, check that it isn't **Landed** and that you've manifested people on it. See [Manifest & loads](https://ezdzskydive.com/docs/manifest-and-loads).

## Troubleshooting

| Problem | Try this |
| --- | --- |
| The board is empty | There are no active loads. Create one under **DZ Admin → Loads**. Landed loads are hidden. |
| It shows the wrong dropzone | Move the mouse to show the dropzone picker, or use the selector on the Public Display. |
| No weather appears | Check that the dropzone has a latitude and longitude, and that you didn't use `?weather=off`. |
| The numbers look stuck | Refresh the page. If it keeps happening, email door@ezdz.xyz. |

---

# Staff & jumpers

> Manage your team and fun jumpers: roles, instructor and pilot flags, adding jumpers, credits and packages, reconciliation mode, reserve repack dates, and what staff can see.

Source: https://ezdzskydive.com/docs/staff-and-jumpers · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

This page covers the people side of your dropzone: your team and your fun jumpers. For USPA checks, see [USPA verification](https://ezdzskydive.com/docs/uspa-verification).

## Manage staff

Open **DZ Admin → Settings → Manage Staff**. It lists everyone registered at your dropzone, with a **Search by name** box.

| Control | What it does |
| --- | --- |
| Role dropdown, then **Save** | Sets Fun Jumper, DZ Staff, DZ Admin, or DZ Owner. Visible to admins and owners |
| **Is Instructor** | Marks someone as an instructor. Saves immediately and applies to the person everywhere |
| **Is Pilot** | Allows them to be chosen as a pilot on loads. Per dropzone |

You can't demote the last admin or owner. DZ Staff can't hand out Admin or Owner roles.

![Manage Staff: role dropdown plus Is Instructor and Is Pilot switches for each person](https://ezdzskydive.com/docs/staff-and-jumpers/manage-staff.webp "1105x795")

> **The person must register first**
>
> Only people who have created an account and clicked **Register at {Dropzone name}** show up here. See [Account & access](https://ezdzskydive.com/docs/account-and-access). After you change someone's role they must sign out and back in.

> **What DZ Staff see**
>
> Staff see the day-to-day screens, and in Settings they see **Manage Staff** only. Booking settings, payments, and dropzone settings are for admins.

## Add fun jumpers

- **One-off visitor:** add them as a **guest** straight onto a load. No profile needed.
- **Regular jumper (best):** have them create their own account and register at your dropzone. Their license, canopy, reserve, and USPA info are then tracked for you, and they can sign waivers and self-manifest.
- **Create a profile for them:** **Fun Jumpers → Add New User**. This works, but they can't log in to that profile themselves, so they can't sign waivers online. License details can still be edited by you.

## Tickets and credits

One credit is one fun jump. A jumper's credit balance drops by one when you manifest them, and the credit is finalized when the load goes **In The Air**. If you remove them from the load before then, the credit goes back. There are three ways to add credits:

1. **Jumper buys them.** From their dashboard with a saved card. No action from you.
2. **You sell them.** **Fun Jumpers → find the jumper → Buy Credits.** Enter the number and price, then take payment with the card reader or manual entry.
3. **Add credits manually.** On the same screen, enter an amount and click **Add**. Nothing is charged, which is handy for comps, corrections, or cash sales logged elsewhere.

### Choose how your dropzone runs credits

Credit rules apply to **fun jumps** (belly, freefly, wingsuit, tracking, angle, solo, and hop & pop). Tandems and AFF don't go through these credit checks.

There are four ways to run credits. Pick the one that matches how you collect money. The settings live in two places: **Require Credits** and **Fun Jumper Ticket Price** are in [Dropzone settings](https://ezdzskydive.com/docs/dropzone-settings), and the package and reconciliation switches are under **Fun Jumpers → Packages & Rates**.

| Mode | How it works | Use it when |
| --- | --- | --- |
| **1. Credits not required** | Anyone can be manifested. Credits aren't checked and nothing is tracked. | You collect payment some other way and don't need a balance. |
| **2. Require Credits** | A jumper needs at least one credit or manifesting is blocked with "No credits available. Please purchase a ticket." | You want everyone paid up before they board. The simplest option. |
| **3. Require Credits + custom packages** | Turn on **Enable Custom Fun Jump Packages**. Each credit remembers the price paid for it. Manifesting uses the cheapest eligible credit. A credit that costs less than the jump requires is blocked ("Your credits don't cover…"). | You sell blocks like a 10-Jump Block, or have different rates for different jumps. |
| **4. Reconciliation Mode** | Manifesting is **never blocked**. If a jumper has no credit, the jump is recorded as an outstanding balance. You collect it on the **Reconciliation** tab. | You settle up at the end of the day or week, or run an honor-system or tab-based operation. |

> **Reconciliation Mode takes priority**
>
> When **Reconciliation Mode** is on, jumpers aren't blocked for missing credits even if **Require Credits** is also on. Staff see "A deficit will be tracked in reconciliation" instead of an error.

### Custom fun jump packages

Under **Fun Jumpers → Packages & Rates**, switch on **Enable Custom Fun Jump Packages**. The **Base Rate** card is always listed. It is one credit at your **Fun Jumper Ticket Price**, and you can mark it **Active** or **Inactive**. Click **Add Package** to create your own:

| Field | What it does |
| --- | --- |
| **Name** | Shown to jumpers, for example "10-Jump Block". Must be unique. |
| **Credits** | How many credits the jumper gets. |
| **Price** | The total price of the package, not per credit. EZDZ divides it by the credits to get the per-credit value. |
| **Description** | Optional. |
| **Complimentary (comp)** | Staff-granted only. Never shown for purchase, and **Purchasable by jumpers** is turned off. |
| **Purchasable by jumpers** | Shows the package in the jumper's buy flow. |
| **Purchasable by staff** | Offers the package to jumpers flagged as **Instructor**, for example an instructor rate. |
| **Taxable** | Adds your sales tax to this package. |

Each package also has an **Active / Inactive** switch that controls whether its credits can be used to manifest. Use it to turn off standard tickets during a boogie without deleting anything. You can also **Edit** or **Remove** a package.

> **Credits are tied to the price paid**
>
> In mode 3, a jumper holding $20 credits can't board a $30 jump. Tell them to buy the right ticket. If you'd rather let them fly and collect the difference, run Reconciliation Mode with **Allow Credit Upgrades**.

### Reconciliation Mode

Turn on **Reconciliation Mode** in **Fun Jumpers → Packages & Rates** ("Track outstanding balances for end-of-day or end-of-week payment collection"). A **Reconciliation** tab then appears next to **Jumpers** and **Packages & Rates**.

**What gets tracked**
- **Unpaid jumps.** A jumper with no credit is still manifested. The price of that jump is recorded against them as an outstanding balance.
- **Upgrade differences.** A jumper holding a cheaper credit can still manifest on a pricier jump. With **Allow Credit Upgrades** on (it needs Reconciliation Mode), the difference is recorded as outstanding. With it off, the cheaper credit simply covers the jump and **no difference is recorded**, so turn it on if you want to collect the gap.
- If a jumper is removed from the load before takeoff, an unsettled deficit for that jump is deleted and a reserved credit returns to their balance.

**Collect the money.** Open **Fun Jumpers → Reconciliation**. Each jumper with something owed shows their credit balance and the total, with an "upgrade diff" and "unpaid jumps" breakdown. Click **Details** to see which jumps made up the balance. Click **Collect Payment** and choose **Cash** or **Card / Terminal**. Once recorded, the balance is settled and the jumper leaves the list. The tab shows **No Outstanding Balances** when everyone is settled up, and **Refresh** reloads it.

> **Reconcile at the end of the day**
>
> Check the **Reconciliation** tab before you close up. Taking cash or a card then is easier than chasing a jumper next weekend.

> **Jumps with no price aren't tracked**
>
> If a jump's price is zero (for example your ticket price is 0), no outstanding balance is recorded for it.

## Edit a jumper and keep reserve dates current

Open **Fun Jumpers**, find the jumper, and click **Edit** to update nickname, canopy size, exit weight, license, and the **reserve repack date**. The system checks the repack date when manifesting and flags out-of-date reserves, so keeping it current avoids last-minute holds. Remove jumpers from the roster when they leave.

## Waivers

Waivers are set up under **Settings → Waivers** (admins). It's a one-time **Enable Waiver Integration** step, then you choose templates and rules.

| Setting | Options and default |
| --- | --- |
| When to Send Tandem Waivers | With the booking confirmation email (default), as a separate email, manual only, or disabled |
| Fun Jumper Waiver Workflow | Dashboard, signed by the jumper (default), email on request, auto email, or admin sends |
| Show waiver status in fun jumper dashboard | On by default. Shows alerts when invalid or expiring within 30 days |
| Require Valid Waiver to Manifest | Off by default. Blocks manifesting without a valid waiver |
| Allow Admin Override | On by default. Staff can override the requirement at manifest time |
| Grace Period (days after expiration) | 7 by default, up to 30 |

Click **Manage Waivers** to open the waiver tool in a new tab.

---

# USPA verification

> How EZDZ checks fun jumpers' USPA membership, licenses, and instructor ratings: turn it on, verify each jumper the first time, read the badges, handle "not found", and know what happens at manifest.

Source: https://ezdzskydive.com/docs/uspa-verification · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

If your dropzone is a **USPA Group Member**, EZDZ can look up your jumpers' USPA status for you. No more manual lookups by member card. It checks membership, expiration, license, and instructor ratings, then warns you at manifest when something is off.

## Turn it on

There are two switches:

1. **Your EZDZ contact turns on USPA API access** for your dropzone. This is only available to verified USPA Group Members. Email door@ezdz.xyz to request it.
2. **A DZ admin enables verification** in **Settings → USPA**: tick **Enable USPA Verification**, and leave **Check Instructor Ratings** on if you want instructors' ratings checked (it's on by default).

Until both are on, you won't see USPA checks at manifest. The **USPA** tab only offers its options once step 1 is done.

## Verify a jumper for the first time

The first lookup for each jumper is manual. After that, EZDZ keeps the record fresh.

1. Go to **DZ Admin → Fun Jumpers** and find the jumper.
2. Click the blue **USPA** button on their row. It shows "Verifying..." while it works.
3. Read the badge that appears next to their name (see below).

### How the lookup finds a person

EZDZ tries these in order and stops at the first match:

1. **USPA member number** plus the jumper's last name.
2. **Date of birth** plus first and last name, if there's no number or the number didn't match.
3. A one-word name is tried both as a first name and as a last name.

The jumper's name is split at the last space: the last word is the last name and everything before it is the first name.

### If it can't find them

You'll see a short form: **Not enough info to look up USPA record. Enter details to retry** (nothing to search with) or **No USPA record found. Enter details to retry** (searched, no match). It has these fields:

| Field | What to enter |
| --- | --- |
| Last Name | Exactly as on their USPA record |
| First Name | Exactly as on their USPA record |
| DOB | Date of birth |
| USPA # | Optional. Their numeric USPA ID (not the D-xxxxx license number) |

Click **Retry Lookup**. Troubleshoot in this order:

1. **Name mismatch.** The most common cause. Nicknames, middle names, and initials fail. Use the legal name on their USPA record.
2. **Add the member number or date of birth.** A member number gives the lookup a second way to find them. Jumpers can add their own under **Settings → USPA Membership**.
3. **Retry.** It only has to succeed once. The system handles ongoing checks after that.

> **Good to know**
>
> If a jumper's number was empty, a successful lookup fills it in automatically. A number you already saved is never overwritten by a lookup.

## What EZDZ tracks

Each successful lookup stores the jumper's membership status and expiration date, revoked or suspended flags, license, medical hold, and rating dates (PRO, Coach, SLI, IADI, AFFI, TANI, plus examiner ratings). This is kept in EZDZ and used at manifest, so there is no slow live lookup on a busy day.

## What the badges mean

Badges appear beside each jumper on **Fun Jumpers**:

| Badge | Color | Meaning |
| --- | --- | --- |
| USPA ✓ | Green | Valid, with more than 30 days left |
| USPA ⚠ 12d | Yellow | Valid but expires within 30 days |
| USPA ✗ | Red | Expired, suspended, or revoked. Hover to see which |
| USPA – | Gray | Looked up and not a USPA member |
| USPA ? | Gray | Never verified, or no expiration date available |

Jumpers see their own expiring or expired status on their dashboard.

## What happens at manifest

When you manifest someone, EZDZ checks the saved record. **Every problem is a warning you can override. Nothing is a hard block.**

| Saved status | Warning shown |
| --- | --- |
| Unknown | USPA membership not verified |
| Not a member | Jumper is not a USPA member |
| Revoked | USPA membership has been revoked |
| Suspended | USPA membership is suspended |
| Expired | USPA membership expired on {date} |

Staff and admins get a prompt: "As an admin, you can override this USPA warning. Continue with manifesting?" Confirm to proceed. Jumpers manifesting themselves can't override. In a group jump, the first member with a problem stops the request.

### Who is not checked

Guests (no account), AFF Students, and Tandem Passengers are skipped.

### Instructor ratings

With **Check Instructor Ratings** on, the instructor's ratings are checked when they're manifested on certain jump types, after their membership passes:

| Jump type | What's checked |
| --- | --- |
| Tandem | Valid **TANI** rating, and no active **Medical Hold** |
| AFF | Valid **AFFI** rating |
| Coach | Valid **Coach** rating |
| Everything else | Membership only |

Messages include "No TANI rating on file for this instructor", "TANI rating expired on {date}", "Tandem Instructor has an active USPA Medical Hold", and "USPA data not available. Please verify first." Admins can always override.

## Re-checks and renewals

- A background job runs every night just after midnight (server time) and re-checks jumpers on the day their membership or a rating expires.
- If someone's membership has **expired**, EZDZ re-checks daily for up to 30 days so a renewal is picked up. After that it stops.
- Jumpers marked **not a USPA member**, and lookups that failed because USPA couldn't be reached, are **not** retried automatically. Click **USPA** again once they join or things recover.
- A status can lag by up to a day around an expiration date until the nightly job runs.

> **After someone renews**
>
> Click **USPA** on their row to refresh immediately instead of waiting for the nightly check.

## Who can see USPA data

USPA data is visible to staff at your dropzone, and each jumper sees their own status. A jumper's USPA member number is only visible to admins.

## Troubleshooting

| Problem | Try this |
| --- | --- |
| No **USPA** button on Fun Jumpers | USPA API access isn't enabled yet. Email door@ezdz.xyz |
| "No USPA record found" | Check the name matches the USPA record, add the member number or date of birth, and retry |
| "USPA verification failed" | USPA couldn't be reached or your dropzone's access needs attention. Try again later, then email door@ezdz.xyz |
| Badge says USPA ? | Never verified. Click **USPA** on their row |
| Expired but they renewed | Click **USPA** to refresh |
| Warning at manifest for an instructor | Check the rating dates. You can override if you have confirmed it elsewhere |

---

# Integrations

> Connect EZDZ to TandemReel, freefall.ing, waivers, and your website: what each does, how to turn it on, and what to check afterward.

Source: https://ezdzskydive.com/docs/integrations · Last updated: 2026-11-03 · Audience: DZ admins · Support: door@ezdz.xyz

EZDZ connects to the tools around your dropzone. Everything here lives under **DZ Admin → Settings** and is for admins.

## TandemReel

TandemReel handles tandem video and photo filming. EZDZ sends each confirmed booking to it so the filming team knows who is jumping and which video options they bought.

Go to **Settings → TandemReel**.

1. In TandemReel, create a dropzone integration and API key (use the link on the page).
2. Paste the key into **API key**. It is stored encrypted and never shown again.
3. Click **Save settings**, then **Test connection**.
4. Map your package and add-on codes in TandemReel to filming options (handcam, outside video, photos). Do this **before** turning sync on.
5. Switch on **Enable Booking Sync**.

Bookings sync once they're confirmed (deposit paid) and again when they change. To send bookings you already have, use **Sync existing bookings**, pick a date range (up to one year), and run it.

> **Unmapped codes still sync**
>
> Until a code is mapped, the booking still syncs, but it arrives without filming options. Editing and delivery of the finished video is handled in TandemReel, not EZDZ. See the [TandemReel feature page](https://ezdzskydive.com/features/tandemreel).

## freefall.ing

Go to **Settings → freefall.ing** to sync tandem bookings and staff.

1. Create an API token at freefall.ing (link on the page) and paste it into **API Token**.
2. Paste the **Webhook Signing Secret** if you use upsell or finance webhooks.
3. Click **Save Settings**, then **Test Connection**.
4. Switch on **Enable Booking Sync**. New tandem bookings then sync automatically.

Extras that appear after a key is saved:

- **Sync Existing Bookings:** pick a From and To date. Bookings older than 14 days are skipped by freefall.ing.
- **Staff / Filmer Sync:** **Sync Staff Now** pushes staff and tandem instructors over as filmers.
- **Upsell / Finance Webhooks:** copy the webhook URL shown on the page into freefall.ing.

## Waivers

Digital waivers for tandem customers and fun jumpers. See the table of settings in [Staff & jumpers](https://ezdzskydive.com/docs/staff-and-jumpers#waivers). The first step is the one-time **Enable Waiver Integration** button in **Settings → Waivers**.

## Your website

Put your booking page and gift certificate form on your own site with an embed code. See [Booking system → Preview & Embed](https://ezdzskydive.com/docs/booking-system#preview-and-embed).

## Stripe

Payments run through your own Stripe account. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments).

## AI assistants

Let ChatGPT or Claude manage loads, bookings, and reports in plain English. See [AI assistants](https://ezdzskydive.com/docs/ai-assistants).

---

# AI assistants (ChatGPT, Claude & more)

> Connect ChatGPT, Claude, Claude Code, Cursor, Codex, or any MCP assistant to your EZDZ dropzone to manifest, check bookings, and pull reports in plain English.

Source: https://ezdzskydive.com/docs/ai-assistants · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

EZDZ has an **MCP server**, an open standard that lets AI assistants work with your dropzone through your own login. Once connected, you can say things like "add two loads for today" or "put Harry and Jim on load 1 for tandem with handcam" instead of clicking.

## What an assistant can do

- **Loads and manifest:** create loads, list loads, manifest jumpers and tandems, manifest groups, update load status.
- **Bookings:** look up and list bookings, upcoming bookings, availability, and overrides; check how an override would affect bookings; reschedule or hold a booking; update booking notes; resend confirmations; send review requests.
- **People:** search users, list instructors and jumpers.
- **Compliance:** check or run USPA verification and check waiver status.
- **Reports:** jump and revenue analytics, booking analytics, fun jumper activity, instructor and pilot stats, and a reconciliation report.

Actions that change things (rescheduling, holding a booking, notes, availability overrides, USPA lookups) are set up so the assistant should **ask you to confirm first**. It uses your permissions, so it can only do what your account can do.

## Connect with OAuth (recommended)

OAuth signs you in with your normal EZDZ account and keeps access scoped to your dropzone. You can see and revoke every connection.

> **What you need**
>
> - An EZDZ account at your dropzone. The assistant can only do what your account can do.
> - The **MCP server URL**: `https://mcp.ezdz.xyz`

### Claude (claude.ai or Claude Desktop)

1. Open Claude and go to **Settings → Connectors**.
2. Click **Add Connector** (a custom connector) and enter `https://mcp.ezdz.xyz`.
3. Complete the EZDZ sign-in and grant the permissions it asks for.
4. Start a chat and ask: "List today's loads."

Custom connectors are available on Claude Pro, Max, Team, and Enterprise plans.

### ChatGPT

1. Open ChatGPT and go to **Settings → Connectors → Advanced → Developer Mode**.
2. Click **Create** and name the connector, for example "EZ DZ Operations".
3. Paste `https://mcp.ezdz.xyz` as the server URL and set **Authentication** to **OAuth**.
4. Complete the EZDZ sign-in and grant permissions.

Developer Mode must be turned on by your workspace admin. It's available on Plus, Pro, Business, Enterprise, and Edu plans.

### Claude Code

```bash
claude mcp add --transport http ezdz https://mcp.ezdz.xyz/mcp
```

Run `/mcp` inside Claude Code and sign in to **ezdz** when prompted.

### Cursor

Add this to your `mcp.json` (Cursor Settings → MCP), then sign in when prompted:

```json
{
  "mcpServers": {
    "ezdz": { "url": "https://mcp.ezdz.xyz/mcp" }
  }
}
```

### Codex and other MCP clients

Any assistant that supports **remote (Streamable HTTP) MCP servers** can connect:

- **Server URL:** `https://mcp.ezdz.xyz/mcp`
- **Transport:** Streamable HTTP
- **Authentication:** OAuth 2.0 (preferred), or a bearer token in the `Authorization` header

In Codex, add the server in your MCP settings with that URL. Menus and commands change between versions, so if yours differs, follow your assistant's "add a remote MCP server" instructions with the values above.

## Manage connections and tokens

Go to **DZ Admin → Settings → AI Integration**.

- **OAuth 2.0 (Recommended)** shows every connection that has been authorized, how often it's used, when it was created and when it expires, with a **Revoke Token** button. The **Setup Guide** button repeats the steps above.
- **Legacy Tokens** are shared secrets for clients that can't use OAuth. Click to create one, and **copy it right away because it is never shown again**. They aren't tied to a person, so avoid them when OAuth works.

> **Treat tokens like passwords**
>
> Anyone with a token can act on your dropzone. Never paste one into a public chat, and revoke any token you no longer use or that may have leaked.

## Try these prompts

- "Show me today's loads and who is on load 2."
- "Put Sam Rivera on load 3 as a belly jump."
- "How many tandems did we do this week, and what was the revenue?"
- "Which bookings would be affected if I close Saturday for weather?"
- "Is Kim's USPA membership current?"

## Give your assistant these docs

Every EZDZ guide is also available as plain markdown so an assistant can answer "how do I...?" questions accurately. Use **Copy page for AI** on any guide, point it at [/docs/index.md](https://ezdzskydive.com/docs/index.md), or give it everything at once with [/docs/all.md](https://ezdzskydive.com/docs/all.md).

---

# FAQ

> Quick answers for dropzone admins and staff: payments and declined cards, getting access, packages and schedules, email, USPA, and manifest, each linked to the full guide.

Source: https://ezdzskydive.com/docs/faq · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

Short answers, each pointing to the full guide. Can't find yours? Press the search box or email door@ezdz.xyz.

## Payments

### How do I know if a customer paid?
Open the booking in **Bookings** and read the payment badge: green **PAID**, yellow **PENDING** (unpaid or deposit only), red **FAILED**, **REFUNDED**, or **CANCELLED**. Tick **Show unpaid** if you can't find the booking. See [Checking payments](https://ezdzskydive.com/docs/checking-payments).

### A customer says their card declined. What do I do?
EZDZ marks the booking **FAILED** but doesn't show the bank's reason. Open the failed payment in your Stripe Dashboard to see it (insufficient funds, expired card, bank block). Then have the customer retry from the payment link or use **Charge Balance** with another card. See [Checking payments](https://ezdzskydive.com/docs/checking-payments#a-card-declined).

### Where do I see my payouts?
In Stripe. Go to **Settings → Booking System Config → Payment Settings → Open Stripe Dashboard**, then **Payouts**. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments).

### Why can't customers pay on my booking page?
Stripe probably isn't fully connected. Check **Payment Settings**: both **Payments** and **Payouts** should read **Enabled**. If it says **Pending verification**, click **Resume Onboarding**. See [Connect Stripe](https://ezdzskydive.com/docs/stripe-and-payments#connect-stripe).

### How do I charge a customer the rest of their balance?
Open the booking and click **Charge Balance**. If they changed packages, click **Edit Package** first. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk).

### How do I refund a booking?
Open the booking, click **Refund**, enter the amount and a reason, and confirm. Refunds return to the original payment method. See [Checking payments](https://ezdzskydive.com/docs/checking-payments#refunds).

### What does EZDZ charge?
Starter is $0 per month plus 4% per transaction. Pro is $199 per month plus 2%. Stripe's card processing is separate. You can pass the fee to customers. See [Stripe & payments](https://ezdzskydive.com/docs/stripe-and-payments#plans-and-fees) and [pricing](https://ezdzskydive.com/pricing).

## Access and accounts

### How do I get admin or staff access?
Create your account from the link your EZDZ contact sent, register at your dropzone, then ask your EZDZ contact (door@ezdz.xyz) or an existing admin to set your role. See [Account & access](https://ezdzskydive.com/docs/account-and-access).

### I was given a role but I don't see DZ Admin.
Sign out and back in. Roles load when you sign in.

### What do I enter for license and canopy if I'm staff and not a jumper?
License Number `00000` with **A License**, and canopy size `190`. Use your real weight with gear. See [Account & access](https://ezdzskydive.com/docs/account-and-access#staff-without-a-license-or-uspa-membership).

### Why isn't a new staff member in Manage Staff?
They need to create an account and click **Register at {Dropzone name}** first. Then they appear in **Settings → Manage Staff**.

## Booking page, packages, and schedule

### How do I close a day for weather or maintenance?
**Settings → Booking System Config → Schedule & Availability → Schedule Overrides → Add Override**, choose **Block Entire Day**, check affected bookings, and save. See [Schedule overrides](https://ezdzskydive.com/docs/booking-system#schedule-overrides).

### Why are times showing up twice on my booking page?
Two active schedule rows on the same day overlap. Fix the windows so they don't cross. See [Schedule and availability](https://ezdzskydive.com/docs/booking-system#schedule-and-availability).

### How do I offer a package only at certain times?
Edit the package and use **Restrict to specific times**. Don't add an overlapping schedule row. See [Pricing and packages](https://ezdzskydive.com/docs/booking-system#pricing-and-packages).

### How do I add a package or change a price?
**Pricing & Packages → Add Package** (or edit one), then **Save Configuration**. See [Pricing and packages](https://ezdzskydive.com/docs/booking-system#pricing-and-packages).

### How do I put the booking page on my website?
Copy the code from **Preview & Embed** and paste it into your site. See [Preview and embed](https://ezdzskydive.com/docs/booking-system#preview-and-embed).

### How do I reschedule everyone because of weather?
Select the bookings, click **Send Email** to tell them, then **Change Time**. See [Bookings desk](https://ezdzskydive.com/docs/bookings-desk#reschedule-customers).

### What does Max Bookings limit?
The number of people (not groups) who can book into one time slot on the booking page. It doesn't affect aircraft capacity. See [Schedule and availability](https://ezdzskydive.com/docs/booking-system#schedule-and-availability).

## Email

### Customers aren't getting confirmation emails.
Check that **Enable Email System** is on, run **Test Connection**, and send a test email. See [Email setup](https://ezdzskydive.com/docs/email-setup) and [Troubleshooting](https://ezdzskydive.com/docs/troubleshooting).

### Do I need my own email account?
Yes. Booking emails are sent from your SMTP account so they come from your dropzone. Gmail with an app password works well. See [Email setup](https://ezdzskydive.com/docs/email-setup).

## Jumpers, USPA, and manifest

### How do I verify a jumper's USPA membership?
**Fun Jumpers**, find the jumper, click **USPA**. See [USPA verification](https://ezdzskydive.com/docs/uspa-verification#verify-a-jumper-for-the-first-time).

### USPA says "No record found."
Check that the name matches their USPA record exactly (no nickname), then add their USPA member number or date of birth in the retry form. See [If it can't find them](https://ezdzskydive.com/docs/uspa-verification#if-it-can-t-find-them).

### Can I still manifest someone with an expired USPA membership?
Yes. It's a warning that staff and admins can override. See [What happens at manifest](https://ezdzskydive.com/docs/uspa-verification#what-happens-at-manifest).

### How do fun jumper tickets work?

One ticket is one credit, and one credit is one fun jump. A jumper's balance drops when you manifest them and is finalized when the load goes In The Air. See [Tickets and credits](https://ezdzskydive.com/docs/staff-and-jumpers#tickets-and-credits).

### A fun jumper can't manifest. It says they have no credits.

Either sell or add them a credit (**Fun Jumpers → Buy Credits**), or change how your dropzone runs credits. If you want people to fly now and pay later, turn on **Reconciliation Mode** so manifesting is never blocked. See [Choose how your dropzone runs credits](https://ezdzskydive.com/docs/staff-and-jumpers#choose-how-your-dropzone-runs-credits).

### How do I let jumpers fly now and pay at the end of the day?

Turn on **Reconciliation Mode** under **Fun Jumpers → Packages & Rates**. Unpaid jumps are tracked, and you collect them on the **Reconciliation** tab with cash or card. See [Reconciliation Mode](https://ezdzskydive.com/docs/staff-and-jumpers#reconciliation-mode).

### How do I put the load board on a TV?

Open the **Public Display** and click **TV Mode**, or go to your EZDZ app link followed by `/tv`, then make the browser full-screen. See [Public Display & TV mode](https://ezdzskydive.com/docs/public-display).

### I called a load by mistake.
Set the load back to **Manifesting**. See [Manifest & loads](https://ezdzskydive.com/docs/manifest-and-loads#call-the-load).

### Can I use ChatGPT or Claude with EZDZ?
Yes. See [AI assistants](https://ezdzskydive.com/docs/ai-assistants).

---

# Troubleshooting

> Symptom-to-fix tables for the most common EZDZ problems: booking page, payments, Stripe, email, access and roles, schedule, and USPA, with where to look first.

Source: https://ezdzskydive.com/docs/troubleshooting · Last updated: 2026-11-03 · Audience: DZ admins and staff · Support: door@ezdz.xyz

Find the symptom, try the fix, and email door@ezdz.xyz if it's still stuck. Include your dropzone name and a screenshot.

## Booking page

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| Customers see no booking page | Status isn't **Active** | **General Settings → Status: Active**, then **Save Configuration** |
| Booking page shows no times | No active schedule rows, or the day is blocked | Check **Schedule & Availability** and **Active Overrides** |
| Times are wrong or shifted | Wrong timezone | **Settings → Dropzone Settings → Timezone** |
| Times appear twice | Overlapping active schedule rows | Make sure rows on the same day don't overlap |
| A package is missing at a time | The package has **Restrict to specific times** | Edit the package's From and Until |
| Old package still shows | Renaming created a new package | Remove or deactivate the old one |
| Embed shows nothing on my site | Page not Active, or the code was changed | Re-copy the code from **Preview & Embed** |

## Payments and Stripe

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| "Online payment is not available" for customers | Stripe not connected or not verified | **Payment Settings**: both tiles should read **Enabled** |
| Payments or Payouts say **Pending verification** | Stripe needs more information | Click **Resume Onboarding** and finish the form |
| Can't find a booking a customer made | Hidden by the default filter | Tick **Show unpaid** |
| Booking shows **FAILED** | The card was declined | Check the reason in your Stripe Dashboard. See [Checking payments](https://ezdzskydive.com/docs/checking-payments) |
| Deposit paid but booking says **PENDING** | Balance still owed | Normal. Use **Charge Balance** |
| **Charge Balance** says no saved payment method | Customer has no card on file | Use card entry or the reader |
| Plan shows **past_due** | Pro billing card failed | **Update Subscription Payment Method** |

## Email

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| No customer emails at all | Email isn't enabled | Turn on **Enable Email System** and save |
| **Test Connection** fails | Wrong host, port, or password | Recheck details. Gmail needs an app password |
| Connection works but emails don't arrive | Spam folder or sender mismatch | Send a test to a different inbox and check spam |
| Emails look unbranded | Branding not set | Update logo and colors in **General Settings** |
| You don't get new-booking alerts | Notification setting | **General Settings → Email me when new bookings come in** |

## Access and roles

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| **DZ Admin** isn't in the navigation | Role not set, or you haven't signed in again | Ask for your role, then sign out and back in |
| Can't see Settings tabs | DZ Staff only see Manage Staff | Ask an admin if you need more access |
| Person missing from Manage Staff | They haven't registered at your dropzone | Ask them to click **Register at {Dropzone name}** |
| "Register" asks for profile details | Profile incomplete | Finish it. See [Account & access](https://ezdzskydive.com/docs/account-and-access#complete-your-profile) |
| Can't demote an admin | They are the last admin or owner | Make another admin first |

## Loads and aircraft

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| **Create Load** is disabled | No active aircraft | Add or reactivate one in **Gear/Aircraft** |
| Wrong number of slots on a load | Capacity changed after the load was created | Create a new load. Capacity is copied at creation |
| Pilot missing from the list | **Is Pilot** isn't on | Turn it on in **Manage Staff** |

## USPA

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| No **USPA** button | USPA access not enabled | Email door@ezdz.xyz |
| No record found | Name mismatch or missing number | Retry with exact name, member number, or date of birth |
| Warning keeps appearing at manifest | Status expired, unverified, or not a member | Verify or refresh the jumper, or override |

More detail: [USPA verification](https://ezdzskydive.com/docs/uspa-verification).
