Create Deal
POST/booking/:entityId
Creates a booking — one or more events under the organization identified by entityId — with the full deal structure: multiple artists with per-artist splits, ticket scales and tiers, custom payment schedules, expenses, and day-of-show schedules.
Minimum request. The minimum request is one event (events with a startDateTime, a currencyType, and at least one artist in artists), a buyer (contacts.buyer.person with an email and at least one of firstName/lastName), and at least one agent — given explicitly under assignments.agents, or resolvable from the artists' roster assignments. Artists are matched by roster entity id (or exact roster name) and must be active on the agency's roster. Discover ids with List Organization Members and List Roster Members.
Units and formats. Event dates are local wall-clock values in YYYY-MM-DD or YYYY-MM-DDThh:mm:ss form — never with a UTC offset or Z suffix. When a date carries a time, timeZone is required and must be an IANA time zone id (for example America/Los_Angeles). guarantee and amount fields are in whole currency units of the event's currencyType (7500 = 7,500.00 USD). Percent fields are percent numbers (50 = 50%) except where a field's own description says it is a string.
Defaults for omitted fields. Event status defaults to tentative (unless the agency is set to confirm bookings at creation), dealType to FLAT_GUARANTEE, and guarantee to 0. Agents default from each roster artist's assignments. When payments is omitted, the agency's default payment-plan preset is applied.
Limits. A booking can include at most 30 events (DEAL_TOO_MANY_EVENTS beyond that).
Permissions. The account that minted the token needs the api role on entityId.
Retries. Creation is not idempotent — a timeout does not itself prove failure (the booking may exist); check with Run Report (a Booking report on the event date) before retrying.
What creation does.
- Runs the booking workflow and syncs the event to connected calendars per the agency's settings.
- Creates contact and organization records for any new people and organizations you name.
- When you omit a member group, the artists' roster-assigned members are added for it (respecting the roster's auto-add flags).
- Distributes the booking to the assigned members' inboxes.
Errors. Validation failures return HTTP 406 with a DEAL_* result code — see the worked example under Responses. A request without a buyer person currently fails with HTTP 500, Please select a Buyer. — treat it as a request error, not a server outage. Exceeding the rate limit returns HTTP 503 RATE_LIMIT_EXCEEDED.
Request
Responses
- 200
- 406
OK
Not Acceptable — the deal failed validation with a DEAL_* result code.