> For the complete documentation index, see [llms.txt](https://docs.podplay.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.podplay.app/api/bookings/direct-checkout-bookings.md).

# Direct Checkout Bookings

Streamlined booking flow for quick reservations.

## POST /direct-checkout/bookings

>

```json
{"openapi":"3.0.0","info":{"title":"PodPlay Inc API","version":"2.0"},"tags":[{"name":"DirectCheckoutBookings","description":"Streamlined booking flow for quick reservations."}],"servers":[{"url":"/apis/v2","description":"Current Server"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"BookingDto":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"type":{"type":"string","enum":["PREVIEW","ORDER"]},"status":{"type":"string","enum":["DRAFT","INVALID","PENDING","CONFIRMED","CANCELED","REQUIRES_AUTHENTICATION"],"readOnly":true},"eventSubtype":{"type":"string","enum":["OPERATIONS","KIDS_CLASS","ADULT_CLASS","OPEN_PLAY","LEAGUE_NIGHT","TOURNAMENT","PARTY","PRIVATE_EVENT"]},"eventCustomType":{"type":"string"},"eventStatus":{"type":"string","enum":["DRAFT","PUBLISHED"]},"eventName":{"type":"string"},"eventDescription":{"type":"string"},"eventFeatures":{"type":"array","nullable":true,"items":{"type":"string","enum":["WAITLIST","PUBLIC_ATTENDEE_LIST","QUICK_REPLAYS","CUSTOM_REPLAYS","ENHANCED_REPLAYS","SUBMIT_MATCHES_RESULTS","SHOW_SPOTS_LEFT"]}},"tournamentDivision":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/TournamentDivisionDto"}]},"totalTeams":{"type":"number","nullable":true},"teamSize":{"type":"number","nullable":true},"maxGuests":{"type":"number","nullable":true},"admission":{"type":"string","enum":["OPEN","MEMBERS_ONLY","CLOSED"]},"admissionRate":{"$ref":"#/components/schemas/BookingAdmissionRateDto"},"admissionDate":{"$ref":"#/components/schemas/BookingAdmissionDateDto"},"admissionRating":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/BookingAdmissionRatingDto"}]},"admissionKids":{"type":"string","enum":["OPEN","CLOSED"]},"allowedMemberships":{"$ref":"#/components/schemas/ItemRefCollectionDto"},"coachRate":{"type":"number"},"freeSignupCancellationHorizonHours":{"type":"number"},"picture":{"$ref":"#/components/schemas/ItemRefDto"},"tags":{"type":"array","items":{"type":"string"}},"visibility":{"type":"string","enum":["LISTED","UNLISTED"]},"items":{"type":"array","items":{"$ref":"#/components/schemas/BookingItemReservationSessionDto"}},"couponCode":{"type":"string","writeOnly":true,"nullable":true},"virtualCredits":{"type":"number","writeOnly":true,"nullable":true},"bookingMode":{"type":"string","enum":["USER_BOOKED","FREE_OF_CHARGE"],"writeOnly":true,"nullable":true},"paymentMethod":{"type":"string","enum":["CARD","CASH"],"writeOnly":true,"nullable":true},"coupon":{"readOnly":true,"nullable":true,"allOf":[{"$ref":"#/components/schemas/CouponSummaryDto"}]},"termsAgreed":{"type":"boolean","writeOnly":true,"nullable":true,"description":"An optional parameter to tell the User is agreeing the \"Terms\" along with the booking request."},"liabilityWaiverAgreed":{"type":"boolean","writeOnly":true,"nullable":true,"description":"An optional parameter to tell the User is agreeing the \"Liability waiver\" along with the booking request."},"order":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"summary":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingSummaryDto"}]},"owner":{"writeOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"createAsSeries":{"type":"boolean","writeOnly":true},"seriesPriceSettings":{"writeOnly":true,"allOf":[{"$ref":"#/components/schemas/SeriesPriceSettingsDto"}]},"chargeStrategy":{"type":"string","enum":["BILL_SPLIT","ONLY_OWNER"],"nullable":true},"passesStrategy":{"type":"string","enum":["USE_ALL","USE_NONE"],"nullable":true},"recurrence":{"writeOnly":true,"nullable":true,"allOf":[{"$ref":"#/components/schemas/BookingRecurrenceDto"}]},"_links":{"type":"object"}},"required":["id","type","status","eventSubtype","eventCustomType","eventStatus","eventName","eventDescription","eventFeatures","tournamentDivision","totalTeams","teamSize","maxGuests","admission","admissionKids","coachRate","freeSignupCancellationHorizonHours","tags","visibility","items","couponCode","virtualCredits","bookingMode","paymentMethod","coupon","termsAgreed","liabilityWaiverAgreed","order","summary","owner","createAsSeries","chargeStrategy","passesStrategy","recurrence","_links"]},"TournamentDivisionDto":{"type":"object","properties":{"id":{"type":"string","description":"Tournament Division ID","readOnly":true},"tournament":{"description":"Tournament ID","readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"provider":{"type":"string","enum":["SWISH","PODPLAY"]},"swish":{"description":"Tournament data specific to Swish","allOf":[{"$ref":"#/components/schemas/SwishDto"}]},"podplay":{"description":"Tournament data specific to PodPlay","allOf":[{"$ref":"#/components/schemas/PodPlayTournamentDto"}]},"status":{"type":"string","enum":["DRAFT","SUCCESS","FAILED"],"description":"Current status of the tournament","readOnly":true},"createdAt":{"format":"date-time","type":"string","description":"When the tournament was created","readOnly":true},"event":{"description":"ID of the event the tournament is associated with","readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"lastSyncedAt":{"format":"date-time","type":"string","description":"Last time the tournament was synced with the provider"},"visibility":{"type":"string","enum":["HIDDEN","VISIBLE"],"description":"Visibility status: HIDDEN (admin only), VISIBLE (shown to users), or null"},"_links":{"type":"object","readOnly":true}},"required":["id","tournament","provider","event","_links"]},"ItemRefDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the resource"}},"required":["id"]},"SwishDto":{"type":"object","properties":{"eventFormat":{"type":"string","enum":["regular_play","rotating_partners_round_robin","set_partners_round_robin","mixed_gender_round_robin","custom_team_format","minor_league_pickleball_round_robin","king_of_the_court","league-rotating_partners_round_robin","league-set_partners_round_robin","league-mixed_gender_round_robin","ladder-league-rotating_partners_round_robin","league-king_of_the_court","league-custom_team_format","league-minor_league_pickleball_round_robin"]},"gameId":{"type":"string"},"editPlayersPath":{"type":"string"}},"required":["eventFormat","editPlayersPath"]},"PodPlayTournamentDto":{"type":"object","properties":{"eventFormat":{"type":"string","description":"The event format for PodPlay tournaments"},"gameId":{"type":"string","description":"Game ID from PodPlay provider"},"url":{"type":"string","description":"URL to the tournament in PodPlay provider"}},"required":["eventFormat","url"]},"BookingAdmissionRateDto":{"type":"object","properties":{"regular":{"type":"number","nullable":true},"member":{"type":"number","readOnly":true,"nullable":true},"membersDefault":{"type":"number","nullable":true},"memberships":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/EventAdmissionRateMembershipCollectionDto"}]},"chargingStrategy":{"type":"string","enum":["spot+","court+"]}},"required":["regular","member","membersDefault","memberships","chargingStrategy"]},"EventAdmissionRateMembershipCollectionDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventAdmissionRateMembershipDto"}},"_total":{"type":"number"},"_links":{"$ref":"#/components/schemas/LinksDto"}},"required":["items","_total","_links"]},"EventAdmissionRateMembershipDto":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/ItemRefDto"},"rate":{"type":"number"}},"required":["membership","rate"]},"LinksDto":{"type":"object","properties":{"self":{"description":"A `LinkDto` to the resource itself","allOf":[{"$ref":"#/components/schemas/LinkDto"}]}},"required":["self"]},"LinkDto":{"type":"object","properties":{"href":{"type":"string","description":"A URL"}},"required":["href"]},"BookingAdmissionDateDto":{"type":"object","properties":{"regular":{"format":"date-time","type":"string","nullable":true},"member":{"format":"date-time","type":"string","readOnly":true,"nullable":true},"membersDefault":{"format":"date-time","type":"string","nullable":true},"memberships":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/EventAdmissionDateMembershipCollectionDto"}]}},"required":["regular","member","membersDefault","memberships"]},"EventAdmissionDateMembershipCollectionDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventAdmissionDateMembershipDto"}},"_total":{"type":"number"},"_links":{"$ref":"#/components/schemas/LinksDto"}},"required":["items","_total","_links"]},"EventAdmissionDateMembershipDto":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/ItemRefDto"},"date":{"format":"date-time","type":"string"}},"required":["date"]},"BookingAdmissionRatingDto":{"type":"object","properties":{"minRating":{"type":"number"},"maxRating":{"type":"number"},"type":{"type":"string"}},"required":["minRating","maxRating","type"]},"ItemRefCollectionDto":{"type":"object","properties":{"items":{"description":"The array containing the elements of the collection","type":"array","items":{"type":"string"}},"_total":{"type":"number","description":"The total amount of elements in this collection, counting also the elements from the succesive pages"},"_links":{"description":"A `LinksDto` structure containing URL references to propertes that can be expanded","allOf":[{"$ref":"#/components/schemas/LinksDto"}]}},"required":["items"]},"BookingItemReservationSessionDto":{"type":"object","properties":{"session":{"$ref":"#/components/schemas/ItemRefDto"},"sessionTable":{"$ref":"#/components/schemas/ItemRefDto"},"sessionCoach":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"sessionGuests":{"nullable":true,"description":"Represents the number of guests that will participate in the Reservation","allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"errors":{"readOnly":true,"nullable":true,"type":"array","items":{"type":"string"}}},"required":["session","sessionTable","sessionCoach","sessionGuests","errors"]},"CouponSummaryDto":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"discountType":{"type":"string","enum":["AMOUNT_OFF","PERCENT_OFF"]},"value":{"type":"number"},"_links":{"$ref":"#/components/schemas/LinksDto"}},"required":["id","code","discountType","value","_links"]},"BookingSummaryDto":{"type":"object","properties":{"events":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ItemRefCollectionDto"}]},"reservations":{"readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/BookingSummaryItemReservationDto"}},"currency":{"type":"string","readOnly":true},"series":{"readOnly":true,"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"subtotal":{"type":"number","readOnly":true},"taxes":{"readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/TaxDto"}},"couponDiscount":{"type":"number","readOnly":true},"coachingDiscount":{"type":"number","readOnly":true},"virtualCredits":{"type":"number","readOnly":true},"total":{"type":"number","readOnly":true},"maxChargableAmount":{"type":"number","readOnly":true},"dayPass":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/PodPassRateDto"}]},"passes":{"readOnly":true,"nullable":true,"description":"Only available if `passesStrategy` is not null.","allOf":[{"$ref":"#/components/schemas/OrderPassCollectionDto"}]},"errors":{"readOnly":true,"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ValidationErrorDto"}},"messages":{"readOnly":true,"nullable":true,"description":"Possible messages that may be returned when booking. Valid codes are: EBM053, EBM054, EBM055, EBM056","type":"array","items":{"$ref":"#/components/schemas/MessageDto"}}},"required":["events","reservations","currency","series","subtotal","taxes","couponDiscount","coachingDiscount","virtualCredits","total","maxChargableAmount","passes","errors","messages"]},"BookingSummaryItemReservationDto":{"type":"object","properties":{"reservation":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/ReservationDto"}]},"rate":{"type":"number","readOnly":true},"baseRate":{"type":"number","readOnly":true},"tableRate":{"type":"number","readOnly":true},"guestsRate":{"type":"number","readOnly":true},"coachRate":{"type":"number","readOnly":true},"admissionRate":{"type":"number","readOnly":true},"errors":{"readOnly":true,"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ValidationErrorDto"}}},"required":["reservation","rate","baseRate","tableRate","guestsRate","coachRate","admissionRate","errors"]},"ReservationDto":{"type":"object","properties":{"id":{"type":"string"},"startTime":{"format":"date-time","type":"string"},"endTime":{"format":"date-time","type":"string"},"tableAssignment":{"type":"string","enum":["PENDING","LOCKED_BY_SYSTEM","LOCKED_BY_USER","LOCKED_BY_ADMIN","CANCELED_BY_USER","CANCELED_BY_ADMIN"]},"sessions":{"$ref":"#/components/schemas/ReservationSessionCollectionDto"},"pod":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"table":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"coach":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"guests":{"type":"number","nullable":true},"charges":{"$ref":"#/components/schemas/CollectionRefDto"},"quickReplays":{"$ref":"#/components/schemas/CollectionRefDto"},"customReplays":{"$ref":"#/components/schemas/CollectionRefDto"},"_links":{"type":"object"}},"required":["id","startTime","endTime","tableAssignment","sessions","pod","table","coach","guests","charges","quickReplays","customReplays","_links"]},"ReservationSessionCollectionDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReservationSessionDto"}},"_total":{"type":"number"},"_links":{"$ref":"#/components/schemas/LinksDto"}},"required":["items","_total","_links"]},"ReservationSessionDto":{"type":"object","properties":{"id":{"type":"string"},"session":{"$ref":"#/components/schemas/ItemRefDto"},"coupon":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"charge":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemRefDto"}]},"_links":{"type":"object"}},"required":["id","session","coupon","charge","_links"]},"CollectionRefDto":{"type":"object","properties":{"_total":{"type":"number","description":"The total amount of elements in this collection"}}},"ValidationErrorDto":{"type":"object","properties":{"code":{"type":"string","readOnly":true},"message":{"type":"string","readOnly":true},"details":{"type":"object","readOnly":true,"nullable":true}},"required":["code","message","details"]},"TaxDto":{"type":"object","properties":{"name":{"type":"string","readOnly":true},"amount":{"type":"number","readOnly":true,"description":"Amount (in $) corresponding to this tax item"},"percentage":{"type":"number","readOnly":true,"description":"Tax percentage that was applied to a subtotal amount, used to display the tax rate. eg: {TaxName}: 9%"}},"required":["name","amount","percentage"]},"PodPassRateDto":{"type":"object","properties":{"id":{"type":"string"},"displayName":{"type":"string"},"rate":{"type":"number"}},"required":["id","displayName","rate"]},"OrderPassCollectionDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/OrderPassDto"}},"_total":{"type":"number"},"_links":{"type":"object"}},"required":["items","_total","_links"]},"OrderPassDto":{"type":"object","properties":{"id":{"type":"object"},"available":{"type":"number","readOnly":true,"description":"Either for applicable or refundable passes this represents potential but not the actual number to be applied/refunded"},"quantity":{"type":"number","readOnly":true,"description":"Either for applicable or refundable passes this represents actual number to be applied/refunded"},"displayName":{"type":"string","readOnly":true},"displayNamePlural":{"type":"string","readOnly":true},"rate":{"type":"number","readOnly":true}},"required":["id","available","quantity","displayName","displayNamePlural","rate"]},"MessageDto":{"type":"object","properties":{"code":{"type":"string","readOnly":true},"message":{"type":"string","readOnly":true}},"required":["code","message"]},"SeriesPriceSettingsDto":{"type":"object","properties":{"full":{"$ref":"#/components/schemas/SeriesPriceSettingsItemDto"},"unit":{"$ref":"#/components/schemas/SeriesPriceSettingsItemDto"}}},"SeriesPriceSettingsItemDto":{"type":"object","properties":{"members":{"$ref":"#/components/schemas/SeriesPriceSettingsMembersDto"},"nonMembers":{"$ref":"#/components/schemas/SeriesPriceSettingsNonMembersDto"}}},"SeriesPriceSettingsMembersDto":{"type":"object","properties":{"rate":{"type":"number","minimum":0},"overrides":{"$ref":"#/components/schemas/SeriesMembershipPriceOverridesCollectionDto"}}},"SeriesMembershipPriceOverridesCollectionDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SeriesMembershipPriceOverrideItemDto"}},"_total":{"type":"number"}},"required":["items","_total"]},"SeriesMembershipPriceOverrideItemDto":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/ItemRefDto"},"rate":{"type":"number","minimum":0},"_links":{"type":"object"}},"required":["membership","rate","_links"]},"SeriesPriceSettingsNonMembersDto":{"type":"object","properties":{"rate":{"type":"number","minimum":0}}},"BookingRecurrenceDto":{"type":"object","properties":{"id":{"type":"string","nullable":true},"cadence":{"type":"string","enum":["day","week","month","year","custom"]},"daysOfWeek":{"nullable":true,"type":"array","items":{"type":"number"}},"untilDate":{"type":"string","format":"date-time"}},"required":["id","cadence","daysOfWeek","untilDate"]},"ErrorDto":{"type":"object","properties":{"statusCode":{"type":"number","readOnly":true},"message":{"type":"object","readOnly":true},"error":{"type":"string","readOnly":true}},"required":["statusCode","message","error"]}}},"paths":{"/direct-checkout/bookings":{"post":{"operationId":"DirectCheckoutBookingsController_create","parameters":[{"name":"user-agent","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"201":{"description":"Returns a `Booking`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingDto"}}}},"400":{"description":"Returns an `ErrorDto` in case of missing or incorrect request parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDto"}}}},"403":{"description":"Returns an `ErrorDto` in case of a lack of permissions to perform the requested action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDto"}}}},"404":{"description":"Returns an `ErrorDto` in case of the provided information does not match with the ones in the system","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDto"}}}}},"tags":["DirectCheckoutBookings"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.podplay.app/api/bookings/direct-checkout-bookings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
