Accordion integration rules
The rules the IBA applies to the daily Accordion delivery of completed flights. The technical contract (authentication, payload, responses, logging) lives in Tech docs → Accordion integration.
Rules
- A record is a member’s flight. It is identified by
CartIDandCustomerIDtogether. A cart item shared by two members arrives as two records with the sameCartID, and both are kept. - The member must exist.
IBANumbermust match an IBA member, or the record is rejected asunknown_member. Accordion filter non-members out before sending, so this is a safeguard rather than an expected path. - An unmapped tunnel is not a rejection. The flight happened whether or not our tunnel mapping is complete, so the record is stored with no tunnel and the gap is fixed in the mapping.
- Deliveries are partial-success. Valid records in a delivery are stored even when others in the same delivery are rejected.
- Restatements win. A later record for the same
CartIDandCustomerIDreplaces the stored values; when we first heard of the flight is kept. - Absence means nothing. Deliveries do not declare a coverage period, so a booking missing from a later delivery is not treated as cancelled.
Lifecycle
Accordion send a follow-up record when a booking changes after the flight.
RecordStatus is the only signal:
RecordStatus | Effect |
|---|---|
Created | Stored |
Amended | Stored values replaced |
Cancelled | Marked withdrawn (is_withdrawn = 1), never deleted |
Rows are never deleted, so anything granted against a since-cancelled booking stays explicable.
Flight times
Flights arrive on a Pacific clock with a daylight-saving-aware offset
(-07:00 or -08:00, chosen by the flight date). They are stored as UTC and
shown in the tunnel’s own local time. See
Time zones.
Products and staff flights
Accordion’s product list (September 2026) has 176 products: download the full list (CSV). Six are staff or instructor products:
| Sharecode | Product |
|---|---|
0STAFFMIN | $0 Staff Flight |
5STAFFMIN | $7 Staff Flight |
STAFFMIN | Staff Minute |
FITP | FITP 1 Minute Block |
FDEMO | Flight Demo |
TRAINING | Instructor Training |
Decision (2026-09): staff flights are kept. They are stored like any other record. If they need excluding later, filter on these sharecodes where the data is read, not where it arrives, so the stored feed stays complete.
Instructor coaching products (for example “01 Min Inst Coaching”) are customer products — the member is the customer — and are not in this list.
The list’s minutes column is per unit, not per flight: 5STAFFMIN is
listed as 1 minute but arrives with TotalMinutes: 5. The delivered
TotalMinutes is the value to use.
Related
- Integration: Accordion — technical contract, logging and known limitations
- Business logic: Integrations — the other booking-system integrations