{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Product base fields","meta":[{"name":"title","content":"Korus Ticket Developer Portal"},{"name":"description","content":"Learn how to work with Korus Ticket APIs"},{"name":"lang","content":"en-US"},{"name":"robots","content":"noindex"}]},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"product-base-fields","__idx":0},"children":["Product base fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TicketingProductBase"]}," resources expose fields that help you prepare the booking flow."," ","Use them to decide which controls, limits, and post-order steps your"," ","integration should support."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You usually read these fields when you load product bases from"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/ticketingproductbase/api_v1ticketingproduct_bases_id_get"},"children":["GET /v1/ticketing/product_bases/{id}"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example","__idx":1},"children":["Example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"@id\": \"/v1/ticketing/product_bases/0199570c-3380-7e12-9dcd-7cbe238e71f0\",\n  \"@type\": \"TicketingProductBase\",\n  \"id\": \"0199570c-3380-7e12-9dcd-7cbe238e71f0\",\n  \"name\": \"Ligue 1 - OL / FC Lorient\",\n  \"universe\": \"show\",\n  \"useSession\": true,\n  \"recurring\": false,\n  \"beneficiaryInfoMayBeRequired\": true,\n  \"instantDocumentDelivery\": false,\n  \"maxAmountPerOrder\": 6\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"catalog-classification","__idx":2},"children":["Catalog classification"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"How to use it"},"children":["How to use it"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["universe"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["High-level product category, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["show"]},". Use it to group product bases, choose a storefront section, or adapt labels in your UI."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"booking-flow-fields","__idx":3},"children":["Booking flow fields"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"How to use it"},"children":["How to use it"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recurring"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", let the customer choose a date instead of presenting the product base as a single fixed event."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["useSession"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", the customer must choose a session time slot for the product before booking. Present the available time slots in the booking flow."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxAmountPerOrder"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When the value is not ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]},", cap the quantity selector to this number before calling the reservation endpoint. When it is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]},", Korus Ticket does not expose a product-base-specific order limit."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["beneficiaryInfoMayBeRequired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", prepare a post-order beneficiary step. The exact required fields are only known after order creation in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["order.items[].tickets[].requiredBeneficiaryFields"]},". If your integration cannot handle post-order processing, collect all possible beneficiary fields before placing the order (see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#possible-beneficiary-fields"},"children":["Possible beneficiary fields"]}," below)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["instantDocumentDelivery"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},", do not promise immediate ticket download. After order creation, list the order documents and use each document's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["downloadableAt"]}," value to decide when it can be downloaded."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For example, a sport event will usually have ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["useSession: true"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recurring: false"]},": the customer chooses a time"," ","slot for one specific event date."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"possible-beneficiary-fields","__idx":4},"children":["Possible beneficiary fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following fields may be required on any ticket. The exact subset is returned in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["order.items[].tickets[].requiredBeneficiaryFields"]}," after order creation. If you need to collect beneficiary data upfront, present all of them:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["firstname"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastname"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["email"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["title"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phone"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dateOfBirth"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ISO 8601 string (e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"1990-01-15\""]},")"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["placeOfBirth"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nationality"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"recommended-flow","__idx":5},"children":["Recommended flow"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Load product bases and store these fields with your catalog data."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recurring"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["useSession"]}," to prepare the customer's date and time slot selection flow."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxAmountPerOrder"]}," to configure the quantity selector before reservation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create the reservation and order as described in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/how-to/book-a-ticket"},"children":["Book a ticket"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["After order creation, check whether tickets require beneficiaries before trying to download documents."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["instantDocumentDelivery"]}," and document ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["downloadableAt"]}," values to decide whether to show a download button or a pending state."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For beneficiary details, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/how-to/beneficiary-requirements"},"children":["Beneficiary requirements"]},". For document download, see"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/how-to/get-order-documents"},"children":["Download order documents"]},"."]}]},"headings":[{"value":"Product base fields","id":"product-base-fields","depth":1},{"value":"Example","id":"example","depth":2},{"value":"Catalog classification","id":"catalog-classification","depth":2},{"value":"Booking flow fields","id":"booking-flow-fields","depth":2},{"value":"Possible beneficiary fields","id":"possible-beneficiary-fields","depth":3},{"value":"Recommended flow","id":"recommended-flow","depth":2}],"frontmatter":{"seo":{"title":"Product base fields"}},"lastModified":"2026-04-21T10:34:12.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/how-to/product-base-fields","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}