{"info":{"_postman_id":"430cf8fd-ee71-4df8-83b4-96633bdc59e8","name":"Experticket API","description":"<html><head></head><body><p>For a better understanding of the API’s use, we proposed below a summary of the data structure with which Experticket works.</p>\n<p>To facilitate understanding, we will work with the fictitious examples of the PTM Theme Park and the PAC Water Park.</p>\n<h2 id=\"transaction\"><strong>Transaction</strong></h2>\n<p>A 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.</p>\n<p>In 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.</p>\n<h2 id=\"provider\"><strong>Provider</strong></h2>\n<p>A Provider encompasses a set of defined products. Its objective is solely that of setting a simple hierarchical order.</p>\n<p>In our example we present two providers: PTM and PAC.</p>\n<h2 id=\"productbase\"><strong>ProductBase</strong></h2>\n<p>A ProductBase (or product category) is a simple classifier/grouper of products.</p>\n<p>Later 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.</p>\n<p>For 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\").</p>\n<h2 id=\"product\"><strong>Product</strong></h2>\n<p>A Product is the basic commercial element of sale.</p>\n<p>In PTM, for example, there will be 4 products: \"Adult Ticket\", \"Children’s Ticket\", \"3x2 Ticket (two adults and a child)\" and \"3D animated movie\".</p>\n<p>In PAC, for example, there will be 4 products: \"Adult Ticket\", \"Children’s Ticket\", \"Senior Ticket\" and \"2x1 Children’s Ticket\".</p>\n<h2 id=\"ticket\"><strong>Ticket</strong></h2>\n<p>A ticket is the smallest unit of sale.</p>\n<p>A product may have one ticket, several, or none. A ticket can be part of one or several products.</p>\n<p>Continuing with the proposed example:</p>\n<ul>\n<li><p>PTM (provider):</p>\n<ul>\n<li><p>\"Adult Ticket\" product composed of a single ticket (\"Adult Ticket\").</p>\n</li>\n<li><p>\"Children’s Ticket\" product composed of a single ticket (\"Children's Ticket\").</p>\n</li>\n<li><p>\"3x2 Ticket\" product composed of three tickets (\"Adult Ticket\", \"Adult Ticket\" and \"Children's Ticket\").</p>\n</li>\n<li><p>3D animated movie composed of a single ticket (\"3D Ticket\").</p>\n</li>\n</ul>\n</li>\n<li><p>PAC (provider):</p>\n<ul>\n<li><p>\"Adult Ticket\" product composed of a single ticket (\"Adult Ticket\").</p>\n</li>\n<li><p>\"Children's Ticket\" product composed of a single ticket (\"Children's Ticket\").</p>\n</li>\n<li><p>\"Senior Ticket\" product composed of a single ticket (\"Senior Ticket\").</p>\n</li>\n<li><p>\"2x1 Children's Ticket\" product composed of two tickets (\"Children's Ticket\" and \"Children's Ticket\").</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>In the example, each product is composed of tickets. In addition, some of these tickets are part of several products.</p>\n<p>E.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.</p>\n<blockquote>\n<p><strong>Important note:</strong> 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. </p>\n</blockquote>\n<h2 id=\"session\"><strong>Session</strong></h2>\n<p>A session is defined by date, time, content, and (optionally) available capacity.</p>\n<p>A product may have one session, several, or none.</p>\n<p>Here are some examples:</p>\n<ul>\n<li><p>\"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.</p>\n</li>\n<li><p>\"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.</p>\n</li>\n<li><p>\"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).</p>\n</li>\n<li><p>\"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).</p>\n</li>\n</ul>\n<blockquote>\n<p><strong>Important note:</strong> 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. </p>\n</blockquote>\n<h2 id=\"hierarchical-scheme\">Hierarchical scheme</h2>\n<p>To conclude, we present a hierarchical scheme below:</p>\n<ul>\n<li>1 Transaction<ul>\n<li>1 Provider<ul>\n<li>N ProductBase<ul>\n<li>N Products<ul>\n<li>N Tickets<ul>\n<li>N Sessions</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"communication-interface\"><strong>Communication Interface</strong></h2>\n<p>The 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.</p>\n<h3 id=\"content-negotiation\"><strong>Content Negotiation</strong></h3>\n<p>We 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.</p>\n<p>If you prefeer XML, you can download the XSDs from your partner administration panel, section \"Communication Interface\".</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"1156470","collectionId":"430cf8fd-ee71-4df8-83b4-96633bdc59e8","publishedId":"2sAYBa8omS","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-06-05T14:52:23.000Z"},"item":[{"name":"1.- Catalog","item":[{"name":"Catalog Basic","id":"0795eea6-4ec0-4768-b959-7d251703c1c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{baseUrl}}/catalog?PartnerId={{PartnerId}}&api-version={{apiVersion}}","description":"<p>In a first step, we can obtain the full catalog of providers, productbases, products and tickets for its internal processing.</p>\n<p>The information in the catalog includes unique identifiers for Provider, Product and Ticket, which will subsequently be used to create a transaction.</p>\n<p>It will also include other data such as product price, depending on the dates, or the product’s commercial terms.</p>\n<h2 id=\"filters\"><strong>Filters</strong></h2>\n<p>Each filtering we add will be considered an AND. E.g. several ProductIds from different providers may be filtered, but it would not make sense to filter by a ProviderId and a ProductId not belonging to this ProviderId.</p>\n","urlObject":{"path":["catalog"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"},{"key":"api-version","value":"{{apiVersion}}"},{"disabled":true,"key":"Languajecode","value":"it"}],"variable":[]}},"response":[{"id":"94d0cfaf-20e5-46a1-82aa-d5cafdf51e6b","name":"Doc example","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/catalog?PartnerId={{PartnerId}}","host":["{{baseUrl}}"],"path":["catalog"],"query":[{"key":"PartnerId","value":"{{PartnerId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\n    \"Success\": true,\n    \"ErrorMessage\": null,\n    \"Providers\": [\n        {\n            \"ProviderId\": \"by81fymhsmjgw\",\n            \"ProviderName\": \"PTM\",\n            \"ProviderDescription\": \"Provider Description\",\n            \"ProviderAccessConditions\": \"Provider access conditions\",\n            \"AccessCodeMethodName\": \"TicketWaitForIt\",\n            \"AdvancedDateSelectorMethodName\": \"None\",\n            \"IsForGroups\": false,\n            \"LimitOfNumberOfPeopleToBeGroup\": 19,\n            \"Logo\": \"https://url.ofthelogo.com\",\n            \"Location\": {\n                \"CountryCode\": \"es\",\n                \"City\": \"Torrevieja\",\n                \"Address\": \"Avda. Delfina Viudes, 99\",\n                \"ZipCode\": \"03183\",\n                \"Lat\": 37.99,\n                \"Lng\": -0.68\n            },\n            \"TicketEnclosures\": [\n                {\n                    \"TicketEnclosureId\": \"g5u6m3xew6hxy\",\n                    \"TicketEnclosureName\": \"Enclosure 1\",\n                    \"TicketEnclosureConditions\": \"Enclosure 1 conditions\",\n                    \"TypeOfPersonDefinitionTypeChild\": 2,\n                    \"TypeOfPersonDefinitionValueChild\": 120,\n                    \"TypeOfPersonDefinitionTypeSenior\": 1,\n                    \"TypeOfPersonDefinitionValueSenior\": 65\n                },\n                {\n                    \"TicketEnclosureId\": \"geu773xaqzh18\",\n                    \"TicketEnclosureName\": \"Enclosure 2\",\n                    \"TicketEnclosureConditions\": \"Enclosure 2 conditions\",\n                    \"TypeOfPersonDefinitionTypeChild\": 2,\n                    \"TypeOfPersonDefinitionValueChild\": 120,\n                    \"TypeOfPersonDefinitionTypeSenior\": 1,\n                    \"TypeOfPersonDefinitionValueSenior\": 65\n                }\n            ],\n            \"ProductBases\": [\n                {\n                    \"ProductBaseId\": \"gfo753rgjfbw6\",\n                    \"ProductBaseName\": \"Entradas\",\n                    \"ProductBaseDescription\": \"No se permiten cambios ni devoluciones.\",\n                    \"DaysWithLimitedCapacity\": \"2001-11-01\",\n                    \"Products\": [\n                        {\n                            \"ProductId\": \"ctgyir9m9q4bo\",\n                            \"ProductName\": \"Entrada Adulto\",\n                            \"ProductDescription\": \"Entrada para mayores de 12 años.\",\n                            \"DaysWithLimitedCapacity\": \"\",\n                            \"HoursInAdvanceOfPurchase\": 4,\n                            \"MinimumNumberByTransaction\": 1,\n                            \"NumberOfPeople\": 1,\n                            \"NumberOfAdults\": 1,\n                            \"NumberOfChildren\": 0,\n                            \"NumberOfSenior\": 0,\n                            \"NumberOfGeneric\": 0,\n                            \"ValidDates\": 1,\n                            \"ValidDatesType\": 0,\n                            \"PricesAndDates\": [\n                                {\n                                    \"Price\": \"20\",\n                                    \"Currency\": \"€\",\n                                    \"Dates\": \"2001-01-01,2001-01-02,2001-01-03,...,2001-07-31\"\n                                },\n                                {\n                                    \"Price\": \"30\",\n                                    \"Currency\": \"€\",\n                                    \"Dates\": \"2001-08-01,2001-08-02,...,2001-08-31\"\n                                },\n                                {\n                                    \"Price\": \"15\",\n                                    \"Currency\": \"€\",\n                                    \"Dates\": \"2001-09-01,2001-09-02,...,2001-12-31\"\n                                }\n                            ],\n                            \"Tickets\": [\n                                {\n                                    \"TicketId\": \"1tqgtrf7ctefc\",\n                                    \"IsQuotaTicket\": true,\n                                    \"TicketName\": \"Ticket Adulto\",\n                                    \"TicketEnclosureId\": \"geu773xaqzh18\"\n                                }\n                            ]\n                        },\n                        {\n                            \"ProductId\": \"htgy4tgm9q21n\",\n                            \"ProductName\": \"Entrada 3x2\",\n                            \"ProductDescription\": \"Por cada dos adultos, entra un niño gratis.\",\n                            \"DaysWithLimitedCapacity\": \"2001-04-17,2001-08-15\",\n                            \"HoursInAdvanceOfPurchase\": 4,\n                            \"MinimumNumberByTransaction\": 1,\n                            \"NumberOfPeople\": 3,\n                            \"NumberOfAdults\": 2,\n                            \"NumberOfChildren\": 1,\n                            \"NumberOfSenior\": 0,\n                            \"NumberOfGeneric\": 0,\n                            \"ValidDates\": 1,\n                            \"ValidDatesType\": 0,\n                            \"PricesAndDates\": [\n                                {\n                                    \"Price\": \"35\",\n                                    \"Currency\": \"€\",\n                                    \"Dates\": \"2001-01-01,2001-01-02,2001-01-03,...,2001-07-31\"\n                                },\n                                {\n                                    \"Price\": \"50\",\n                                    \"Currency\": \"€\",\n                                    \"Dates\": \"2001-08-01,2001-08-02,...,2001-08-31\"\n                                },\n                                {\n                                    \"Price\": \"25\",\n                                    \"Currency\": \"€\",\n                                    \"Dates\": \"2001-09-01,2001-09-02,...,2001-12-31\"\n                                }\n                            ],\n                            \"Tickets\": [\n                                {\n                                    \"TicketId\": \"1tqgtrf7ctefc\",\n                                    \"IsQuotaTicket\": true,\n                                    \"TicketName\": \"Ticket Adulto\",\n                                    \"TicketEnclosureId\": \"geu773xaqzh18\"\n                                },\n                                {\n                                    \"TicketId\": \"1tqgtrf7ctefc\",\n                                    \"IsQuotaTicket\": true,\n                                    \"TicketName\": \"Ticket Adulto\",\n                                    \"TicketEnclosureId\": \"geu773xaqzh18\"\n                                },\n                                {\n                                    \"TicketId\": \"jkp78j40cnfh3\",\n                                    \"IsQuotaTicket\": true,\n                                    \"TicketName\": \"Ticket Niño\",\n                                    \"TicketEnclosureId\": \"geu773xaqzh18\"\n                                }\n                            ]\n                        },\n                        {\n                            \"ProductId\": \"q2oghu9mye7h2\",\n                            \"ProductName\": \"Película de animación 3D\",\n                            \"ProductDescription\": \"Película de animación para descansar de atracciones\",\n                            \"DaysWithLimitedCapacity\": \"\",\n                            \"HoursInAdvanceOfPurchase\": 4,\n                            \"MinimumNumberByTransaction\": 1,\n                            \"NumberOfPeople\": 1,\n                            \"NumberOfAdults\": 0,\n                            \"NumberOfChildren\": 0,\n                            \"NumberOfSenior\": 0,\n                            \"NumberOfGeneric\": 1,\n                            \"ValidDates\": 1,\n                            \"ValidDatesType\": 0,\n                            \"PricesAndDates\": [\n                                {\n                                    \"Price\": \"5\",\n                                    \"Currency\": \"€\",\n                                    \"Dates\": \"2001-01-01,2001-01-02,2001-01-03,...,2001-12-31\"\n                                }\n                            ],\n                            \"Tickets\": [\n                                {\n                                    \"TicketId\": \"fb8mcqxyo22rg\",\n                                    \"IsQuotaTicket\": true,\n                                    \"TicketName\": \"Entrada 3D\",\n                                    \"TicketEnclosureId\": \"g5u6m3xew6hxy\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"0795eea6-4ec0-4768-b959-7d251703c1c4"},{"name":"Filter by providerId","id":"6cec59c0-4bb0-46ed-b61d-bb850fe752ab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{baseUrl}}/catalog?PartnerId={{PartnerId}}&providerIds={{providerId1}}","description":"<p>ProviderIds: filtering by provider</p>\n<p>If we wish to filter by several ProviderIds, we no longer need to repeat the \"Providers\" Key in the querystring. The fact that you can repeat the Keys in the querystring explains why these keys are in the plural (XXXIds).</p>\n<p>The same principle applies to ProductBaseIds and ProductIds. Below are 4 examples, filtering by one or several ProductBaseIds and ProductIds.</p>\n","urlObject":{"path":["catalog"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"},{"description":{"content":"<p>Providers to filter by.</p>\n","type":"text/plain"},"key":"providerIds","value":"{{providerId1}}"}],"variable":[]}},"response":[],"_postman_id":"6cec59c0-4bb0-46ed-b61d-bb850fe752ab"},{"name":"Filter by productBaseId","id":"5516c6de-80ec-4fd2-a8c8-d887720d2b97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/catalog?PartnerId={{PartnerId}}&ProductBaseIds={{productBaseId1}}","description":"<p>ProductBaseIds: filtering by ProductBase</p>\n","urlObject":{"path":["catalog"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"},{"description":{"content":"<p>Categories to filter by.</p>\n","type":"text/plain"},"key":"ProductBaseIds","value":"{{productBaseId1}}"}],"variable":[]}},"response":[],"_postman_id":"5516c6de-80ec-4fd2-a8c8-d887720d2b97"},{"name":"Filter by productId","id":"2ff99267-460a-41b7-bbb7-5ac85996b183","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/catalog?PartnerId={{PartnerId}}&ProductIds={{productId1}}","description":"<p>ProductIds: filtering by product</p>\n","urlObject":{"path":["catalog"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"},{"description":{"content":"<p>Products to filter by.</p>\n","type":"text/plain"},"key":"ProductIds","value":"{{productId1}}"}],"variable":[]}},"response":[],"_postman_id":"2ff99267-460a-41b7-bbb7-5ac85996b183"},{"name":"Filter by dates","id":"91976fd1-308a-4137-919b-73913126ad7a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/catalog?PartnerId={{PartnerId}}&FromDate=2017-07-08&ToDate=2017-08-08&ReferenceDate=2017-07-05","description":"<ul>\n<li>FromDate: filtering by starting date. It does not allow earlier date values other than the one of today . Its default value is today’s date. ISO 8601 format (yyyy-MM-dd).</li>\n<li>ToDate: filtering by ending date. The default value is the corresponding date within a year. ISO 8601 format (yyyy-MM-dd).</li>\n<li>ReferenceDate: requires that the day adopted as reference to calculate prices and availabilities not be today's date, where it is not indicated. For example, it will be used if the prices change depending on the remaining days until the ticket date. ISO 8601 format (yyyy-MM-dd).</li>\n</ul>\n<p>We can also filter by starting date, ending date, or both.</p>\n<p>We can demand that the reference day not be today, where it is not indicated.</p>\n<p>And we can combine all screened items as we see fit, always remembering that the screened item is an AND.</p>\n","urlObject":{"path":["catalog"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"},{"description":{"content":"<p>Filtering by starting date.</p>\n","type":"text/plain"},"key":"FromDate","value":"2017-07-08"},{"description":{"content":"<p>Filtering by ending date.</p>\n","type":"text/plain"},"key":"ToDate","value":"2017-08-08"},{"description":{"content":"<p>Requires that the day adopted as reference to calculate prices and availabilities not be today's date, where it is not indicated.</p>\n","type":"text/plain"},"key":"ReferenceDate","value":"2017-07-05"}],"variable":[]}},"response":[],"_postman_id":"91976fd1-308a-4137-919b-73913126ad7a"},{"name":"Multilanguage","id":"8a78c011-a3bb-441a-8b04-e31ef88740bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/catalog?PartnerId={{PartnerId}}&LanguageCode=en","description":"<p>LanguageCode: Sets the language in which to display the catalog’s text (name/description/provider/product conditions/). By default it shall return to the language configured.</p>\n<p>Possible values: es,en,fr,it.</p>\n","urlObject":{"path":["catalog"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"},{"description":{"content":"<p>Sets the language in which to display the catalog’s text.</p>\n","type":"text/plain"},"key":"LanguageCode","value":"en"}],"variable":[]}},"response":[],"_postman_id":"8a78c011-a3bb-441a-8b04-e31ef88740bd"},{"name":"Response data structure","id":"a3d2ee27-cc7d-4d0e-88ff-9a311f93868e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"VIEW","header":[],"body":{"mode":"formdata","formdata":[]},"url":"","description":"<ul>\n<li>LastUpdatedDateTime: Last catalog modification date.</li>\n<li>Providers: Array of providers.<ul>\n<li>ProviderId: The provider’s identifier code. Thirteen alphanumeric characters (e.g. \"by81fymhsmjgw\").</li>\n<li>ProviderName: The provider’s name (e.g. \"PTM\").</li>\n<li>ProviderDescription: Provider description.</li>\n<li>ProviderCommercialConditions: Service provider’s commercial terms. This field will not be displayed if they do not exist.</li>\n<li>ProviderAccessConditions: Service provider's access terms. This field will not be displayed if they do not exist.</li>\n<li>AdvancedDateSelectorMethodName: The name of the method that determines if a product’s tickets can have their own specific access date. More information about this point is available in Attachment <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-b4eae57b-8200-430b-80eb-4960d0323125\">AdvancedSelector</a>.</li>\n<li>CancellationPolicy: Describe the cancellation policies that apply when canceling a sale from this provider. If a specific product does not have cancellation policies these will apply.<ul>\n<li>IsRefundable: Indicates if the customer can cancel for free at some point in time.</li>\n<li>Rules: Rules that apply when canceling.<ul>\n<li>HoursInAdvanceOfAccess. Indicates the number of hours in advance regarding the date of access from which the cancellation fee set in Percentage will be applied.</li>\n<li>Percentage: Percentage of the total product amount that won't be refunded in case of cancellation.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>DemandAccessDate: Indicates whether the access date is needed. If don't, either \"Reservation\" and \"Transaction\" methods must be used as AccessDate.</li>\n<li>TaxType: Indicates the type of tax on the provider's products. Options:<ul>\n<li>0: IVA</li>\n<li>1: IGIC</li>\n</ul>\n</li>\n<li>Type: Type of provider. Options:<ul>\n<li>0: Activity</li>\n<li>1: Accommodation</li>\n<li>2: Transport</li>\n</ul>\n</li>\n<li>IsForGroups: Indicates whether the provider’s products are intended for sale to groups.</li>\n<li>LimitOfNumberOfPeopleToBeGroup: Limits the number of people that make up a product from which the transaction is considered for \"groups\". E.g. if this limit is \"19\" and the provider is not for groups (IsForGroups == false), transactions with 20 or more people will be rejected. Otherwise, if the provider is for groups (IsForGroups == true), it will only accept transactions for 20 or more people.</li>\n<li>Logo: Url to download provider logo image.</li>\n<li>Location: Location information.<ul>\n<li>CountryCode: Country code (es,fr...).</li>\n<li>City: City or town.</li>\n<li>Address: Address/domicile.</li>\n<li>ZipCode: Postal code or postcode.</li>\n<li>Lat: Latitude.</li>\n<li>Lng: Longitude.</li>\n</ul>\n</li>\n<li>TicketEnclosures: Information of provider's enclosures.<ul>\n<li>TicketEnclosureId: Enclosure identifier.</li>\n<li>TicketEnclosureName: Enclosure name.</li>\n<li>TicketEnclosureConditions: [Optional] Enclosure conditions.</li>\n<li>TypeOfPersonDefinitionTypeChild: [Optional] Indicates which attribute should be applied in order for the person to be considered a child. (1=age, 2=height)</li>\n<li>TypeOfPersonDefinitionValueChild: [Optional] Indicates the value assigned to the child type.</li>\n<li>TypeOfPersonDefinitionTypeAdult: [Optional] Indicates which attribute applies to the person to be considered a adult. (1=age, 2=height)</li>\n<li>TypeOfPersonDefinitionValueAdult: [Optional] Indicates the value assigned to the adult type.</li>\n<li>TypeOfPersonDefinitionTypeSenior: [Optional] Indicates which attribute applies to the person to be considered a senior. (1=age, 2=height)</li>\n<li>TypeOfPersonDefinitionValueSenior: [Optional] Indicates the value assigned to the senior type.</li>\n<li>Sessions. [Optional] It defines the relationship between sessions and content. Before proceeding, it is essential to study the [Sessions] section.<ul>\n<li>SessionContentProfileId: For more information about this identifier, see [Sessions] page.</li>\n<li>SessionGroupProfileId: For more information about this identifier, see [Sessions] page.</li>\n<li>SessionsGroupSessionContents: It defines the relationship between groups and contents for this product. In other words, all of the sessions of the session group will be assigned the session’s contents. SessionsGroupSessionContents is exclusive with regard to SessionSessionContents.<ul>\n<li>SessionsGroupId: The sessions' group identifier.</li>\n<li>SessionContentId: The session's content identifier.</li>\n</ul>\n</li>\n<li>SessionSessionContents: Defines the relationship between sessions and session contents for this product. SessionSessionContents is exclusive with regard to SessionsGroupSessionContents.<ul>\n<li>SessionId: Session identifier.</li>\n<li>SessionContentId: The session's content identifier.</li>\n<li>SessionTime: Date and time of the session.</li>\n<li>HasLimitedCapacity: Indicates if the session has capacity. Therefore, it is essential to consult session availability before creating a transaction. More information can be found in the item <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-38015558-758a-4ceb-b74a-06798fc38a01\">Get Avalable Capacity</a>.</li>\n</ul>\n</li>\n<li>TicketEnclosureAutoAssignSessionType: Indicates which attribute* is applied when choosing sessions. They can be self-assigned sessions by the system, eligible, or a mixture of the two cases. In the case of auto assigned sessions, you can check which sessions are going to be assigned before making the reservation using the AutoAssignSessions method.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>ProductBases: Array of ProductBases.<ul>\n<li>ProductBaseId: ProductBase identifier. Alphanumeric with 13 characters (e.g. \"htpdj798ek8ja\").</li>\n<li>ProductBaseName: Name of ProductBase.</li>\n<li>ProductBaseDescription: Description of ProductBase. Usually contains the conditions common to all of its products.</li>\n<li>DaysWithLimitedCapacity: Dates on which all products in this ProductBase have a limited capacity. Therefore, it is essential to consult ProductBase availability before creating a transaction. The dates will be in ISO 8601 format (yyyy-MM-dd), and will be separated by a comma. More information can be found in the item <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-38015558-758a-4ceb-b74a-06798fc38a01\">Get Avalable Capacity</a>.</li>\n<li>LimitOfNumberOfPeopleToBeGroup: [Optional] Same as LimitOfNumberOfPeopleToBeGroup in the provider node. If specified, the most restrictive between this value and that of the provider will be used.</li>\n<li>Products: Products array.<ul>\n<li>ProductId: The product's identifier code. Thirteen alphanumeric characters (e.g. \"ctgyir9m9q4bo\").</li>\n<li>ProductName: Name of product.</li>\n<li>SuggestedSalesProductName: Suggested product name for sales.</li>\n<li>ProductDescription: Description of product. Usually contains the product’s conditions.</li>\n<li>ProductInternalConsiderations: Product internal considerations that must be only known by the partner. NEVER show them to the customer.</li>\n<li>ProductCancellationConditions: Cancellation conditions for the product.</li>\n<li>CancellationPolicy: Describe the cancellation policies that apply when canceling a sale of this product. If this node is present, it overrides the CancellationPolicy node of the provider.<ul>\n<li>IsRefundable: Indicates if the customer can cancel for free at some point in time.</li>\n<li>Rules: Rules that apply when canceling.<ul>\n<li>HoursInAdvanceOfAccess: Indicates the number of hours in advance regarding the date of access from which the cancellation fee set in Percentage will be applied.</li>\n<li>Percentage: Percentage of the total product amount that won't be refunded in case of cancellation.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>StartIsActiveDate: [Optional] If exists, date from which it is possible to sell the product.</li>\n<li>EndIsActiveDate: [Optional] If exists, date until which it is possible to sell the product.</li>\n<li>DaysWithLimitedCapacity: Dates the product has a limited capacity. Therefore, it is essential to consult product availability before creating a transaction. The dates will be in ISO 8601 format (yyyy-MM-dd), and will be separated by a comma. More information can be found in the unit <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-38015558-758a-4ceb-b74a-06798fc38a01\">Get Avalable Capacity</a>.</li>\n<li>HoursInAdvanceOfPurchase: Hours in advance of purchase to 00:00 a.m. of the day following the visit. E.g. if a product has HoursInAdvanceOfPurchase = 4, and a customer makes a purchase for August 15th, the time limit for the product to be sold is 8:00 p.m. of August 15th itself (i.e. 4 hours before 00:00 of August 16th). This is important, for example, to ensure that a customer does not buy the products for a day when the business is closed.</li>\n<li>MaxHoursInAdvanceOfPurchase: [Optional] Maximum hours in advance of purchase to 00:00 a.m. of the day following the visit. E.g. if a product has MaxHoursInAdvanceOfPurchase = 240, and a customer makes a purchase for August 15th, the initial time for the product to be sold is August 6th (i.e. 240 hours = 10 days before 00:00 of August 16th). This parameter is optional and can be used to limit the period of sale in advance for a product.</li>\n<li>MinimumNumberByTransaction: Minimum quantity of products per transaction. The default is 1. E.g. a product of the type \"Entry ticket with discount starting from 3 products\". In that case, MinimumNumberByTransaction would be 3.</li>\n<li>NumberOfPeople: Number of people in order to consider a transaction as a \"group\". In other words, it calculates for \"LimitOfNumberOfPeopleToBeGroup\".</li>\n<li>NumberOfAdults: Number of adults included in \"NumberOfPeople\" field.</li>\n<li>NumberOfBabies: Number of babies include in \"NumberOfPeople\" field.</li>\n<li>NumberOfChildren: Number of children included in \"NumberOfPeople\" field.</li>\n<li>NumberOfSenior: Number of senior included in \"NumberOfPeople\" field.</li>\n<li>NumberOfGeneric: Number of generic (adult or children or senior) included in \"NumberOfPeople\". It's a useful field, for example, if a product applies either to adult or children or senior.</li>\n<li>RequiresRealTimePrice: Indicates whether the product requires real time price.</li>\n<li>ValidDays: Number of days in which the product is valid.</li>\n<li>ValidDaysType: 0 = consecutive. 1 = not consecutive.</li>\n<li>PriceMode: 1 = Retail Price. 2 = Net Price.</li>\n<li>Commission: In case of PriceMode = Retail Price, sets the commission.<ul>\n<li>Type: 1 = percentage. 2 = absolute value.</li>\n<li>Value: Value of the commission.</li>\n</ul>\n</li>\n<li>AccessDateCriteria: Sets the date access mode. It can take the following values **.</li>\n<li>BarcodeAssignment: [Optional] Indicates what the barcode is to be assigned to. Options:<ul>\n<li>1 = Ticket (default value)</li>\n<li>2 = Person</li>\n</ul>\n</li>\n<li>PricesAndDates: \"Price and dates” array. It has a dual functionality. On the one hand it defines the dates of tickets the provider has available, and on the other it defines the prices applicable to which dates.<ul>\n<li>Price: Selling price.</li>\n<li>Currency.</li>\n<li>CurrencyName: Name of the currency.</li>\n<li>Dates: Dates separated by commas. The dates will be in ISO 8601 format (yyyy-MM-dd), and will be separated by a comma.</li>\n<li>OriginalPrice: [Optional] Product price before discounts (if exists).</li>\n<li>TaxBreakdown: Tax breakdown array.<ul>\n<li>TaxPercentage.</li>\n<li>PriceWithoutTaxes.</li>\n<li>PriceWithTaxes.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Release: [Optional] Number of days in advance necessary so that the client can cancel the products without cost.</li>\n<li>SalesDocumentSettings: Access document settings (pdf, passbook). You can also take this info from the result to the Transaction API method. If the partner uses the documents generated after the transaction API method these settings won't be needed. If, otherwise, the partner issues its own documents these settings must be taken into account.<ul>\n<li>Disable: Indicates if the access document will be generated for this product.</li>\n<li>ShowPrice: Indicates whether the price should be shown in the access document.</li>\n<li>AccessDateCriteriaOpenDateSalesDocument: Just in case of AccessDateCriteria == 1 (Open Date). Indicates what does OpenDate means to the buyer.</li>\n</ul>\n</li>\n<li>Tickets: [Optional] Tickets array. In the event that the product does not work with tickets, this field will not exist.<ul>\n<li>TicketId: Ticket identifier. Thirteen alphanumeric characters (e.g. \"1tqgtrf7ctefc\").</li>\n<li>IsQuotaTicket: Indicates whether this ticket is of \"capacity” type. If it is of \"capacity” type, it calculates the maximum capacity of the product composing it. More information can be found in the unit <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-38015558-758a-4ceb-b74a-06798fc38a01\">Get Avalable Capacity</a>.</li>\n<li>TicketName: The ticket’s name.</li>\n<li>TicketConditions: [Optional] Ticket conditions.</li>\n<li>TicketEnclosureId: The Identifier of the enclosure to which the ticket belongs. Various tickets may belong to the same enclosure.</li>\n<li>FromAccessDay and ToAccessDay. When existing, they define the day from the first access date to which the ticket is valid. E.g.:<ul>\n<li>FromAccessDay = 1 and ToAccessDate = 1 : the client must use the first access day.</li>\n<li>FromAccessDay = 2 and ToAccessDate = 2 : the client must use the second access day.</li>\n<li>FromAccessDay = 1 and ToAccessDate = 2 : the client can use the first or the second access day until the end of the season.</li>\n<li>FromAccessDay = 2 and ToAccessDate = NotDefined : the client can use from the second access day.</li>\n<li>FromAccessDay = NotDefined and ToAccessDate = NotDefined : the client must use the first access day.<br />[NOTE: The result to the Transaction API method return the access date rango of each ticket. So ýou can decide not to use this properties (FromAccessDay/ToAccessDay) and use the result of the Transaction API method.]</li>\n</ul>\n</li>\n<li>TypeOfPerson: [Optional] Define the type of person and their numbering.<ul>\n<li>Type: 1 = Baby, 2 = Child, 3 = Adult, 4 = Senior, 5 = Generic.</li>\n<li>PersonNumber.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>ProductPaxGroupingId: [Optional] Product Pax Grouping identifier that the product belongs to.</li>\n</ul>\n</li>\n<li>ProductPaxGroupings.<ul>\n<li>ProductPaxGroupingId: Group identifier. Alphanumeric with 13 characters (for instance \"dtpdj29bek3ja\").</li>\n<li>ProductPaxGroupingName: Group name.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Urls: [Optional] Array of urls to access the provider's ticket office page.<ul>\n<li>LanguageCode: Code of the language with which it will be accessed. Represented using the ISO 639-1 format.</li>\n<li>Url: Access url.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>CombinedProducts: Array of combined products.<ul>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>Name: Combined product name.</li>\n<li>PriceFrom: Price \"from\" for the combined product.</li>\n<li>PriceTo: Price \"to\" for the combined product.</li>\n<li>Products: Array of products that are part of the combined product.<ul>\n<li>ProductId: Product identifier.</li>\n</ul>\n</li>\n<li>RequiresRealTimePrice: Requires price consultation in real time.</li>\n</ul>\n</li>\n<li>Success: Boolean logic (true/false) that indicates if the catalog completion it is correct or not.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage: Error message explaining why the catalog completion has not been correct. In the event that it is correct, it will return as null.</li>\n</ul>\n<p>(**)* Accepted values to the date access mode<br />An integer value must be used to define the date access mode, with one of the following possible values:</p>\n<ul>\n<li>Closed date. The ticket will be only valid the on specified date: 0.</li>\n<li>Open date. The ticket will be valid any day: 1. Only in this case we'll take care of AccessDateCriteriaOpenDateSalesDocument:<ul>\n<li>Hide access date: 1.</li>\n<li>Valid on season: 2.</li>\n<li>View conditions: 3.</li>\n<li>Ticket validity date range: 4.</li>\n</ul>\n</li>\n<li>Valid during the stay in the selected accomodation: 3</li>\n</ul>\n<p>(***)* Possible values ​​for the session self-assignment criterion<br />To define the session auto-assignment criteria, we use integer-type attributes, which can take the following values:</p>\n<ul>\n<li>No. Sessions will not auto-assign. They must be defined during the sales flow: 0.</li>\n<li>IfNotSet. The sessions will be auto-assigned, as long as it has not been defined during the sales flow: 1.</li>\n<li>ForceSet. The sessions will always be auto-assigned in a forced way, ignoring if they have been defined during the sales flow: 2.</li>\n</ul>\n","urlObject":{"query":[],"variable":[]}},"response":[],"_postman_id":"a3d2ee27-cc7d-4d0e-88ff-9a311f93868e"},{"name":"New Request","id":"5208ddb4-d33d-46bb-9a8e-09276d5713e6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"5208ddb4-d33d-46bb-9a8e-09276d5713e6"}],"id":"2c6b500e-dc05-4801-89e3-9375a25926ed","_postman_id":"2c6b500e-dc05-4801-89e3-9375a25926ed","description":""},{"name":"2.- Realtime prices","item":[{"name":"Realtime Prices","id":"7bb80775-81c9-4eab-8cf8-df2c326b42a6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"ProductIds\": null,\r\n  \"CombinedProducts\": [\r\n    {\r\n      \"CombinedProductId\": \"es63ikfaesu4e\",\r\n      \"Products\": [\r\n        {\r\n          \"ProductId\": \"3e4rqes88cniq\",\r\n          \"AccessDate\": \"2025-10-30T00:00:00\",\r\n          \"EndAccessDate\": null\r\n        },\r\n        {\r\n          \"ProductId\": \"qk5hzzuwnw844\",\r\n          \"AccessDate\": \"2025-10-01T00:00:00\",\r\n          \"EndAccessDate\": null\r\n        }\r\n      ]\r\n    }\r\n  ],\r\n  \"ReferenceDate\": null,\r\n  \"AccessDates\": null,\r\n  \"StartDate\": null,\r\n  \"EndDate\": null,\r\n  \"IncludeCommission\": false,\r\n  \"PartnerId\": \"tsanmqda1obue\",\r\n  \"AdminUserId\": null\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/RealTimePrices?api-version=3.60","description":"<p>For certain products, the vendor may require that the client work with real-time prices instead of those of the product catalog’s default price list. Therefore, the vendor will send the client a list of such products (by Email or any other means it deems convenient).</p>\n<p>We describe below how to work with real-time prices.</p>\n<p>This method allows us to consult the prices of one or several products, for one or several access dates.</p>\n<h2 id=\"why-are-we-talking-about-real-time\"><strong>Why are we talking about real time?</strong></h2>\n<p>The product’s price depends on several factors when one consults its price. For instance, the days remaining to the access date or season are two of the conditions that cause the price to vary.</p>\n<p>Therefore, we should make this call (consultation) whenever we wish to check the price of these products for a concrete date. In short, we can say that the price of a park entry ticket with access date set for one month from now, does not have to cost the same if one buys the ticket today or tomorrow.</p>\n<h2 id=\"request-data-structure\"><strong>Request data structure</strong></h2>\n<ul>\n<li>PartnerId: Partner identifier.</li>\n<li>ProductIds: Product IDs.</li>\n<li>AccessDates: The entry dates we wish to consult. ISO 8601 format (yyyy-MM-dd).</li>\n<li>StartDate: Start of input date range that we want to query (Complements AccessDates and needs EndDate). ISO 8601 format (yyyy-MM-dd).</li>\n<li>EndDate: End of input date range that we want to query (Complements AccessDates and needs StartDate). ISO 8601 format (yyyy-MM-dd).</li>\n<li>CombinedProducts: Combined products array.<ul>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>Products: Array of products included in the combined product.<ul>\n<li>ProductId: Product identifier.</li>\n<li>AccessDate: Access date. ISO 8601 format (yyyy-MM-dd).</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"response-data-structure\"><strong>Response data structure</strong></h2>\n<ul>\n<li>ProductsRealTimePrices: Price array in real time.<ul>\n<li>ProductId: Product identifier.</li>\n<li>AccessDate: Access date. ISO 8601 format (yyyy-MM-dd).</li>\n<li>Price: It shows what the product’s price should be.</li>\n<li>PriceMode: 1 = RRP, 2 = Net Price.</li>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>CombinedProductProducts: Array of products included in the combined product.<ul>\n<li>ProductId: Product identifier.</li>\n<li>AccessDate: Access date. ISO 8601 format (yyyy-MM-dd).</li>\n</ul>\n</li>\n<li>Success: Boolean (true/false) which shows if the price obtained for this product is correct.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage: An error message that explains why the price obtained for this product is not correct. The field will not appear if the price is correct.</li>\n</ul>\n</li>\n<li>Success. Boolean (true/false) which shows if the prices obtained are correct.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage. An error message that explains why the prices obtained are not correct. The field will not appear if the price is correct.</li>\n</ul>\n","urlObject":{"path":["RealTimePrices"],"host":["{{baseUrl}}"],"query":[{"disabled":true,"key":"ProductIds","value":"qk5hzzuwnw844"},{"disabled":true,"key":"StartDates","value":"2025-10-25"},{"disabled":true,"key":"EndDates","value":"2025-10-30"},{"key":"api-version","value":"3.60"}],"variable":[]}},"response":[{"id":"daf141fe-4242-4de7-b9be-184474747371","name":"Doc example","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/RealTimePrices?PartnerId={{PartnerId}}&ProductIds={{productId1}}&AccessDates=2017-12-11&AccessDates=2017-12-12","host":["{{baseUrl}}"],"path":["RealTimePrices"],"query":[{"key":"PartnerId","value":"{{PartnerId}}"},{"key":"ProductIds","value":"{{productId1}}"},{"key":"AccessDates","value":"2017-12-11"},{"key":"AccessDates","value":"2017-12-12"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"name":"Cache-Control","key":"Cache-Control","value":"no-cache","description":""},{"name":"Content-Length","key":"Content-Length","value":"35","description":""},{"name":"Content-Type","key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"name":"Date","key":"Date","value":"Mon, 12 Jun 2017 12:10:58 GMT","description":""},{"name":"Expires","key":"Expires","value":"-1","description":""},{"name":"Pragma","key":"Pragma","value":"no-cache","description":""},{"name":"Server","key":"Server","value":"Microsoft-IIS/10.0","description":""},{"name":"X-AspNet-Version","key":"X-AspNet-Version","value":"4.0.30319","description":""},{"name":"X-Powered-By","key":"X-Powered-By","value":"ASP.NET","description":""},{"name":"X-SourceFiles","key":"X-SourceFiles","value":"=?UTF-8?B?QzpcUHJvamVjdHNcUmVwb3NpdG9yaWVzXEdpdFx0aXhhbGlhLnYyXEFwcHNcQXBpXEFwaVxhcGlcUmVhbFRpbWVQcmljZXM=?=","description":""}],"cookie":[],"responseTime":"88","body":"{\r\n    \"ProductsRealTimePrices\": [\r\n        {\r\n            \"ProductId\": \"MyProductId1\",\r\n            \"Date\": \"MyProductDate1\",\r\n            \"RetailPrice\": 29\r\n        },\r\n        {\r\n            \"ProductId\": \"MyProductId1\",\r\n            \"Date\": \"MyProductDate2\",\r\n            \"RetailPrice\": 35\r\n        },\r\n        {\r\n            \"ProductId\": \"MyProductId2\",\r\n            \"Date\": \"MyProductDate1\",\r\n            \"RetailPrice\": 18\r\n        },\r\n        {\r\n            \"ProductId\": \"MyProductId2\",\r\n            \"Date\": \"MyProductDate2\",\r\n            \"RetailPrice\": 22\r\n        }\r\n    ],\r\n    \"Success\": true\r\n}"}],"_postman_id":"7bb80775-81c9-4eab-8cf8-df2c326b42a6"}],"id":"94c796fc-0621-48df-85f4-34cc95be6a68","_postman_id":"94c796fc-0621-48df-85f4-34cc95be6a68","description":""},{"name":"3.- Last catalog update date","item":[{"name":"LastUpdatedDate Basic","id":"3cb302d6-7b3e-4c6c-b02f-a2d2cd4f2c49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{baseUrl}}/cataloglastupdateddatetime?PartnerId={{PartnerId}}","description":"<p>The products catalog is fully dynamic and subject to change. To easily detect changes in the products catalog we have the \"CatalogLastUpdatedDateTime\" method, which will return the date on which the products catalog was last changed.</p>\n<p>This makes it easier for one to learn, if the catalog has suffered changes since it was last consulted.</p>\n<p>The method is very simple, with just one call made to an ulr, returning the date the catalog was last changed.</p>\n<h2 id=\"response-data-structure\">Response data structure</h2>\n<ul>\n<li>LastUpdatedDateTime: Date of last catalog change in ISO8601 format.</li>\n<li>Success: Boolean logic (true/false) that indicates if the catalog completion it is correct or not.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage: Error message explaining why the catalog acquisition is not correct. In the event that it is correct, it will return as null.</li>\n</ul>\n","urlObject":{"path":["cataloglastupdateddatetime"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"}],"variable":[]}},"response":[{"id":"4c4c3e23-7249-4a0b-bd33-e310edafcc9a","name":"Doc example","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/cataloglastupdateddatetime?PartnerId={{PartnerId}}","host":["{{baseUrl}}"],"path":["cataloglastupdateddatetime"],"query":[{"key":"PartnerId","value":"{{PartnerId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\r\n    \"LastUpdatedDateTime\": \"2001-08-15T14:23:44\",\r\n    \"Success\": true,\r\n    \"ErrorMessage\": null\r\n}"}],"_postman_id":"3cb302d6-7b3e-4c6c-b02f-a2d2cd4f2c49"}],"id":"2cc66989-3c38-4ce2-ba9d-d14b0689b00a","_postman_id":"2cc66989-3c38-4ce2-ba9d-d14b0689b00a","description":""},{"name":"4.- Avaliable capacity","item":[{"name":"AvailableCapacity Basic","id":"38015558-758a-4ceb-b74a-06798fc38a01","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{baseUrl}}/availablecapacity?PartnerId={{PartnerId}}&ProductIds={{productId1}}&FromDate=2025-06-10&ToDate=2025-07-01","description":"<p>As seen in <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-0795eea6-4ec0-4768-b959-7d251703c1c4\">Get catalog</a>, the ProductBases as well as the Products have the \"DaysWithLimitedCapacity” property; just as the Sessions have the “HasLimitedCapacity” property. In fact, following the example, we see that:</p>\n<ul>\n<li>The ProductBase \"gfo753rgjfbw6\" has set 1 November 2001 as the date one should check its availability.</li>\n<li>Product \"htgy4tgm9q21n\" has set 15 August and 17 April of 2001 as the dates one should check its availability.</li>\n<li>Product \"q2oghu9mye7h2\" has two sessions, both with HasLimitedCapacity = true, thus making it necessary to check its availability.</li>\n</ul>\n<h2 id=\"several-clarification-points\">Several clarification points</h2>\n<ul>\n<li>For the defined days, we must check the available capacity of the ProductBase and/or Product before offering the product to the customer. If we create a transaction and full capacity has been exceeded, the transaction will return an error. Similarly, for each session with limited capacity we must consult their availability before offering the product to the customer. If we create a transaction and full capacity has been exceeded, the transaction will return an error.</li>\n<li>If the \"DaysWithLimitedCapacity” field is empty it means you don't have to check availability for any date.</li>\n<li>The capacity pertains to the capacity-type tickets (IsQuotaTicket == true).<ul>\n<li>The product’s capacity is the amount of capacity-type tickets that can be sold for that product. Following our example, we see that Product \"htgy4tgm9q21n\" is composed of three capacity-type tickets. Thus, if product capacity were of 9, we could only sell 3 products. And if the capacity were of 16, we could only sell 5 products.</li>\n<li>The ProductBase capacity is the amount of capacity-type tickets that can be sold from the sum of all ProductBase products. Following our example, we see that ProductBase \"gfo753rgjfbw6\" is composed of one product (\"ctgyir9m9q4bo\") with a capacity-type ticket and another product (\"htgy4tgm9q21n\") with three capacity-type tickets. As such, if the ProductBase capacity were of 21, we could sell combinations, such as:<ul>\n<li>21 products of \"ctgyir9m9q4bo\" (21 x 1 = 21)</li>\n<li>7 products of \"htgy4tgm9q21n\" (7 x 3 = 21)</li>\n<li>6 products of \"ctgyir9m9q4bo\" and 5 of \"htgy4tgm9q21n\" (6 x 1 + 5 x 3 = 21)</li>\n<li>15 products of \"ctgyir9m9q4bo\" and 3 of \"htgy4tgm9q21n\" (15 x 1 + 3 x 3 = 21)</li>\n<li>And any other combination we can think of.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"request-data-structure\">Request data structure</h2>\n<ul>\n<li>PartnerId: Partner identifier.</li>\n<li>ProductBaseIds: Category identifiers to filter by.</li>\n<li>ProductIds: Product identifiers to filter by.</li>\n<li>SessionIds: Session identifiers to filter by.</li>\n<li>Dates: The entry dates we wish to consult. ISO 8601 format (yyyy-MM-dd).</li>\n<li>FromDate: Start of input date range that we want to query (Complements Dates and needs ToDate). ISO 8601 format (yyyy-MM-dd).</li>\n<li>ToDate: End of input date range that we want to query (Complements Dates and needs FromDate). ISO 8601 format (yyyy-MM-dd).</li>\n</ul>\n","urlObject":{"path":["availablecapacity"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"},{"disabled":true,"description":{"content":"<p>Category identifiers to filter by.</p>\n","type":"text/plain"},"key":"ProductBaseIds","value":""},{"description":{"content":"<p>Product identifiers to filter by.</p>\n","type":"text/plain"},"key":"ProductIds","value":"{{productId1}}"},{"disabled":true,"description":{"content":"<p>Session identifiers to filter by.</p>\n","type":"text/plain"},"key":"SessionIds","value":"{{sessionId1}}"},{"disabled":true,"description":{"content":"<p>The entry dates we wish to consult.</p>\n","type":"text/plain"},"key":"Dates","value":null},{"description":{"content":"<p>Start of input date range that we want to query.</p>\n","type":"text/plain"},"key":"FromDate","value":"2025-06-10"},{"description":{"content":"<p>End of input date range that we want to query.</p>\n","type":"text/plain"},"key":"ToDate","value":"2025-07-01"}],"variable":[]}},"response":[{"id":"b7c999e1-c7af-4295-be44-a40b418b09c3","name":"AvailableCapacity Basic","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/availablecapacity?PartnerId={{PartnerId}}&ProductBaseIds=&ProductIds=&SessionIds={{sessionId1}}","host":["{{baseUrl}}"],"path":["availablecapacity"],"query":[{"key":"PartnerId","value":"{{PartnerId}}"},{"key":"ProductBaseIds","value":""},{"key":"ProductIds","value":""},{"key":"SessionIds","value":"{{sessionId1}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"no-cache","name":"Cache-Control","description":"Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"},{"key":"Content-Encoding","value":"gzip","name":"Content-Encoding","description":"The type of encoding used on the data."},{"key":"Content-Length","value":"235","name":"Content-Length","description":"The length of the response body in octets (8-bit bytes)"},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":"The mime type of this content"},{"key":"Date","value":"Tue, 13 Mar 2018 14:27:55 GMT","name":"Date","description":"The date and time that the message was sent"},{"key":"Expires","value":"-1","name":"Expires","description":"Gives the date/time after which the response is considered stale"},{"key":"Pragma","value":"no-cache","name":"Pragma","description":"Implementation-specific headers that may have various effects anywhere along the request-response chain."},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":"A name for the server"},{"key":"Vary","value":"Accept-Encoding","name":"Vary","description":"Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server."},{"key":"X-AspNet-Version","value":"4.0.30319","name":"X-AspNet-Version","description":"Custom header"},{"key":"X-Powered-By","value":"ASP.NET","name":"X-Powered-By","description":"Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)"}],"cookie":[{"expires":"Tue Jan 19 2038 03:14:07 GMT+0000 (Coordinated Universal Time)","httpOnly":true,"domain":"test-api-tixalia.azurewebsites.net","path":"/","secure":false,"value":"bde20717d928cec5deda4e4c4db9740814d12dc65e5781378268bbf27bcc7ab9","key":"ARRAffinity"}],"responseTime":null,"body":"{\"ProductBases\":[],\"Products\":[],\"Sessions\":[{\"SessionId\":\"awb4sk8adhuan\",\"Date\":\"2018-11-08T10:00:00.0000000\",\"AvailableCapacity\":20000}],\"Success\":true}"}],"_postman_id":"38015558-758a-4ceb-b74a-06798fc38a01"}],"id":"e6a51619-a52c-4c74-ad1f-5f3a8130e334","_postman_id":"e6a51619-a52c-4c74-ad1f-5f3a8130e334","description":""},{"name":"5.- Reservations","item":[{"name":"Reserve","event":[{"listen":"prerequest","script":{"id":"99086b88-54c1-4dda-8bf4-c20722c98fed","exec":[""],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"test","script":{"id":"d21d1178-c725-4e02-ad4f-a78a551e4307","exec":["var jsonData = pm.response.json();","","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","tests[\"Response has Reservation id\"] = responseBody.has(\"ReservationId\");","","postman.setEnvironmentVariable('reservationId', jsonData.ReservationId);",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"d45003c1-1a13-4e12-a362-7462d93c2cbf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"ApiKey\": \"j06NcogYQe4Z+flhu31SBLKwG7V+M8pTFVjNdzbq7Wv0EvPlVLJrfukhsW3TJyE9eJVqWMhL+iCjv9faZ7vLxlRB1GMXt95iULR6rO6TBmE=\",\r\n  \"IsTest\": false,\r\n  \"AccessDateTime\": \"2026-04-02\",\r\n  \"Products\": [\r\n    {\r\n      \"ProductId\": \"cqm358muis4p4\",\r\n      \"Quantity\": 700\r\n    }\r\n  ],\r\n  \"ReturnPaymentMethods\": true\r\n}"},"url":"{{baseUrl}}/reservation","description":"<p>This is the first step to create a transaction. A reservation must be made before executing the transaction, otherwise the transaction cannot be made.</p>\n<p>In concept, to reserve products means that we need to send an access date and a list of products, and Tixalia returns it if making the reservation is possible, and if it is, it then returns a reservation identifier and when it will expire.</p>\n<p>In addition to reserving the products, the reservation also reserves the price. Therefore, should the price change after making the reservation, it will not contemplate this change; the same price that was charged when the reservation was made will be kept.</p>\n<h2 id=\"request-data-structure\">Request data structure</h2>\n<ul>\n<li>ApiKey: unique and private to the partner. It is very important to keep this key secret. The ApiKey can be obtained from the administration panel.</li>\n<li>IsTest: if it indicates true, no actual action is performed in any of the API methods. It will serve, for instance, to test HTTP connections or data structures.</li>\n<li>AccessDateTime: Access date.</li>\n<li>AccessEndDateTime: End of the access date range. Required when the reserve contains products of type \"Valid during the stay in the selected accomodation\" (AccessDateCriteria = 3). The typical case are products for packaging with hotel. AccessDateTime set the date of entry to the hotel and AccessEndDateTime set the date of departure of the hotel.</li>\n<li>LanguageCode: Defines the language in which the reservation texts will be displayed, if any (for example, the names of the sessions). Possible values: es, en, fr, it.</li>\n<li>Products: Products array:<ul>\n<li>ProductId: The product’s identifier.</li>\n<li>CombinedProductId: [Optional] Combined product identifier.</li>\n<li>Quantity. The number of products to reserve.</li>\n<li>AccessDateTime: Access date.</li>\n<li>Tickets: Tickets array. It is optional. If the ticket has no sessions or access dates, then sending this field is unnecessary.<ul>\n<li>TicketId: Ticket identifier.</li>\n<li>SessionId: Session identifier.</li>\n<li>SessionContentName: [Opcional] Session content name.</li>\n<li>SessionTime: [Optional] Session time.</li>\n<li>AccessDateTime: Access date. It is essential that one reads <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-b4eae57b-8200-430b-80eb-4960d0323125\">Advanced date selector</a> to know if it is optional.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"response-data-structure\">Response data structure</h2>\n<p>In response to the call, in addition to this method, a very similar structure to that of sending will be developed, but adding some new fields.</p>\n<ul>\n<li>ReservationId: Reservation identifier. It will be employed, subsequently, to create a transaction, or to cancel the reservation.</li>\n<li>MinutesToExpiry: It defines the time in minutes, in which the products are guaranteed to be reserved (blocked). The time starts to count from the moment before the reservation is requested. If this parameter is not issued, or it is empty, it means the time they stay blocked is indefinite.</li>\n<li>AccessDateTime.</li>\n<li>AccessEndDateTime.</li>\n<li>TotalPrice: Indicates the total price (sum of all the price of the tickets that make up the sale).</li>\n<li>Products.<ul>\n<li>ProductId.</li>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>CombinedProductDiscriminator: Indicates which combined product it belongs to within the CombinedProducts array.</li>\n<li>Quantity.</li>\n<li>Price: It shows what the product’s Retail Price SHOULD be. This is a very important point; as the transaction is created, this is the Retail Price the system will use. Remember that we are talking about unit price. For the total price calculation, you also have to use the Quantity field.</li>\n<li>PriceMode: 1 = RRP, 2 = Net Price</li>\n<li>AccessDateTime: Access date.</li>\n<li>AccessEndDateTime: End of access date range.</li>\n<li>CancellationConditions: Describe the cancellation policies that apply when canceling a sale of this product.<ul>\n<li>IsRefundable: Indicates if the customer can cancel for free at some point in time.</li>\n<li>Rules: Rules that apply when canceling.<ul>\n<li>HoursInAdvanceOfAccess: Indicates the number of hours in advance regarding the date of access from which the cancellation fee set in Amount will be applied.</li>\n<li>FromInclusiveDateTime: Starting date from which the cancellation fee will be applied (included).</li>\n<li>ToExclusiveDateTime: End date until when the cancellation fee will be applied (excluded).</li>\n<li>Percentage: Percentage of the total product amount that won't be refunded in case of cancellation.</li>\n<li>Amount: Total amount to be charged in case of cancellation.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Tickets.<ul>\n<li>TicketId.</li>\n<li>SessionId.</li>\n<li>AccessDateTime.</li>\n</ul>\n</li>\n<li>Success: It shows if this product reservation could be made successfully.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage.</li>\n</ul>\n</li>\n<li>CombinedProducts: Array of combined products, it will appear only in the event that any product in the reservation is part of a combined product.<ul>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>CombinedProductDiscriminator: Relationship between product (array of Products) and combined product.</li>\n<li>Price: Combined product price.</li>\n<li>CancellationConditions: Describe the cancellation policies that apply when canceling a sale of this product.<ul>\n<li>IsRefundable: Indicates if the customer can cancel for free at some point in time.</li>\n<li>Rules: Rules that apply when canceling.<ul>\n<li>HoursInAdvanceOfAccess: Indicates the number of hours in advance regarding the date of access from which the cancellation fee set in Amount will be applied.</li>\n<li>FromInclusiveDateTime: Starting date from which the cancellation fee will be applied (included).</li>\n<li>ToExclusiveDateTime: End date until when the cancellation fee will be applied (excluded).</li>\n<li>Percentage: Percentage of the total product amount that won't be refunded in case of cancellation.</li>\n<li>Amount: Total amount to be charged in case of cancellation.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Success: It shows all products could have been successfully reserved.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage</li>\n</ul>\n<blockquote>\n<p><strong>IMPORTANT NOTE:</strong> For a reservation to be considered correct, all products should have been possible to reserve.</p>\n</blockquote>\n","urlObject":{"path":["reservation"],"host":["{{baseUrl}}"],"query":[{"disabled":true,"key":"","value":null}],"variable":[]}},"response":[{"id":"75eb84b7-4469-4bec-ad7d-273846b8433c","name":"Doc example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ApiKey\": \"{{ApiKey}}\",\n  \"AccessDateTime\": \"2017-08-08\",\n  \"IsTest\": \"false\",\n  \"Products\": [\n    {\n      \"ProductId\" : \"{{productId1}}\",\n      \"Quantity\" : 1\n    }\n    ]\n}"},"url":"{{baseUrl}}/reservation"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\n    \"ReservationId\": \"zp83haxd5ucwn\",\n    \"MinutesToExpiry\": 20,\n    \"AccessDateTime\": \"2017-04-04T00:00:00\",\n    \"TotalRetailPrice\": 54.00,\n    \"Products\": [\n        {\n            \"ProductId\": \"4hfspe75or5ie\",\n            \"Quantity\": 2,\n            \"Success\": true,\n            \"RetailPrice\": 27.00\n            }\n    ],\n    \"Success\": true,\n    \"ErrorMessage\": \"\"\n}"}],"_postman_id":"d45003c1-1a13-4e12-a362-7462d93c2cbf"},{"name":"Cancel reservation","id":"d01679d1-03f6-4078-a75b-f11e99cd6b25","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"ApiKey\": \"{{ApiKey}}\",\n  \"ReservationId\": \"{{reservationId}}\"\n}"},"url":"{{baseUrl}}/reservation","description":"<p>When it is noted that a reservation will not be converted into a transaction, it should be canceled.</p>\n<h2 id=\"request-data-structure\">Request data structure</h2>\n<ul>\n<li>ApiKey: Unique and private to the partner. It is very important to keep this key secret. The ApiKey can be obtained from the admin panel.</li>\n<li>IsTest: If it indicates true, no actual action is performed in any of the API methods. It will serve, for instance, to test HTTP connections or data structures.</li>\n<li>ReservationId: Reservation identifier.</li>\n</ul>\n<h2 id=\"response-data-structure\">Response data structure</h2>\n<ul>\n<li>Success. It shows if the reservation could have been correctly canceled.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage.</li>\n</ul>\n","urlObject":{"path":["reservation"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"15fe76ef-3ead-427c-9482-03caa566861b","name":"Doc example","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"ApiKey\": \"{{ApiKey}}\",\n\t\"ReservationId\": \"tdqcty47k6b4q\"\n}"},"url":"{{baseUrl}}/reservation"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\r\n    \"Success\": true\r\n}"}],"_postman_id":"d01679d1-03f6-4078-a75b-f11e99cd6b25"}],"id":"75805aaa-98b6-4a21-a46d-28861d288e33","_postman_id":"75805aaa-98b6-4a21-a46d-28861d288e33","description":""},{"name":"6.- Payment methods","item":[{"name":"PaymentMethods General","id":"c1557914-f67a-430e-aedd-17ec13a5c752","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{baseUrl}}/paymentmethods?PartnerId={{PartnerId}}&ReservationId={{reservationId}}","description":"<p>This is the second step that must be made by any partner that uses debit payment to create a transaction.</p>\n<p>The available payment methods for the reservation can be obtained from Products reservation. The selected method will be used later to create the transaction with the call to creating a transaction.</p>\n","urlObject":{"path":["paymentmethods"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Partner identifier.</p>\n","type":"text/plain"},"key":"PartnerId","value":"{{PartnerId}}"},{"description":{"content":"<p>Reservation identifier.</p>\n","type":"text/plain"},"key":"ReservationId","value":"{{reservationId}}"}],"variable":[]}},"response":[{"id":"34725fdc-b621-43d2-9bb5-88c38b0831b2","name":"PaymentMethods.General","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{baseUrl}}/paymentmethods?PartnerId={{PartnerId}}&ReservationId={{reservationId1}}","host":["{{baseUrl}}"],"path":["paymentmethods"],"query":[{"key":"PartnerId","value":"{{PartnerId}}"},{"key":"ReservationId","value":"{{reservationId1}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"no-cache","name":"Cache-Control","description":"Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"},{"key":"Content-Encoding","value":"gzip","name":"Content-Encoding","description":"The type of encoding used on the data."},{"key":"Content-Length","value":"200","name":"Content-Length","description":"The length of the response body in octets (8-bit bytes)"},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":"The mime type of this content"},{"key":"Date","value":"Thu, 22 Mar 2018 16:55:44 GMT","name":"Date","description":"The date and time that the message was sent"},{"key":"Expires","value":"-1","name":"Expires","description":"Gives the date/time after which the response is considered stale"},{"key":"Pragma","value":"no-cache","name":"Pragma","description":"Implementation-specific headers that may have various effects anywhere along the request-response chain."},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":"A name for the server"},{"key":"Vary","value":"Accept-Encoding","name":"Vary","description":"Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server."},{"key":"X-AspNet-Version","value":"4.0.30319","name":"X-AspNet-Version","description":"Custom header"},{"key":"X-Powered-By","value":"ASP.NET","name":"X-Powered-By","description":"Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)"}],"cookie":[{"expires":"Tue Jan 19 2038 03:14:07 GMT+0000 (Coordinated Universal Time)","httpOnly":true,"domain":"test-api-tixalia.azurewebsites.net","path":"/","secure":false,"value":"bde20717d928cec5deda4e4c4db9740814d12dc65e5781378268bbf27bcc7ab9","key":"ARRAffinity"}],"responseTime":null,"body":"{\"PaymentMethods\":[{\"Type\":1,\"Name\":\"Tarjeta bancaria\"},{\"Type\":3,\"Name\":\"Paypal\"}],\"Success\":true}"}],"_postman_id":"c1557914-f67a-430e-aedd-17ec13a5c752"}],"id":"fa933e0b-0003-468d-9c84-27caa13e3081","event":[{"listen":"prerequest","script":{"id":"eaae87d6-6f93-4a20-9957-a535f9b0fa5b","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"28845b5b-8de2-4371-906d-0c7297cc035f","type":"text/javascript","exec":[""]}}],"_postman_id":"fa933e0b-0003-468d-9c84-27caa13e3081","description":""},{"name":"7.- Transactions","item":[{"name":"Create","id":"7a166e14-87cd-4568-8d66-e2d761f106a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ApiKey\": \"{{ApiKey}}\",\n    \"ReservationId\": \"{{ReservationId}}\",\n    \"AccessDateTime\": \"{{AccessDateTime}}\",\n    \"Products\": [\n        {\n            \"ProductId\": \"{{productId1}}\",\n            \"AccessDateTime\": \"{{AccessDateTime}}\",\n            \"Tickets\": [\n                {\n                    \"TicketId\": \"e3457mpdohpp6\",\n                    \"AccessCode\": \"TEST_ACCESS_CODE_RAUL\",\n                    \"SharedAccessCodeDiscriminator\": 1,\n                    \"AccessDateTime\": \"{{AccessDateTime}}\",\n                    \"Client\": {\n                        \"BirthDate\": \"1986-12-16\",\n                        \"Fullname\": \"Fullname\",\n                        \"Surname\": \"Surname\",\n                        \"Surname2\": \"Surname2\",\n                        \"Address\": \"Address\",\n                        \"PhoneNumber\": \"699999999\",\n                        \"Email\": \"rdiaz@experticket.com\"\n                        //\"PhotoUrl\": \"\"\n                    }\n                }\n            ]\n        }\n    ],\n    \"Client\": { \n        \"FullName\": \"Nombre Cliente\", \n        \"Surname\": \"Apellido Cliente\",\n        \"Email\": \"rdiaz@experticket.com\"\n    }\n}"},"url":"{{baseUrl}}/transaction?api-version=3.61","description":"<p>In this step, the partner will be able to create the transaction with the reservation id obtained when calling to Products reservation, and -in case of debit partners- the payment method selected from the list obtained when calling to Payment methods.</p>\n<p>Besides, this call will also return information about dates and products. Further information about tickets, dates and sessions will be included when needed, as well.</p>\n<blockquote>\n<p><strong>Important:</strong> Please note that the reservation id, and -in case of debit partners- the payment method are mandatory to complete the transaction successfully.</p>\n</blockquote>\n<p>The restrictions that stand out the most are the following:</p>\n<ul>\n<li>Each transaction will be comprised of products from a single provider.</li>\n<li>Only one transaction can be sent at a time. We avoid creating multiple transactions in a single call in order to encourage transactions to be sent in real time, instead of a transactions bundle every X minutes.</li>\n<li>If the vendor is not for groups (IsForGroups == false), which is the commonest case, LimitOfNumberOfAccessTicketsToBeGroup must be respected. For example, if this value is of 19, transactions of 20 or more access-type tickets will not be accepted.</li>\n</ul>\n<h2 id=\"request-data-structure\">Request data structure</h2>\n<ul>\n<li>ApiKey: Unique and private to the partner. It is very important to keep this key secret. The ApiKey can be obtained from the admin panel.</li>\n<li>IsTest: If it indicates true, no actual action is performed in any of the API methods. It will serve, for instance, to test HTTP connections or data structures.</li>\n<li>ReservationId: We should include this parameter if a reservation has been made prior to the transaction. Otherwise, it is unnecessary to include it.</li>\n<li>AccessDateTime: Access date to the enclosure.</li>\n<li>AccessEndDateTime: End of the access date range. Required when the transaction contains products of type \"Valid during the stay in the selected accomodation\" (AccessDateCriteria = 3). The typical case are products for packaging with hotel: AccessDateTime set the date of entry to the hotel and AccessEndDateTime set the date of departure of the hotel.</li>\n<li>LanguageCode: Defines the language in which the transaction texts will be displayed, if any (for example, the names of the sessions). By default, the language configured for the provider will be returned. Possible values: es,en,fr,it.</li>\n<li>PartnerSaleId: [Optional] Internal sale identifier asigned by the partner.</li>\n<li>Products: Products array.<ul>\n<li>ProductId: The product’s identifier.</li>\n<li>CombinedProductId: [Optional] Combined product identifier.</li>\n<li>Tickets: Tickets array. It will only have to inform the tickets if the access dates differ from the access date in the transaction.<ul>\n<li>TicketId: Ticket identifier.</li>\n<li>SessionId: A session identifier (this field is optional, and unnecessary if the product has no sessions).</li>\n<li>AccessDateTime: Access date. It is essential that one reads <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-b4eae57b-8200-430b-80eb-4960d0323125\">Advanced date selector</a>.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Client. [Optional]<ul>\n<li>FullName: The client’s name. If we decide to forward the Client, then this field is mandatory.</li>\n<li>Surname: The client’s last name(s). If we decide to forward the Client, then this field is mandatory.</li>\n<li>Email: Client email.</li>\n<li>DocumentIdentifier: DNI or NIF (Spanish national ID or Tax ID number).</li>\n<li>PhoneNumber: Telephone number.</li>\n<li>ZipCode: Postal code or postcode.</li>\n<li>CountryCode: Alpha-2 code of the country, according to <a href=\"https://www.iban.com/country-codes\">ISO 3166</a>.</li>\n<li>LanguageCode: Two-letter code, according to <a href=\"https://es.wikipedia.org/wiki/ISO_639-1\">ISO 639-1</a>.</li>\n</ul>\n</li>\n<li>PointOfSale: [Optional] Each partner can define different points of sales. Each one of them represents different selling points that belong to the given partner. The point of sale could have been set up beforehand or can be created dinamically. If already existing, the call shall include the PointOfSale Id. If not, the partner will provide a Custom Code and, optionally, a Name and a Description for the point of sale. A new point of sale will be created in this latter case with the given data, and the Id of that newly created point of sale will be returned if the transaction success.<ul>\n<li>Id: Id of an existing point of sale. If a point of sale with the provided Id does not exist, the transaction will fail.</li>\n<li>CustomCode: [alphanumeric] Partner's code to be used when a point of sale does not exist and must be dynamically created. If a custom code is used, a point of sale will be created upon success, and a new Id will be assigned to it. This Id will be returned in the response. It is recommended to use this new Id in subsequent calls from the same point of sale, to uniquely identify the point of sale and its sales. Using the same custom code will have the same effect, though, but the partner will be responsible to keep them consistent and unique. If an Id is also specified, it will be used instead of the Custom Code.</li>\n<li>Name: Name of the dynamically created point of sale (in case a Custom Code is provided to create one). If a point of sale with the given custom code already exists, it will be used and the Name will not be overriden.</li>\n<li>Description: Description of the dynamically created point of sale (in case a custom code is provided to create one). If a point of sale with the given Custom Code already exists, it will be used and the Description will not be overriden.</li>\n</ul>\n</li>\n<li>TravelInfo: [Optional] Travel information.<ul>\n<li>StartDate: [Optional] Travel start date.</li>\n<li>EndDate: [Optional] Travel end date.</li>\n<li>TravelersCount: [Optional] Number of travelers.</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"response-data-structure\">Response data structure</h2>\n<p>In response to the call, in addition to this method, a very similar structure to that of sending will be developed, but adding some new fields.</p>\n<p>We move on to define the structure. We only describe the new fields; the others will be repeated and will return the same value as the one sent.</p>\n<ul>\n<li>SaleId: Sale identifier. It works as a sale-to-sale map between client and server. Up to 100 characters.</li>\n<li>PaymentStatus: Possible values are:<ul>\n<li>1: Not cashed</li>\n<li>2: Partially cashed</li>\n<li>3: Cashed</li>\n<li>4: Refunded</li>\n<li>5: Refund pending</li>\n</ul>\n</li>\n<li>AccessDateTime.</li>\n<li>AccessEndDateTime.</li>\n<li>PartnerSaleId.</li>\n<li>TaxBreakdown: Tax breakdown array.<ul>\n<li>TaxPercentage: Tax percentage (out of 100).</li>\n<li>PriceWithoutTaxes: Price without taxes.</li>\n<li>PriceWithTaxes: Price with taxes.</li>\n</ul>\n</li>\n<li>TransactionDateTime: Official date and time the API released the transaction.</li>\n<li>PointOfSaleId: If a point of sale is included in the request, it will return its Id. If the point of sale has been dynamically created by using a Custom Code, the Id of the new point of sale will be returned. It is recommended to use this Id for that point of sale from this point in time on.</li>\n<li>PointOfSaleCustomCode: If the point of sale has been dynamically created with a Custom Code, the Custom Code used will be included in this parameter of the response body.</li>\n<li>Documents: Array of the sales documents associated with the transaction.<ul>\n<li>SalesDocumentUrl: public URL to obtain the document.</li>\n</ul>\n</li>\n<li>Products.<ul>\n<li>ProductId.</li>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>CombinedProductDiscriminator: Indicates which combined product it belongs to within the CombinedProducts array.</li>\n<li>AccessCode.</li>\n<li>ProviderId: Provider identifier.</li>\n<li>ProviderType: Provider type. Options:<ul>\n<li>0: Activity</li>\n<li>1: Accomodation</li>\n<li>2: Transport</li>\n</ul>\n</li>\n<li>Price: Indicates the price the product has been sold at.</li>\n<li>PriceMode: 1 = RRP, 2 = Net Price</li>\n<li>Status:<ul>\n<li>1 = Initiated</li>\n<li>2 = Confirmed</li>\n<li>4 = Cancelled</li>\n<li>7 = In process</li>\n</ul>\n</li>\n<li>AccessDateCriteria. View <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-0795eea6-4ec0-4768-b959-7d251703c1c4\">Catalog</a> documentation</li>\n<li>SalesDocumentSettings. View <a href=\"https://black-water-7777.postman.co/workspace/Experticket.API~4b951697-c9de-4254-b662-de544e109dfa/request/1156470-0795eea6-4ec0-4768-b959-7d251703c1c4\">Catalog</a> documentation</li>\n<li>AccessDateTime: Access date.</li>\n<li>AccessEndDateTime: End of access date range.</li>\n<li>CancellationConditions: Describe the cancellation policies that apply when canceling a sale of this product.<ul>\n<li>IsRefundable: Indicates if the customer can cancel for free at some point in time.</li>\n<li>Rules: Rules that apply when canceling.<ul>\n<li>HoursInAdvanceOfAccess: Indicates the number of hours in advance regarding the date of access from which the cancellation fee set in Amount will be applied.</li>\n<li>FromInclusiveDateTime: Starting date from which the cancellation fee will be applied (included).</li>\n<li>ToExclusiveDateTime: End date until when the cancellation fee will be applied (excluded).</li>\n<li>Percentage: Percentage of the total product amount that won't be refunded in case of cancellation.</li>\n<li>Amount: Total amount to be charged in case of cancellation.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Tickets.<ul>\n<li>TicketId.</li>\n<li>AccessCode.</li>\n<li>BillingCode: Identifier of each one of the tickets. It works as a ticket-to-ticket map between server and client. Up to 100 characters.</li>\n<li>SessionId.</li>\n<li>SessionContentName: [Optional] Session content name.</li>\n<li>SessionTime: [Optional] Session start time.</li>\n<li>Stair: [Optional] Access stair.</li>\n<li>Gate: [Optional] Access gate.</li>\n<li>Row: [Optional] Row.</li>\n<li>Seat: [Optional] Seat number.</li>\n<li>AccessDateTime: When existing, set the start date of the validity of the access for this ticket.</li>\n<li>AccessEndDateTime: When existing, set the end date of the validity of the access for this ticket.</li>\n<li>SuggestedAccessDateMessage: Build the suggested message for the access date on the access document. It's based on AccessDateCriteria, AccessDateCriteriaOpenDateSalesDocument, AccessDateTime and AccessEndDateTime.</li>\n<li>PartnerCustomCode: Identifier provided by the provider.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>CombinedProducts: Array of combined products, it will appear only in the event that any product in the reservation is part of a combined product.<ul>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>CombinedProductDiscriminator: Relationship between product (array of Products) and combined product.</li>\n<li>Price: Combined product price.</li>\n<li>PriceWithoutVat: Combined product price without taxes.</li>\n<li>CancellationConditions: Describe the cancellation policies that apply when canceling a sale of this product.<ul>\n<li>IsRefundable: Indicates if the customer can cancel for free at some point in time.</li>\n<li>Rules: Rules that apply when canceling.<ul>\n<li>HoursInAdvanceOfAccess: Indicates the number of hours in advance regarding the date of access from which the cancellation fee set in Amount will be applied.</li>\n<li>FromInclusiveDateTime: Starting date from which the cancellation fee will be applied (included).</li>\n<li>ToExclusiveDateTime: End date until when the cancellation fee will be applied (excluded).</li>\n<li>Percentage: Percentage of the total product amount that won't be refunded in case of cancellation.</li>\n<li>Amount: Total amount to be charged in case of cancellation.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Success: Boolean (true/false) which indicates if the transaction's creation is correct or not.</li>\n<li>TimeStmp.</li>\n<li>ErrorMessage: An error message explaining why the transaction is not correct. In the event that the transaction is correct, it will return null.</li>\n</ul>\n","urlObject":{"path":["transaction"],"host":["{{baseUrl}}"],"query":[{"key":"api-version","value":"3.61"}],"variable":[]}},"response":[{"id":"72bf6f51-c1ae-4a52-8cd2-04dd8e56fef2","name":"Example with Point Of Sale","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","disabled":false}],"body":{"mode":"raw","raw":"{\n    \"ApiKey\": \"{{ApiKey}}\",\n    \"IsTest\": false,\n    \"AccessDateTime\": \"2018-11-07\",\n    \"PointOfSale\": {\n        \"CustomCode\": \"Shop_001\",\n        \"Name\": \"My Shop\",\n        \"Description\": \"My shop description\"\n    },\n    \"Products\": [\n        {\n            \"ProductId\": \"{{productId1}}\"\n        }\n    ]\n}"},"url":"{{baseUrl}}/transaction"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"no-cache"},{"key":"Pragma","value":"no-cache"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Expires","value":"-1"},{"key":"Server","value":"Microsoft-IIS/10.0"},{"key":"X-StackifyID","value":"V1|80000016-0005-fd00-b63f-84710c7967bb|"},{"key":"api-supported-versions","value":"3.17"},{"key":"X-AspNet-Version","value":"4.0.30319"},{"key":"X-SourceFiles","value":"=?UTF-8?B?QzpcUHJvamVjdHNcUmVwb3NpdG9yaWVzXEdpdFx0aXhhbGlhLnYyXEFwcHNcQXBpXEFwaVxhcGlcdHJhbnNhY3Rpb24=?="},{"key":"X-Powered-By","value":"ASP.NET"},{"key":"Date","value":"Thu, 14 Feb 2019 12:39:04 GMT"},{"key":"Content-Length","value":"762"}],"cookie":[],"responseTime":null,"body":"{\n    \"TransactionId\": \"5347756101672536841/5090394970693590473\",\n    \"AccessDateTime\": \"2018-11-07T00:00:00\",\n    \"TransactionDateTime\": \"2019-02-14T13:39:04.183\",\n    \"PointOfSaleId\": \"zt781jpztdbpa\",\n    \"PointOfSaleCustomCode\": \"Shop_001\",\n    \"Products\": [\n        {\n            \"ProductId\": \"po5jbtrqp764w\",\n            \"Tickets\": [\n                {\n                    \"TicketId\": \"a3kisgoqxms86\",\n                    \"AccessCode\": \"8jtgc7j76bfcq\",\n                    \"BillingCode\": \"0/a3kisgoqxms86\",\n                    \"AccessDateTime\": \"2018-11-07T00:00:00\",\n                    \"AccessEndDateTime\": \"2018-11-07T00:00:00\",\n                    \"SuggestedAccessDateMessage\": \"07/11/2018\"\n                }\n            ],\n            \"ProviderId\": \"hgnr7nj3xxm1g\",\n            \"Status\": 2,\n            \"RetailPrice\": 50,\n            \"AccessDateCriteria\": 0,\n            \"SalesDocumentSettings\": {\n                \"ShowPrice\": true\n            }\n        }\n    ],\n    \"Documents\": [\n        {\n            \"SalesDocumentUrl\": \"http://api.tixalia.local/TransactionDownload/SalesDocument?TransactionId=5090394970693590473\"\n        }\n    ],\n    \"Success\": true\n}"},{"id":"76a761ab-ffbb-4ece-9885-604db46807e2","name":"Doc example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"ApiKey\": \"{{ApiKey}}\",\r\n    \"AccessDateTime\": \"2017-08-15\",\r\n    \"PartnerSaleId\": \"876812039012\",\r\n    \"Products\": [\r\n        {\r\n            \"ProductId\": \"po5jbtrqp764w\",\r\n            \"Tickets\": [\r\n                {\r\n                    \"TicketId\": \"a3kisgoqxms86\",\r\n                    \"AccessCode\": \"0123456789cba\"\r\n                }\r\n            ]\r\n        }\r\n    ]\r\n}"},"url":"{{baseUrl}}/transaction"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\n    \"Success\": true,\n    \"ErrorMessage\": null,\n    \"TransactionId\": \"5603191358506446612\",\n    \"AccessDateTime\": \"2015-07-07T00:00:00\",\n    \"PartnerSaleId\": \"876812039012\",\n    \"TransactionDateTime\": \"2015-07-12T21:12:00\",\n    \"Documents\": [\n        {\n            \"SalesDocumentUrl\": \"http://{{baseUrl}}/TransactionDownload/SalesDocument?TransactionId=5603191358506446612\"\n        }\n    ],\n    \"Products\": [\n        {\n            \"ProductId\": \"ctgyir9m9q4bo\",\n            \"AccessCode\": null,\n            \"Tickets\": [\n                {\n                    \"TicketId\": \"1tqgtrf7ctefc\",\n                    \"AccessCode\": \"5058635698721396923\",\n                    \"BillingCode\": \"abc321/2015/poiuy\"\n                }\n            ]\n        },\n        {\n            \"ProductId\": \"ctgyir9m9q4bo\",\n            \"AccessCode\": null,\n            \"Tickets\": [\n                {\n                    \"TicketId\": \"1tqgtrf7ctefc\",\n                    \"AccessCode\": \"7338633218776390145\",\n                    \"BillingCode\": \"xyz789/2015/qwerty\"\n                }\n            ]\n        },\n        {\n            \"ProductId\": \"htgy4tgm9q21n\",\n            \"AccessCode\": null,\n            \"Tickets\": [\n                {\n                    \"TicketId\": \"1tqgtrf7ctefc\",\n                    \"AccessCode\": \"468363134570091567\",\n                    \"BillingCode\": \"asdfg/2015/jlkjh\"\n                },\n                {\n                    \"TicketId\": \"1tqgtrf7ctefc\",\n                    \"AccessCode\": \"114521845639501404\",\n                    \"BillingCode\": \"zxvbn/2015/mnbnbv\"\n                },\n                {\n                    \"TicketId\": \"jkp78j40cnfh3\",\n                    \"AccessCode\": \"789463778563945777\",\n                    \"BillingCode\": \"yuiop/2015/fghjk\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"7a166e14-87cd-4568-8d66-e2d761f106a8"},{"name":"Create Basic","id":"f79f71f9-7f74-4f3e-b773-b745e1c2c4d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"ApiKey\": \"j06NcogYQe4Z+flhu31SBLKwG7V+M8pTFVjNdzbq7Wv0EvPlVLJrfukhsW3TJyE9eJVqWMhL+iCjv9faZ7vLxlRB1GMXt95iULR6rO6TBmE=\",\r\n  \"IsTest\": false,\r\n  \"AccessDateTime\": \"2026-04-02\",\r\n  \"ReservationId\": \"{{reservationId}}\",\r\n  \"Client\": {\r\n    \"FullName\": \"Kevin\",\r\n    \"Surname\": \"TASSIN\",\r\n    \"Email\": \"achats@emiles.fr\",\r\n    \"DocumentIdentifier\": \"52167356600050\"\r\n  },\r\n  \"PaymentMethod\": {\r\n    \"PaymentMethodType\": 9\r\n  },\r\n  \"Products\": [\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" },\r\n    {\"ProductId\": \"cqm358muis4p4\" }\r\n  ],\r\n  \"DiscountCouponCodes\": [\r\n    \"PROMO8\"\r\n  ]\r\n}"},"url":"{{baseUrl}}/transaction","description":"<p>There is a simple way to create a transaction.</p>\n<blockquote>\n<p><strong>IMPORTANT NOTE:</strong> The restrictions presented in the <a href=\"https://black-water-7777.postman.co/workspace/4b951697-c9de-4254-b662-de544e109dfa/request/1156470-7a166e14-87cd-4568-8d66-e2d761f106a8\">Create transaction</a> point also apply here.</p>\n</blockquote>\n<p>The simplification means it is not necessary to inform the Tickets. Therefore, the tickets should not have sessions or specific access dates.</p>\n<p>The assigning of barcodes to the Tickets/Products can be obtained from the response data and from the generated link to the sales documents.</p>\n<h2 id=\"request-data-structure\">Request data structure</h2>\n<ul>\n<li>ApiKey: unique and private to the employee. It is very important to keep this key secret. The ApiKey for the client can be obtained from the admin panel.</li>\n<li>ReservationId: reservation identifier obtained in <a href=\"https://black-water-7777.postman.co/workspace/4b951697-c9de-4254-b662-de544e109dfa/request/1156470-d45003c1-1a13-4e12-a362-7462d93c2cbf\">Product Reservation</a>.</li>\n<li>IsTest: if it indicates true, no actual action is performed in any of the API methods. It will serve, for instance, to test HTTP connections or data structures.</li>\n<li>AccessDateTime: Access date to the enclosure.</li>\n<li>Products: Products array.<ul>\n<li>ProductId: The product's identifier.</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"response-data-structure\">Response data structure</h2>\n<p>Identical to <a href=\"https://black-water-7777.postman.co/workspace/4b951697-c9de-4254-b662-de544e109dfa/request/1156470-7a166e14-87cd-4568-8d66-e2d761f106a8\">Create transaction</a>.</p>\n","urlObject":{"path":["transaction"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"d30bb077-7084-4e3f-8b7f-7a75f7eee430","name":"Doc example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"ApiKey\": \"{{ApiKey}}\",\r\n    \"AccessDateTime\": \"2017-08-08\",\r\n    \"Products\": [\r\n        {\r\n            \"ProductId\": \"{{productId1}}\"\r\n        }\r\n    ]\r\n}"},"url":"{{baseUrl}}/transaction"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\r\n    \"Documents\": [\r\n        {\r\n            \"SalesDocumentUrl\": \"http://{{baseUrl}}/TransactionDownload/SalesDocument?TransactionId=5603191358506446612\"\r\n        }\r\n    ],\r\n    \"Success\": true\r\n}"}],"_postman_id":"f79f71f9-7f74-4f3e-b773-b745e1c2c4d6"},{"name":"TransactionDocuments","id":"f5cee188-249b-4732-b253-1df1053032f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"ApiKey\": \"{{ApiKey}}\",\r\n    \"AccessDateTime\": \"2017-04-15\",\r\n    \"Products\": [\r\n        {\r\n            \"ProductId\": \"dmno5kfe5fota\"\r\n        }\r\n    ]\r\n}"},"url":"{{baseUrl}}/transactiondocuments?ApiKey={{ApiKeyEncoded}}&id={{TransactionId}}","description":"<p>The documents associated with a transaction are obtained through this API method.</p>\n<p>The method will accept a transaction identifier.</p>\n<h2 id=\"response-data-structure\">Response data structure</h2>\n<ul>\n<li>Documents: It returns an array of the sales documents associated with the transaction.<ul>\n<li>SalesDocumentUrl: Public URL to obtain the document.</li>\n</ul>\n</li>\n<li>Success: It returns true or false, depending on the success or failure to obtain the documents.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage: In the event of an error, it returns the reason of the error.</li>\n</ul>\n","urlObject":{"path":["transactiondocuments"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>API key encoded.</p>\n","type":"text/plain"},"key":"ApiKey","value":"{{ApiKeyEncoded}}"},{"description":{"content":"<p>Transaction identifier.</p>\n","type":"text/plain"},"key":"id","value":"{{TransactionId}}"}],"variable":[]}},"response":[{"id":"3a6eb02f-6a56-4960-974f-71e960dfe72a","name":"Doc example","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"ApiKey\": \"{{ApiKey}}\",\r\n    \"AccessDateTime\": \"2017-04-15\",\r\n    \"Products\": [\r\n        {\r\n            \"ProductId\": \"dmno5kfe5fota\"\r\n        }\r\n    ]\r\n}"},"url":{"raw":"{{baseUrl}}/transactiondocuments?ApiKey={{ApiKeyEncoded}}&id=0/5343869559671437710","host":["{{baseUrl}}"],"path":["transactiondocuments"],"query":[{"key":"ApiKey","value":"{{ApiKeyEncoded}}"},{"key":"id","value":"0/5343869559671437710"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\n  \"Documents\": [\n    {\n      \"SalesDocumentUrl\": \"http://{{baseUrl}}/TransactionDownload/SalesDocument?TransactionId=5603191358506446612\"\n    }\n  ],\n  \"Success\": true\n}"}],"_postman_id":"f5cee188-249b-4732-b253-1df1053032f1"},{"name":"Get transactions","id":"457dcadb-4ed2-46ea-9c0f-172c4028d062","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{baseUrl}}/transaction?ApiKey={{ApiKeyEncoded}}&SaleId=5521148183051582088","description":"<p>With this API method all the transactions will be obtained.</p>\n<h2 id=\"structure-of-data-to-be-sent\">Structure of data to be sent</h2>\n<ul>\n<li>ApiKey: Important: It has to be encoded for URLs. Eg. The ApiKey \"3Ra+14eoJ\" has to be sent as \"3Ra+14eoJ\". There are numerous tools that help <a href=\"https://www.google.es/search?q=urlencode\">encode URLs online</a>.</li>\n<li>LanguageCode: Defines the language in which the texts of the transactions will be displayed, if any (for example, the names of the sessions). By default, the language configured forthe provider will be returned. Possible values: es,en,fr,it.</li>\n<li>SaleId: Returns the sale that is associated with this identifier.</li>\n<li>ReservationId: Returns the transaction that is associated with this reservation identifier.</li>\n<li>PartnerSaleId: Returns the transaction that is associated with this PartnerSaleId.</li>\n<li>PointOfSaleId: Returns the transactions that are associated with our point of sale identifier.</li>\n<li>PointOfSaleCustomCode: Returns the transactions that are associated with your point of sale identifier.</li>\n<li>FromTransactionDateTime: Returns all the transactions that occurred at the specified date or later. The date has to be in ISO 8601 format.</li>\n<li>ToTransactionDateTime: Returns all the transactions that ocurred prior to the given date. The date has to be in ISO 8601 format.</li>\n<li>FromAccessDateTime: Returns all the transactions that contains an access date equal or later than the given date. The date has to be in ISO 8601 format.</li>\n<li>ToAccessDateTime: Returns all the transactions that contain an access date previous to the given date. The date has to be in ISO 8601 format.</li>\n<li>PageSize: As the number of transaction can be really big, the maximum amount of transactions that will be returned by default its of 200. With this optional parameter we can select a smaller number than 200.</li>\n<li>Page: Combined with PageSize, we can decide what page we will like to be returned. The default value ( the first page identifier) is 1. Eg. If we don´t define PageSize and Page the default method will return the first 200 clients. If we specify PageSize = 5 and Page = 2 then it will return the the second page with 5 transaction (from 6 to 10).</li>\n</ul>\n<h1 id=\"response-data-structure\">Response data structure</h1>\n<p>The returned date contains information about the transaction as well as information that will help us navigate the pagination of the set transaction.</p>\n<ul>\n<li>Success: Returns true or false depending on the success of the returned list.</li>\n<li>TimeStamp.</li>\n<li>ErrorMessage: In case of an error it will return the motive why the error occurred.</li>\n<li>PageNumber: The requested page number.</li>\n<li>PageSize: The sizes of the requested page.</li>\n<li>TotalItemCount: The total of the requested transaction after the required filters were applied, without pagination.</li>\n<li>PageCount: The total number of pages for the transaction after the required filters were applied without dividing it on PageSize requested.</li>\n<li>HasPreviousPage: Indicates if there are any previous pages</li>\n<li>HasNextPage: Indicates if there are more pages after the current page.</li>\n<li>IsFirstPage : Indicates if the current page is the first page.</li>\n<li>IsLastPage: Indicates if the current page is the last page.</li>\n<li>FirstItemOnPage: Indicates what position the firs returned transaction would occupy if the list didn't contain any page specification.</li>\n<li>LastItemOnPage: Indicates what position the last returned transaction would occupy if the list didn't contain any page specification.</li>\n<li>Transactions: Array of transactions. Each transaction will contain the following value (except if they are null, then they wont appear): Especially the \"client\" attribute is possible to be null so it won't appear.<ul>\n<li>SaleId: Sale identifier. Up to 100 characters.</li>\n<li>PaymentStatus: Possible values are:<ul>\n<li>1: Not cashed</li>\n<li>2: Partially cashed</li>\n<li>3: Cashed</li>\n<li>4: Refunded</li>\n<li>5: Refund pending</li>\n</ul>\n</li>\n<li>AccessDateTime: Access date.</li>\n<li>TransactionDateTime: Date and time when the transaction took place.</li>\n<li>PartnerSaleId: Internal sale identifier asigned by the partner.</li>\n<li>TaxBreakdown: Tax breakdown array.<ul>\n<li>TaxPercentage: Tax percentage (out of 100).</li>\n<li>PriceWithoutTaxes: Price without taxes.</li>\n<li>PriceWithTaxes: Price with taxes.</li>\n</ul>\n</li>\n<li>TotalPrice : Indicates the total transaction price.</li>\n<li>TotalPriceWithoutVat : Indicates the total transaction price without taxes.</li>\n<li>Client: The client that created the transaction. If any of the following values is null that the attribute wont be displayed.<ul>\n<li>CreatedDate: Date when the client was created.</li>\n<li>Gender: [Optional] Client gender.</li>\n<li>FullName: Client Name.</li>\n<li>Surname: Client Surname.</li>\n<li>BirthDate: Client Birthdate.</li>\n<li>Email: Client email.</li>\n<li>PhoneNumber: [Optional] Client phone number.</li>\n<li>DocumentIdentifier: Client identification (passporte, national identifier document, etc.).</li>\n<li>CountryCode: Client country code.</li>\n<li>Province: Client province.</li>\n<li>City: Client city.</li>\n<li>Address: Client address.</li>\n<li>ZipCode: Client zipCode.</li>\n<li>LanguageCode: Client language code.</li>\n</ul>\n</li>\n<li>Products. Array of products.<ul>\n<li>ProductId: Product identifier.</li>\n<li>ProductName: Product name.</li>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>CombinedProductDiscriminator: Indicates which combined product it belongs to within the CombinedProducts array.</li>\n<li>CombinedProductDiscriminator:</li>\n<li>AccessCode: Barcode (if present).</li>\n<li>ProviderId: Provider identifier.</li>\n<li>ProviderName: Provider name.</li>\n<li>ProviderType: Provider type. Options:<ul>\n<li>0: Activity</li>\n<li>1: Accomodation</li>\n<li>2: Transport</li>\n</ul>\n</li>\n<li>Price: Indicates the price the product has been sold at.</li>\n<li>PriceWithoutVat: Indicates the price the product has been sold at without taxes.</li>\n<li>PriceMode: 1 = RRP, 2 = Net Price</li>\n<li>Status:<ul>\n<li>1 = Initiated</li>\n<li>2 = Confirmed</li>\n<li>4 = Cancelled</li>\n<li>7 = In process</li>\n</ul>\n</li>\n<li>AccessDateCriteria: View <a href=\"https://black-water-7777.postman.co/workspace/4b951697-c9de-4254-b662-de544e109dfa/request/1156470-0795eea6-4ec0-4768-b959-7d251703c1c4\">Catalog</a> documentation.</li>\n<li>SalesDocumentSettings: View <a href=\"https://black-water-7777.postman.co/workspace/4b951697-c9de-4254-b662-de544e109dfa/request/1156470-0795eea6-4ec0-4768-b959-7d251703c1c4\">Catalog</a> documentation.</li>\n<li>Tickets: Array of tickets.<ul>\n<li>TicketId: Ticket identifier.</li>\n<li>TicketName: Ticket name.</li>\n<li>AccessCode: Barcode (if present).</li>\n<li>BillingCode: Identifier for each one of the tickets. It serves as a ticket to ticket map between client and server.</li>\n<li>SessionId: Session identifier.</li>\n<li>AccessDateTime: When existing, set the start date of the validity of the access for this ticket.</li>\n<li>AccessEndDateTime: When existing, set the end date of the validity of the access for this ticket.</li>\n<li>SuggestedAccessDateMessage: Build the suggested message for the access date on the access document. It's based on AccessDateCriteria, AccessDateCriteriaOpenDateSalesDocument, AccessDateTime and AccessEndDateTime.</li>\n<li>InternalCode: Ticket internal code.</li>\n<li>TicketEnclosureId: Ticket enclosure identifier.</li>\n<li>TicketEnclosureName: Ticket enclosure name.</li>\n</ul>\n</li>\n<li>CancellationConditions: Describe the cancellation policies that apply when canceling a sale of this product.<ul>\n<li>IsRefundable. Indicates if the customer can cancel for free at some point in time.</li>\n<li>Rules. Rules that apply when canceling.<ul>\n<li>HoursInAdvanceOfAccess. Indicates the number of hours in advance regarding the date of access from which the cancellation fee set in Amountwill be applied.</li>\n<li>FromInclusiveDateTime. Starting date from which the cancellation fee will be applied (included).</li>\n<li>ToExclusiveDateTime. End date until when the cancellation fee will be applied (excluded).</li>\n<li>Percentage: Percentage of the total product amount that won't be refunded in case of cancellation.</li>\n<li>Amount: Total amount to be charged in case of cancellation.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>CombinedProducts: Array of combined products, it will appear only in the event that any product in the reservation is part of a combined product.<ul>\n<li>CombinedProductId: Combined product identifier.</li>\n<li>CombinedProductDiscriminator: Relationship between product (array of Products) and combined product.</li>\n<li>Price: Combined product price.</li>\n<li>PriceWithoutVat: Combined product price without taxes.</li>\n<li>CancellationConditions: Describe the cancellation policies that apply when canceling a sale of this product.<ul>\n<li>IsRefundable: Indicates if the customer can cancel for free at some point in time.</li>\n<li>Rules: Rules that apply when canceling.<ul>\n<li>HoursInAdvanceOfAccess: Indicates the number of hours in advance regarding the date of access from which the cancellation fee set in Amount will be applied.</li>\n<li>FromInclusiveDateTime: Starting date from which the cancellation fee will be applied (included).</li>\n<li>ToExclusiveDateTime: End date until when the cancellation fee will be applied (excluded).</li>\n<li>Percentage: Percentage of the total product amount that won't be refunded in case of cancellation.</li>\n<li>Amount: Total amount to be charged in case of cancellation.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["transaction"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>API key encoded.</p>\n","type":"text/plain"},"key":"ApiKey","value":"{{ApiKeyEncoded}}"},{"disabled":true,"description":{"content":"<p>Defines the language in which the texts of the transactions will be displayed.</p>\n","type":"text/plain"},"key":"LanguageCode","value":""},{"description":{"content":"<p>Returns the sale that is associated with this identifier.</p>\n","type":"text/plain"},"key":"SaleId","value":"5521148183051582088"},{"disabled":true,"description":{"content":"<p>Returns the transaction that is associated with this reservation identifier.</p>\n","type":"text/plain"},"key":"ReservationId","value":""},{"disabled":true,"description":{"content":"<p>Returns the transaction that is associated with this PartnerSaleId.</p>\n","type":"text/plain"},"key":"PartnerSaleId","value":""},{"disabled":true,"description":{"content":"<p>Returns the transactions that are associated with our point of sale identifier.</p>\n","type":"text/plain"},"key":"PointOfSaleId","value":""},{"disabled":true,"description":{"content":"<p>Returns the transactions that are associated with your point of sale identifier.</p>\n","type":"text/plain"},"key":"PointOfSaleCustomCode","value":""},{"disabled":true,"description":{"content":"<p>Returns all the transactions that occurred at the specified date or later.</p>\n","type":"text/plain"},"key":"FromTransactionDateTime","value":"2025-09-16"},{"disabled":true,"description":{"content":"<p>Returns all the transactions that ocurred prior to the given date.</p>\n","type":"text/plain"},"key":"ToTransactionDateTime","value":"2025-09-16"},{"disabled":true,"description":{"content":"<p>Returns all the transactions that contains an access date equal or later than the given date.</p>\n","type":"text/plain"},"key":"FromAccessDateTime","value":""},{"disabled":true,"description":{"content":"<p>Returns all the transactions that contain an access date previous to the given date.</p>\n","type":"text/plain"},"key":"ToAccessDateTime","value":""},{"disabled":true,"description":{"content":"<p>Maximum amount of transactions that will be returned.</p>\n","type":"text/plain"},"key":"PageSize","value":""},{"disabled":true,"description":{"content":"<p>Combined with PageSize, we can decide what page we will like to be returned.</p>\n","type":"text/plain"},"key":"Page","value":""},{"disabled":true,"key":"api-version","value":"3.50"}],"variable":[]}},"response":[{"id":"59c80ec2-ad41-4957-9733-b83c86ed3021","name":"Doc example","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"ApiKey\": \"{{ApiKey}}\",\r\n    \"AccessDateTime\": \"2017-04-15\",\r\n    \"Products\": [\r\n        {\r\n            \"ProductId\": \"dmno5kfe5fota\"\r\n        }\r\n    ]\r\n}"},"url":{"raw":"{{baseUrl}}/transaction?ApiKey={{ApiKeyEncoded}}","host":["{{baseUrl}}"],"path":["transaction"],"query":[{"key":"ApiKey","value":"{{ApiKeyEncoded}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"no-cache","name":"Cache-Control","description":""},{"key":"Content-Encoding","value":"gzip","name":"Content-Encoding","description":""},{"key":"Content-Length","value":"568","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":""},{"key":"Date","value":"Wed, 17 Jan 2018 12:25:29 GMT","name":"Date","description":""},{"key":"Expires","value":"-1","name":"Expires","description":""},{"key":"Pragma","value":"no-cache","name":"Pragma","description":""},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":""},{"key":"Set-Cookie","value":"ARRAffinity=24f17e1a8f4c4ff5f9208e853e1f84e70ef1b3779870d5eb7185f73ec52f3856;Path=/;HttpOnly;Domain=sale-api.tixalia.com","name":"Set-Cookie","description":""},{"key":"Vary","value":"Accept-Encoding","name":"Vary","description":""},{"key":"X-AspNet-Version","value":"4.0.30319","name":"X-AspNet-Version","description":""},{"key":"X-Powered-By","value":"ASP.NET","name":"X-Powered-By","description":""}],"cookie":[{"expires":"Tue Jan 19 2038 03:14:07 GMT+0000 (Coordinated Universal Time)","httpOnly":true,"domain":"sale-api.tixalia.com","path":"/","secure":false,"value":"24f17e1a8f4c4ff5f9208e853e1f84e70ef1b3779870d5eb7185f73ec52f3856","key":"ARRAffinity"}],"responseTime":"48615","body":"{\n    \"Transactions\": [\n        {\n            \"TransactionId\": \"5761426509054154154/5239655730227958910\",\n            \"AccessDateTime\": \"2017-09-30T00:00:00\",\n            \"TransactionDateTime\": \"2017-10-17T09:35:17.77\",\n            \"Products\": [\n                {\n                    \"ProductId\": \"yqfdcg67uwk1o\",\n                    \"Tickets\": [\n                        {\n                            \"TicketId\": \"cyzktozyj3dmc\",\n                            \"AccessCode\": \"8959967435002295\",\n                            \"BillingCode\": \"0/cyzktozyj3dmc\",\n                            \"TicketName\": \"Adult 1 día\",\n                            \"AccessDateTime\": \"2017-09-30T00:00:00\"\n                        }\n                    ],\n                    \"ProviderId\": \"8xfetz1m5feao\",\n                    \"Status\": 2,\n                    \"ProductName\": \"Adulto 1 día\",\n                    \"ProviderName\": \"Name\",\n                    \"RetailPrice\": 20\n                }\n            ],\n            \"TotalRetailPrice\": 20\n        },\n        {\n            \"TransactionId\": \"5550942439311771129/4828305216238576429\",\n            \"AccessDateTime\": \"2017-09-20T00:00:00\",\n            \"TransactionDateTime\": \"2017-09-20T16:29:20.71\",\n            \"Products\": [\n                {\n                    \"ProductId\": \"hgpkcpdh4gwre\",\n                    \"Tickets\": [\n                        {\n                            \"TicketId\": \"pr69sw8977npc\",\n                            \"AccessCode\": \"6349967435002175\",\n                            \"BillingCode\": \"0/pr69sw8977npc\",\n                            \"TicketName\": \"Adulto 1 día\",\n                            \"AccessDateTime\": \"2017-09-20T00:00:00\"\n                        }\n                    ],\n                    \"ProviderId\": \"udjo5xronyxfn\",\n                    \"Status\": 2,\n                    \"ProductName\": \"Entrada Adulto 1 Día\",\n                    \"ProviderName\": \"Prov Name\",\n                    \"RetailPrice\": 47\n                }\n            ],\n            \"TotalRetailPrice\": 47\n        }\n    ],\n    \"PageNumber\": 1,\n    \"PageSize\": 200,\n    \"TotalItemCount\": 2,\n    \"PageCount\": 1,\n    \"HasPreviousPage\": false,\n    \"HasNextPage\": false,\n    \"IsFirstPage\": true,\n    \"IsLastPage\": true,\n    \"FirstItemOnPage\": 1,\n    \"LastItemOnPage\": 2,\n    \"Success\": true\n}"}],"_postman_id":"457dcadb-4ed2-46ea-9c0f-172c4028d062"},{"name":"Send documentation to client","id":"0366f949-1a85-426a-88ee-9e94a0fe143c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/sendsaledocumentationtoclient?ApiKey={{ApiKeyEncoded}}&SaleId={{SaleId}}&Email={{destination_email}}","urlObject":{"path":["sendsaledocumentationtoclient"],"host":["{{baseUrl}}"],"query":[{"description":{"content":"<p>Encoded API key.</p>\n","type":"text/plain"},"key":"ApiKey","value":"{{ApiKeyEncoded}}"},{"description":{"content":"<p>Sale identifier.</p>\n","type":"text/plain"},"key":"SaleId","value":"{{SaleId}}"},{"description":{"content":"<p>Email to send the documentation.</p>\n","type":"text/plain"},"key":"Email","value":"{{destination_email}}"}],"variable":[]}},"response":[],"_postman_id":"0366f949-1a85-426a-88ee-9e94a0fe143c"}],"id":"8a9af710-9ba2-4477-b14e-f337bea6922c","event":[{"listen":"prerequest","script":{"id":"15d865a8-673c-48f5-abea-75bad28cb974","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"f8d3db33-9c1f-4c36-b428-06658d9f3f46","type":"text/javascript","exec":[""]}}],"_postman_id":"8a9af710-9ba2-4477-b14e-f337bea6922c","description":""},{"name":"8.- Attachments","item":[{"name":"AdvancedDateSelector","id":"b4eae57b-8200-430b-80eb-4960d0323125","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"VIEW","header":[],"body":{"mode":"formdata","formdata":[]},"url":"","description":"<p>In this attachment, we define if the tickets that compose the products, which compose a transaction, may have an access date that differs from that of the transaction itself.</p>\n<blockquote>\n<p><strong>IMPORTANT NOTE:</strong> The AccessDateTime of the transaction should ALWAYS be filled out.</p>\n</blockquote>\n<h2 id=\"method-none\">Method: None</h2>\n<p>The tickets CANNOT have an access date that differs from that of the transaction.</p>\n<p>Therefore, and always in reference to the ticket, in products’ <a href=\"https://black-water-7777.postman.co/workspace/4b951697-c9de-4254-b662-de544e109dfa/request/1156470-d45003c1-1a13-4e12-a362-7462d93c2cbf\">Reservation</a> and <a href=\"https://black-water-7777.postman.co/workspace/4b951697-c9de-4254-b662-de544e109dfa/request/1156470-7a166e14-87cd-4568-8d66-e2d761f106a8\">Creation of a transaction</a> alike, the AccessDateTime value will prevail or be left null.</p>\n<h2 id=\"method-dateperticketenclosure\">Method: DatePerTicketEnclosure</h2>\n<p>The tickets CAN have an access date that differs from that of the transaction.</p>\n<p>As we know, according to the products <a href=\"https://black-water-7777.postman.co/workspace/4b951697-c9de-4254-b662-de544e109dfa/request/1156470-0795eea6-4ec0-4768-b959-7d251703c1c4\">Catalog</a>, the tickets form part of an enclosure (TicketEnclosureId). As such, for the DatePerTicketEnclosure, each ticket enclosure can, optionally, have a different access date.</p>\n<p>For instance, imagine a product called “Adult Ticket Attractions+Aquatic”, made up of two tickets:</p>\n<ul>\n<li>Adult Ticket Attractions. Corresponding to the enclosure \"Attractions\".</li>\n<li>Adult Ticket Aquatic. Corresponding to the enclosure \"Aquatic\".</li>\n</ul>\n<p>In the case of DatePerTicketEnclosure we can have the \"Adult Ticket Attractions\" with the entry date of April 1, and the \"Adult Ticket Aquatic\" with the entry date of May 3.</p>\n<blockquote>\n<p><strong>Important limitation:</strong> All access dates, of all tickets which compose one transaction, should belong to the same set of \"PricesAndDates\" (Products catalog). In other words, we can pick a date with a price of €20, and another with a price of €25.</p>\n</blockquote>\n<blockquote>\n<p><strong>IMPORTANT NOTE:</strong> The transaction's AccessDateTime should be filled out with the ticket's earliest access date.</p>\n</blockquote>\n","urlObject":{"query":[],"variable":[]}},"response":[],"_postman_id":"b4eae57b-8200-430b-80eb-4960d0323125"}],"id":"7e9fdb13-3cf6-4c1f-a027-b00b4700569c","event":[{"listen":"prerequest","script":{"id":"e7aac04d-5064-4fcb-90dd-b5e25e1b7f64","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"a6c05800-ae1b-4d8c-92e7-145c14c49613","type":"text/javascript","exec":[""]}}],"_postman_id":"7e9fdb13-3cf6-4c1f-a027-b00b4700569c","description":""}],"event":[{"listen":"prerequest","script":{"id":"7fb0c9e8-84a4-445e-b5ea-60b5c4f4f89f","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"ea8db8b6-34d3-4d13-b73a-6f4aa03c7168","type":"text/javascript","exec":[""]}}]}