---
title: "Create Deal"
method: POST
path: "/booking/{entityId}"
tags: ["Bookings"]
---

# Create Deal

`POST /booking/{entityId}`

## Request

- Base URL: `https://api.gigwell.com/api`
- URL: `https://api.gigwell.com/api/booking/{entityId}`
- Auth: HTTP bearer

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](./list-members) and [List Roster Members](./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](./run-custom-filtered-export) (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`.

## Path parameters

- `entityId` string, required

## Request body

- Deal
  - `events` object[], required: The events to book. At least one event is required, and every event's artists must be active on the agency's roster.
    - `artistNotes` string, nullable: Notes for the artist, shown on the booking.
    - `address` string, nullable: Street address of the event.
    - `additionalBonuses` object[]: Additional bonuses paid on top of the guarantee, flat or calculated from ticket tiers.
      - `bonusAmount` number: Bonus amount in whole currency units, for FLAT_AMOUNT bonuses.
      - `bonusType` 'FLAT_AMOUNT' | 'TICKET_TIER_COUNT' | 'TICKET_TIER_AMOUNT': How the bonus is calculated: a flat amount, per ticket-tier count, or per ticket-tier amount.
      - `tierOperator` 'AND' | 'OR': How multiple tiers combine: AND or OR.
      - `tiers` object[]: Ticket tiers the bonus is calculated from.
        - `count` integer: Tier ticket count, for TICKET_TIER_COUNT bonuses.
        - `amount` number: Tier amount in whole currency units, for TICKET_TIER_AMOUNT bonuses.
        - `bonusAmount` number: Bonus amount for this tier, in whole currency units.
    - `announcementDateTime` string, nullable: Embargo announcement date and time (YYYY-MM-DDThh:mm:ss). Requires announcementTrigger EMBARGO; when set without an explicit trigger, EMBARGO is inferred.
    - `announcementTrigger` 'NONE' | 'CONFIRMED' | 'EMBARGO', nullable: When the event may be announced: CONFIRMED when the event is confirmed, EMBARGO at the announcement date, NONE never.
    - `artists` Artist[], required: The artists performing at this event. Each artist must be on the agency's roster, matched by roster entity id (or exact roster name).
      - `name` string, nullable: Artist name; matched against the roster when id is omitted.
      - `members` ArtistMember[], nullable: Artist members with their own splits. When omitted, the roster's default members are added.
        - `name` string, nullable: Member name.
        - `percent` number, nullable: Member's percent of the artist fee; when splitting, member percents must total 100.
        - `salesTax` number, nullable: Sales tax percent applied to the member's share.
        - `salesTaxId` string, nullable: Sales tax rate id when using a stored rate.
        - `incomeTax` IncomeTax[], nullable: Income tax withholding for this member.
          - `taxRate` number: Tax rate percent.
          - `surCharge` number, nullable: Surcharge percent added on top of the tax rate.
          - `deduction` number, nullable: Deduction percent.
          - `postTax` boolean, nullable: Whether the artist's income tax is applied after sales tax.
          - `taxAgent` 'buyer' | 'artist': Who withholds the tax: the buyer (default) or the artist.
          - `withholdBookingFeeWithArtistFee` boolean: Whether the booking fee is withheld together with the artist fee.
        - `id` string, nullable: Member's account id. Required when email is omitted.
        - `email` string, nullable: Member's email; used to match an existing account when id is omitted.
      - `splitByMembers` boolean: Whether the artist fee splits across members.
      - `fixedAmount` number, nullable: Fixed performance fee in whole currency units, replacing the percent split.
      - `percent` number, nullable: This artist's share of the deal as a percent number (85 = 85%). When multiple artists carry percents, they must total 100.
      - `amount` number, nullable: Artist fee in whole currency units.
      - `salesTax` number, nullable: Sales tax percent applied to the artist fee.
      - `salesTaxId` string, nullable: Sales tax rate id when using a stored rate.
      - `incomeTax` IncomeTax[], nullable: Income tax withholding for this artist.
        - `taxRate` number: Tax rate percent.
        - `surCharge` number, nullable: Surcharge percent added on top of the tax rate.
        - `deduction` number, nullable: Deduction percent.
        - `postTax` boolean, nullable: Whether the artist's income tax is applied after sales tax.
        - `taxAgent` 'buyer' | 'artist': Who withholds the tax: the buyer (default) or the artist.
        - `withholdBookingFeeWithArtistFee` boolean: Whether the booking fee is withheld together with the artist fee.
      - `commissionPercent` number, nullable: Agency commission percent on this artist's fee.
      - `commissionSalesTax` number, nullable: Sales tax percent on the agency commission.
      - `id` string, nullable: Roster artist entity id. Required when name is omitted.
    - `billing` object, nullable: How the artist is billed: a billing type from the agency's billing-type presets and a percent.
      - `percent` string: Billing percent, as a string percent number.
      - `type` string: Billing type: exact-matched by id or display label against the agency's billing-type presets; an unmatched value is kept as-is.
    - `blockedReason` string, nullable: Reason the event is blocked. Setting it also marks the event blocked.
    - `bonusPercent` number: Percent of box office (gross or net, per bonusType) paid as a bonus, as a percent number (10 = 10%).
    - `bonusType` 'GBOR' | 'NBOR': Box office basis for the bonus: GBOR (gross) or NBOR (net). Default GBOR.
    - `bookingFeeOnTop` boolean: Whether the agency booking fee is added on top of the deal total.
    - `buyerCommission` object, nullable: Commission the buyer pays: a flat amount, a percent of the guarantee, or a percent of fixed and variable expenses.
      - `buyerCommissionCalculationTypes` string[]: Which parts of the deal the commission applies to: a flat amount, a percent of the guarantee, a percent of fixed expenses, or a percent of variable expenses.
      - `amount` number: Flat commission amount in whole currency units (500 = 500.00 USD), for FLAT_AMOUNT.
      - `percent` string, nullable: Percent of the guarantee or expenses, as a string percent number ("10" = 10%), for the PERCENT_* calculation types.
      - `maxTotal` number: Cap on the commission, in whole currency units (500 = 500.00 USD); ignored for FLAT_AMOUNT.
    - `buyerExpenses` object[]: Buyer-borne expenses: flat amounts, amounts per ticket or per attendee, or percentages of box office.
      - `calcType` 'FLAT_AMOUNT' | 'AMOUNT_PER_TICKET' | 'AMOUNT_PER_PERSON' | 'PERCENT_NBOR' | 'PERCENT_GBOR': How the expense is calculated: a flat amount, an amount per paid ticket or per attendee, or a percent of gross (PERCENT_GBOR) or net (PERCENT_NBOR) box office.
      - `type` string, nullable: Expense type label.
      - `description` string, nullable: What the expense is for.
      - `amount` number: Flat, per-ticket, or per-attendee amount in whole currency units, depending on calcType.
      - `percent` number: Percent of box office when calcType is PERCENT_GBOR or PERCENT_NBOR.
      - `after` number, nullable: Box office threshold, in whole currency units, above which a percent expense starts to apply.
      - `maxTotal` number, nullable: Cap on the expense, in whole currency units.
      - `includeInSplitPoint` boolean, nullable: Whether the expense is included when computing the artist split point.
      - `currencyType` string, nullable: ISO 4217 currency code; defaults to the event's currencyType.
    - `capacity` integer, nullable: Venue capacity (head count).
    - `city` string, nullable: City of the event.
    - `country` string, nullable: Country of the event.
    - `currencyType` string, required: ISO 4217 currency code for the event's money values (for example USD); must be a currency the agency has enabled. Required.
    - `dealType` 'FLAT_GUARANTEE' | 'STRAIGHT_PERCENTAGE' | 'PLUS' | 'VS': Deal structure: FLAT_GUARANTEE (default), STRAIGHT_PERCENTAGE, PLUS (guarantee plus a box office bonus), or VS (versus).
    - `description` string, nullable: Description of the event.
    - `duration` integer, nullable: Performance length in minutes.
    - `endDateTime` string, nullable: End date (YYYY-MM-DD) or end date-time (YYYY-MM-DDThh:mm:ss), local wall-clock — no UTC offset or Z suffix.
    - `guarantee` number: Guarantee in whole currency units of currencyType (7500 = 7,500.00 USD). Default 0.
    - `hardMerch` integer, nullable: Artist's share of hard-merchandise sales, as a percent number (25 = 25%).
    - `merchSeller` string, nullable: Merch seller: exact-matched by id or display label against the agency's merch-seller presets; an unmatched value is kept as-is.
    - `minimumAge` string, nullable: Minimum age requirement (for example 18+, 21+).
    - `performanceType` string, nullable: Performance type: exact-matched by id or display label against the agency's performance-type presets; an unmatched value is kept as-is.
    - `radiusClause` object, nullable: Radius clause restricting nearby events before or after this one.
      - `radius` number: Radius, in distanceUnit.
      - `distanceUnit` string: Unit for radius. Default miles.
      - `beforeTimeValue` integer: How long before the event the radius clause starts.
      - `beforeTimeUnit` string: Unit for beforeTimeValue, for example days.
      - `afterTimeValue` integer: How long after the event the radius clause runs.
      - `afterTimeUnit` string: Unit for afterTimeValue, for example days.
      - `enabled` boolean: Whether the radius clause is active. Default true.
    - `rsvpUrl` string, nullable: RSVP page URL.
    - `salesTaxInclusive` boolean: Whether sales tax is included in the deal total.
    - `schedule` object[], nullable: Day-of-show schedule entries, each with a date-time and the artists or members it applies to. Artists and members named in appliesTo must already be set in the event's artists; artists match by id or roster display name, members by account id or email.
      - `type` string, nullable: Schedule entry type: well-known values (loadIn, soundCheck, doorOpen, eventStart, performance, doorClose, loadOut, curfew) or an agency preset, matched by id or display name; an unmatched value is kept as-is.
      - `dateTime` string, nullable: Start date-time (YYYY-MM-DDThh:mm:ss), local wall-clock. Required when dateType is DATE.
      - `endDateTime` string, nullable: End date-time (YYYY-MM-DDThh:mm:ss), local wall-clock.
      - `appliesTo` object: Who this entry applies to: artists, artist members, or other preset values.
        - `artists` Artist[]: Artists this entry applies to, by roster entity id or display name.
          - `name` string, nullable: Artist name; matched against the roster when id is omitted.
          - `members` ArtistMember[], nullable: Artist members with their own splits. When omitted, the roster's default members are added.
            - `name` string, nullable: Member name.
            - `percent` number, nullable: Member's percent of the artist fee; when splitting, member percents must total 100.
            - `salesTax` number, nullable: Sales tax percent applied to the member's share.
            - `salesTaxId` string, nullable: Sales tax rate id when using a stored rate.
            - `incomeTax` IncomeTax[], nullable: Income tax withholding for this member.
              - …
            - `id` string, nullable: Member's account id. Required when email is omitted.
            - `email` string, nullable: Member's email; used to match an existing account when id is omitted.
          - `splitByMembers` boolean: Whether the artist fee splits across members.
          - `fixedAmount` number, nullable: Fixed performance fee in whole currency units, replacing the percent split.
          - `percent` number, nullable: This artist's share of the deal as a percent number (85 = 85%). When multiple artists carry percents, they must total 100.
          - `amount` number, nullable: Artist fee in whole currency units.
          - `salesTax` number, nullable: Sales tax percent applied to the artist fee.
          - `salesTaxId` string, nullable: Sales tax rate id when using a stored rate.
          - `incomeTax` IncomeTax[], nullable: Income tax withholding for this artist.
            - `taxRate` number: Tax rate percent.
            - `surCharge` number, nullable: Surcharge percent added on top of the tax rate.
            - `deduction` number, nullable: Deduction percent.
            - `postTax` boolean, nullable: Whether the artist's income tax is applied after sales tax.
            - `taxAgent` 'buyer' | 'artist': Who withholds the tax: the buyer (default) or the artist.
            - `withholdBookingFeeWithArtistFee` boolean: Whether the booking fee is withheld together with the artist fee.
          - `commissionPercent` number, nullable: Agency commission percent on this artist's fee.
          - `commissionSalesTax` number, nullable: Sales tax percent on the agency commission.
          - `id` string, nullable: Roster artist entity id. Required when name is omitted.
        - `artistMembers` ArtistMember[]: Artist members this entry applies to, by account id or email.
          - `name` string, nullable: Member name.
          - `percent` number, nullable: Member's percent of the artist fee; when splitting, member percents must total 100.
          - `salesTax` number, nullable: Sales tax percent applied to the member's share.
          - `salesTaxId` string, nullable: Sales tax rate id when using a stored rate.
          - `incomeTax` IncomeTax[], nullable: Income tax withholding for this member.
            - `taxRate` number: Tax rate percent.
            - `surCharge` number, nullable: Surcharge percent added on top of the tax rate.
            - `deduction` number, nullable: Deduction percent.
            - `postTax` boolean, nullable: Whether the artist's income tax is applied after sales tax.
            - `taxAgent` 'buyer' | 'artist': Who withholds the tax: the buyer (default) or the artist.
            - `withholdBookingFeeWithArtistFee` boolean: Whether the booking fee is withheld together with the artist fee.
          - `id` string, nullable: Member's account id. Required when email is omitted.
          - `email` string, nullable: Member's email; used to match an existing account when id is omitted.
        - `other` string[]: Preset values this entry applies to: exact-matched by id or display label against the agency's event-schedule-actor presets; an unmatched value is kept as-is.
      - `location` string, nullable: Location of the entry: exact-matched by id or display label against the agency's event-schedule-location presets; an unmatched value is kept as-is.
      - `dateType` 'TBD' | 'TBA' | 'TBC' | 'MAD' | 'DATE': Date certainty: DATE for a concrete timed entry, MAD for a mutually agreeable date, or a placeholder (TBD, TBA, TBC). Default DATE.
    - `sharedNotes` string, nullable: Notes shared with the artist.
    - `softMerch` integer, nullable: Artist's share of soft-merchandise sales, as a percent number (25 = 25%).
    - `startDateTime` string, nullable: Event date (YYYY-MM-DD) or date-time (YYYY-MM-DDThh:mm:ss), local wall-clock — never with a UTC offset or Z suffix. Required unless mutuallyAgreeableDate is true. When a time is present, timeZone is required.
    - `state` string, nullable: State or province of the event.
    - `status` 'tentative' | 'confirmed' | 'blocked' | 'canceled', nullable: Initial event status. Default tentative; an agency set to confirm bookings at creation may confirm it.
    - `summary` string, nullable: Short summary of the event.
    - `support` string[], nullable: Supporting acts, by name or id.
    - `ticketOnSaleDateTime` string, nullable: Ticket on-sale date-time (YYYY-MM-DDThh:mm:ss).
    - `ticketPresaleDateTime` string, nullable: Ticket presale date-time (YYYY-MM-DDThh:mm:ss).
    - `tickets` object: Ticket scale: named tiers with prices and counts, plus ticket fee rules.
      - `tiers` object[]: Ticket tiers with names, prices, and counts.
        - `actuals` integer: Actual tickets sold.
        - `comps` integer: Complimentary tickets.
        - `name` string, nullable: Tier name. Required.
        - `planned` integer: Planned ticket count.
        - `plannedComps` integer: Planned complimentary tickets.
        - `price` number: Tier price in whole currency units.
        - `excludeFromBreakEven` boolean: Whether the tier is excluded from break-even calculations.
      - `final` boolean: Whether these are final (actual) ticket counts rather than a scale.
      - `cumulativeFees` TicketFee[]: Ticket fees calculated on cumulative ticket counts across tiers.
        - `type` string, nullable: Fee type: exact-matched by id or display label against the agency's ticket-fee presets; an unmatched value is kept as-is. Required.
        - `description` string, nullable: What the fee is for.
        - `amount` number, nullable: Set exactly one of amount or percent. The amount is in whole currency units.
        - `estimatedAmount` number, nullable: Estimated fee amount in whole currency units; defaults to amount.
        - `percent` number, nullable: Set exactly one of amount or percent. The percent is a number (2.5 = 2.5%).
        - `mathType` 'MULTIPLIER' | 'DIVISOR', nullable: How the fee applies to the ticket count: MULTIPLIER or DIVISOR; defaults to the matching ticket-fee preset's math type, otherwise DIVISOR.
        - `maxTotal` number, nullable: Cap on the fee, in whole currency units.
      - `includedFees` TicketFee[]: Ticket fees included in the deal total.
        - `type` string, nullable: Fee type: exact-matched by id or display label against the agency's ticket-fee presets; an unmatched value is kept as-is. Required.
        - `description` string, nullable: What the fee is for.
        - `amount` number, nullable: Set exactly one of amount or percent. The amount is in whole currency units.
        - `estimatedAmount` number, nullable: Estimated fee amount in whole currency units; defaults to amount.
        - `percent` number, nullable: Set exactly one of amount or percent. The percent is a number (2.5 = 2.5%).
        - `mathType` 'MULTIPLIER' | 'DIVISOR', nullable: How the fee applies to the ticket count: MULTIPLIER or DIVISOR; defaults to the matching ticket-fee preset's math type, otherwise DIVISOR.
        - `maxTotal` number, nullable: Cap on the fee, in whole currency units.
      - `independentFees` TicketFee[]: Ticket fees calculated per tier independently.
        - `type` string, nullable: Fee type: exact-matched by id or display label against the agency's ticket-fee presets; an unmatched value is kept as-is. Required.
        - `description` string, nullable: What the fee is for.
        - `amount` number, nullable: Set exactly one of amount or percent. The amount is in whole currency units.
        - `estimatedAmount` number, nullable: Estimated fee amount in whole currency units; defaults to amount.
        - `percent` number, nullable: Set exactly one of amount or percent. The percent is a number (2.5 = 2.5%).
        - `mathType` 'MULTIPLIER' | 'DIVISOR', nullable: How the fee applies to the ticket count: MULTIPLIER or DIVISOR; defaults to the matching ticket-fee preset's math type, otherwise DIVISOR.
        - `maxTotal` number, nullable: Cap on the fee, in whole currency units.
    - `ticketUrl` string, nullable: Public ticketing page URL.
    - `timeZone` string, nullable: IANA time zone id (for example America/Los_Angeles) for the event's date-times. Required when any date carries a time.
    - `type` string, nullable: Event type: exact-matched by id or display label against the agency's event-type presets; an unmatched value is kept as-is.
    - `venue` object, nullable: The venue: an organization; a new venue record is created when no match exists.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `zip` string, nullable: Postal code of the event.
    - `foreignId` string, nullable: Your own identifier for the event, stored as-is.
    - `eventDateNote` string, nullable: A note about the event date, for example when the date is approximate.
    - `mutuallyAgreeableDate` boolean: Set true to book an undated, mutually agreeable date; startDateTime must then be omitted.
  - `assignments` object: Agency members assigned to the booking: agents, assistants, logisticians, and marketing contacts. Agents may be given explicitly or omitted to use each roster artist's default assignments.
    - `agents` object[]: Agents on the booking, by account id or email. Omit to use each roster artist's default assignments; creation fails when no agent can be resolved.
      - `name` string, nullable: Member display name.
      - `firstName` string, nullable: Member's first name.
      - `lastName` string, nullable: Member's last name.
      - `defaultCommissionPercent` number, nullable: Default agency commission percent for this agent, as a percent number.
      - `defaultCommissionAmount` number, nullable: Default agency commission amount for this agent, in whole currency units.
      - `isSellingAgent` boolean: Whether this agent is the selling agent.
      - `salesTax` number, nullable: Sales tax percent applied to this agent's fee.
      - `id` string, nullable: Member's account id. Required when email is omitted.
      - `email` string, nullable: Member's email; used to match an existing account when id is omitted.
    - `assistants` object[]: Assistants on the booking, by account id or email.
      - `name` string, nullable: Member display name.
      - `firstName` string, nullable: Member's first name.
      - `lastName` string, nullable: Member's last name.
      - `id` string, nullable: Member's account id. Required when email is omitted.
      - `email` string, nullable: Member's email; used to match an existing account when id is omitted.
    - `logisticians` AgencyMember[]: Logisticians on the booking, by account id or email.
      - `name` string, nullable: Member display name.
      - `firstName` string, nullable: Member's first name.
      - `lastName` string, nullable: Member's last name.
      - `id` string, nullable: Member's account id. Required when email is omitted.
      - `email` string, nullable: Member's email; used to match an existing account when id is omitted.
    - `marketing` AgencyMember[]: Marketing contacts on the booking, by account id or email.
      - `name` string, nullable: Member display name.
      - `firstName` string, nullable: Member's first name.
      - `lastName` string, nullable: Member's last name.
      - `id` string, nullable: Member's account id. Required when email is omitted.
      - `email` string, nullable: Member's email; used to match an existing account when id is omitted.
  - `contacts` object: The people and organizations on the booking, keyed by role: buyer, signer, promoter, and others. The buyer is required.
    - `buyer` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `signer` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `counterSigner` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `advancing` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `facilities` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `liaison` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `logisticsContact` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `marketingContact` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `payer` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `producer` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `promoter` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `runnerContacts` Contact[]: Day-of-show runners for the artist.
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
    - `ticketCountContact` Contact
      - `person` Person
        - `firstName` string, nullable: First name. Required when lastName is omitted.
        - `lastName` string, nullable: Last name. Required when firstName is omitted.
        - `email` string, nullable: Email address. Required for every person you send; it matches an existing contact or creates a new one.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` PhoneNumber[], nullable: Phone numbers.
          - `primary` boolean: Whether this is the primary phone number.
          - `type` string: Number type. Default main.
          - `number` string: The phone number.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
        - `signerFirstName` string, nullable: First name recorded for a signer or counter-signer entry when it differs from the contact's own name.
        - `signerLastName` string, nullable: Last name recorded for a signer or counter-signer entry when it differs from the contact's own name.
      - `org` Organization
        - `name` string, nullable: Organization name; used to match or create the organization record. Required when an organization is given.
        - `email` string, nullable: Organization email address.
        - `address` Address[], nullable: Postal addresses.
          - `address` string, nullable: Street address.
          - `city` string, nullable: City.
          - `state` string, nullable: State or province.
          - `subregion` string, nullable: Subregion.
          - `zipCode` string, nullable: Postal code.
          - `country` string, nullable: Country.
          - `timezone` string, nullable: IANA time zone id.
          - `primary` boolean: Whether this is the primary address.
        - `phoneNumber` string[], nullable: Phone numbers.
        - `website` Website[], nullable: Websites.
          - `primary` boolean: Whether this is the primary website.
          - `label` string: Display label.
          - `href` string: The URL.
  - `payments` object[], nullable: A custom payment schedule. When omitted, the agency's default payment-plan preset is applied. Exactly one payment must have remainder set to true.
    - `percent` number, nullable: Percent of the deal total due at this step, as a percent number (50 = 50%). Used to derive a payment item when items is omitted.
    - `amount` number, nullable: Payment amount in whole currency units. Used to derive a payment item when items is omitted.
    - `status` 'CREATED' | 'BILLED' | 'PAYMENT_PENDING' | 'PAID' | 'REFUNDED': Status of the created payment. Default CREATED.
    - `title` string, nullable: Payment title. Defaults to the payment's position, e.g. "Payment 0" for the first payment.
    - `remainder` boolean: Marks the payment that captures whatever remains after the other payments. Exactly one remainder payment is required.
    - `deposit` boolean: Whether this payment is a deposit.
    - `dueDate` string, nullable: Due date (YYYY-MM-DD, no time component). Required unless dueOnSite is true or relativeDueDate is given.
    - `relativeDueDate` object, nullable: Due date relative to a trigger event, as an alternative to dueDate; the two cannot be combined.
      - `value` integer: Number of units (see unit) relative to the trigger event. Default 3.
      - `unit` 'DAYS': Time unit for value. Only DAYS is accepted for payment due dates.
      - `beforeOrAfter` 'BEFORE' | 'AFTER' | 'WHEN' | 'ON': Whether the due date falls before or after the trigger event.
      - `triggerEvent` 'CONTRACT_ISSUED' | 'CONTRACT_SIGNED' | 'EVENT_DATE' | 'FIRST_EVENT_DATE' | 'LAST_EVENT_DATE': Event the due date is relative to. Accepted for payment due dates: CONTRACT_ISSUED, CONTRACT_SIGNED, EVENT_DATE, FIRST_EVENT_DATE, LAST_EVENT_DATE.
      - `dateTime` string, nullable: Fixed due date (YYYY-MM-DD, no time component). Required when userManaged is true.
      - `timeZone` string, nullable: IANA time zone id for dateTime.
      - `userManaged` boolean: Set true to manage the due date manually; requires dateTime.
    - `dueOnSite` boolean: Set true to make the payment due on site, which removes the dueDate requirement; the due date defaults to the event date.
    - `manualPaymentMethod` string, nullable: Payment method label for payments collected outside the platform.
    - `refundPaymentMethod` string, nullable: Payment method label for refunds.
    - `referenceCode` string, nullable: Bank or ACH memo recorded with the payment; surfaces on the invoice as its payment reference number.
    - `offerItemType` 'PERFORMANCE_FEE_GUARANTEE' | 'ARTIST_PERFORMANCE_FEE' | 'ARTIST_MEMBER_FEE' | 'PERFORMANCE_FEE_BONUS' | 'BOOKING_FEE_GUARANTEE' | 'BOOKING_FEE' | 'ARTIST_MEMBER_BOOKING_FEE' | 'AGENCY_FEE' | 'AGENT_FEE' | 'BOOKING_FEE_BONUS' | 'EXPENSE': What this payment covers, for example PERFORMANCE_FEE_GUARANTEE (default). Used to derive a payment item when items is omitted.
    - `items` object[], nullable: Line items for this payment; each item needs offerItemType and either percent, amount, or remainder. Leave items empty for the remainder payment. When omitted, a single item is derived from the payment's percent, amount, and offerItemType.
      - `percent` number, nullable: Percent of the deal total for this item, as a percent number.
      - `amount` number, nullable: Item amount in whole currency units.
      - `remainder` boolean: Set true to make this item capture the remainder.
      - `offerItemType` 'PERFORMANCE_FEE_GUARANTEE' | 'ARTIST_PERFORMANCE_FEE' | 'ARTIST_MEMBER_FEE' | 'PERFORMANCE_FEE_BONUS' | 'BOOKING_FEE_GUARANTEE' | 'BOOKING_FEE' | 'ARTIST_MEMBER_BOOKING_FEE' | 'AGENCY_FEE' | 'AGENT_FEE' | 'BOOKING_FEE_BONUS' | 'EXPENSE', nullable: What this item covers, for example PERFORMANCE_FEE_GUARANTEE. Required.
  - `phrases` object, nullable: Contract phrase values keyed by phrase id, each a list of lines.
  - `internalNotes` string, nullable: Internal notes attached to the booking; visible to agency members, not to the buyer.

## Response `200`

OK

- CreateDealResponse
  - `status` 'OK' | 'FAIL' | 'ERROR'
  - `code` string, nullable: ResultCode enum name (e.g. SUCCESS, NOT_FOUND, RATE_LIMIT_EXCEEDED)
  - `message` string, nullable: Result message: OK on success; the error text when status is FAIL or ERROR.
  - `messages` string[], nullable: In rare, specific cases, additional error messages.
  - `data` object
    - `bookingId` string: The created booking's identifier.
  - `requestId` string, nullable: A request correlation id generated by the server.

## Changes

- **2026-10-30** `f761a02f0202`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gigwell/apis/gigwell-public-api/changes/booking/:entityId/post.md)

---

[API](https://skmtc.dev/gigwell/apis/gigwell-public-api.md) - [All operations](https://skmtc.dev/gigwell/apis/gigwell-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gigwell/apis/gigwell-public-api/revisions/0e75f0ca0803?raw)
