{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"430cf8fd-ee71-4df8-83b4-96633bdc59e8","name":"Experticket API","description":"For a better understanding of the API’s use, we proposed below a summary of the data structure with which Experticket works.\n\nTo facilitate understanding, we will work with the fictitious examples of the PTM Theme Park and the PAC Water Park.\n\n## **Transaction**\n\nA Transaction is equivalent to a purchase or purchase attempt. A transaction can be composed of one or several products (those the customer has decided to buy), but which must all belong to the same Provider.\n\nIn other words, a transaction must involve only the products of a single Provider. If the customer wants to buy products from two Providers, there will be two transactions.\n\n## **Provider**\n\nA Provider encompasses a set of defined products. Its objective is solely that of setting a simple hierarchical order.\n\nIn our example we present two providers: PTM and PAC.\n\n## **ProductBase**\n\nA ProductBase (or product category) is a simple classifier/grouper of products.\n\nLater on we will see, for instance, that it is not required for creating a transaction (it's enough with the provider and the list of products with their tickets). But on the other hand, it is very useful for defining common properties for a set of products, e.g. a \"description\". We will look at the different uses of the ProductBase throughout the document.\n\nFor simplicity, our example has only one ProductBase in each Provider, which we refer to as \"tickets\", and which will not have a description. To facilitate the concept’s understanding a little further, we envision a ProductBase referred to as \"tickets\" (with products \"adult tickets\" and \"children’s tickets\"), and another ProductBase referred to as \"offers\" (with products \"adult offers\" and \"children’s offers\").\n\n## **Product**\n\nA Product is the basic commercial element of sale.\n\nIn PTM, for example, there will be 4 products: \"Adult Ticket\", \"Children’s Ticket\", \"3x2 Ticket (two adults and a child)\" and \"3D animated movie\".\n\nIn PAC, for example, there will be 4 products: \"Adult Ticket\", \"Children’s Ticket\", \"Senior Ticket\" and \"2x1 Children’s Ticket\".\n\n## **Ticket**\n\nA ticket is the smallest unit of sale.\n\nA product may have one ticket, several, or none. A ticket can be part of one or several products.\n\nContinuing with the proposed example:\n\n- PTM (provider):\n    \n    - \"Adult Ticket\" product composed of a single ticket (\"Adult Ticket\").\n        \n    - \"Children’s Ticket\" product composed of a single ticket (\"Children's Ticket\").\n        \n    - \"3x2 Ticket\" product composed of three tickets (\"Adult Ticket\", \"Adult Ticket\" and \"Children's Ticket\").\n        \n    - 3D animated movie composed of a single ticket (\"3D Ticket\").\n        \n- PAC (provider):\n    \n    - \"Adult Ticket\" product composed of a single ticket (\"Adult Ticket\").\n        \n    - \"Children's Ticket\" product composed of a single ticket (\"Children's Ticket\").\n        \n    - \"Senior Ticket\" product composed of a single ticket (\"Senior Ticket\").\n        \n    - \"2x1 Children's Ticket\" product composed of two tickets (\"Children's Ticket\" and \"Children's Ticket\").\n        \n\nIn the example, each product is composed of tickets. In addition, some of these tickets are part of several products.\n\nE.g. in the case of provider PTM, \"Adult Ticket\" ticket is part of products \"Adult Ticket\" and \"3x2 Ticket\", the latter which includes two adult tickets.\n\n> **Important note:** a product may not contain tickets. In this case the customer will receive a \"bonus\", which doesn't carry a bar code, and which should be exchanged at the destination. \n  \n\n## **Session**\n\nA session is defined by date, time, content, and (optionally) available capacity.\n\nA product may have one session, several, or none.\n\nHere are some examples:\n\n- \"3D animated movie\" product (follows with our example in provider PTM): composed of two single sessions of 1 January 2001 at 10:00 a.m. and at 4:00 p.m.\n    \n- \"3D Movie Room\": composed of three sessions per day for every day of the year (i.e. 3x365 = 1,095 sessions), from 1 January 2000 to 31 December 2000, showing: \"Travels with Dinosaurs\" at 10:00 a.m., \"Looking Deeply into the Universe\" at 12:00 a.m., and \"The Volcano of Volcanoes\" at 1:30 p.m.\n    \n- \"Tunnel Guide\" product: composed of 10 daily sessions (each lasting half an hour starting at 10:00 a.m.) every weekend, thirty weeks per year (10x2x30 = 600 sessions).\n    \n- \"Water park adult ticket\" product: composed of two sessions, one in the morning (9:00 a.m.) and one in the afternoon (4:00 p.m.) for 90 days of the summer (2x90 = 180 sessions).\n    \n\n> **Important note:** a product may not contain a session, i.e. its tickets will not have an associated use time but rather simply be bound to the schedule of the destination. \n  \n\n## Hierarchical scheme\n\nTo conclude, we present a hierarchical scheme below:\n\n- 1 Transaction\n    - 1 Provider\n        - N ProductBase\n            - N Products\n                - N Tickets\n                    - N Sessions\n                        \n\n## **Communication Interface**\n\nThe communication channel will be that of a REST API, i.e. HTTP calls to a Uniform Resource Locator (URL), with an HTTP Verb (POST, GET, DELETE…) and a request body.\n\n### **Content Negotiation**\n\nWe can choose whether to work with XML or JSON depending on the REQUEST HEADER \"Accept\" and/or \"Content-Type\" we send. E.g. for XML we will send an \"application/xml\" and for JSON we will send an \"application/json\". If we ignore the REQUEST HEADER, by default it will return a JSON. Remember that \"Accept\" is used for requests and \"Content-Type\" for responses.\n\nIf you prefeer XML, you can download the XSDs from your partner administration panel, section \"Communication Interface\".","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"1156470","team":49096,"collectionId":"430cf8fd-ee71-4df8-83b4-96633bdc59e8","publishedId":"2sAYBa8omS","public":true,"publicUrl":"https://apidocs.experticket.com","privateUrl":"https://go.postman.co/documentation/1156470-430cf8fd-ee71-4df8-83b4-96633bdc59e8","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-06-05T14:52:23.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/32ad65d095fb02cd10756736f472fcced90bbc425f4ced5a7a542bb14b5322b9","favicon":"https://experticket.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://apidocs.experticket.com/view/metadata/2sAYBa8omS"}