{"info":{"_postman_id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","name":"Ticket Core API for Resellers","description":"<html><head></head><body><p>Welcome to the Ticket Core API documentation for <em><strong>Resellers</strong></em>. This API allows resellers to book tickets and retrieve ticketing information such as available dates, timeslots and ticket types. In this docs you will find details about the available endpoints, request and response formats, and usage examples.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>All API requests must include an API token in the Authorization header. The token is provided when you make a call to <code>/token</code>. Here is an example of how to include the token in your requests:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer YOUR_TOKEN\n\n</code></pre><h3 id=\"best-practices\">Best Practices</h3>\n<p>To ensure optimal performance, reduce load on the server, and maintain data freshness, please cache requests as follows:</p>\n<ul>\n<li><p><strong>Dates</strong>: Cache at least once a day.</p>\n</li>\n<li><p><strong>Ticket Types</strong>: Cache at least once a day.</p>\n</li>\n<li><p><strong>Timeslots</strong>: Cache one or two times a minute.</p>\n</li>\n</ul>\n<p>Regularly refreshing cached data ensures that you have the most up-to-date information while minimizing the number of requests made to the server.</p>\n<h2 id=\"support\">Support</h2>\n<p>If you have any questions or need further assistance, please contact our support team at <a href=\"https://mailto:support@ticketcore.nl\">support@ticketcore.nl</a>.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"6856150","collectionId":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","publishedId":"2sA3QtcW1R","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-05-28T12:29:45.000Z"},"item":[{"name":"Dates","id":"3e00d3f5-77ad-4e68-abdc-773e2c89d182","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer <<use token from request>>"}],"url":"https://reseller.ticketcore.nl/dates/2024-05","auth":{"type":"jwt","jwt":{"basicConfig":[{"key":"isSecretBase64Encoded","value":"<is-secret-base64encoded>"},{"key":"algorithm","value":"<algorithm>"},{"key":"payload","value":"<payload>"},{"key":"addTokenTo","value":"<add-token-to>"},{"key":"headerPrefix","value":"<header-prefix>"},{"key":"queryParamKey","value":"<query-param-key>"},{"key":"header","value":"<header>"}]},"isInherited":true,"source":{"_postman_id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","name":"Ticket Core API for Resellers","type":"collection"}},"urlObject":{"protocol":"https","path":["dates","2024-05"],"host":["reseller","ticketcore","nl"],"query":[],"variable":[]}},"response":[],"_postman_id":"3e00d3f5-77ad-4e68-abdc-773e2c89d182"},{"name":"Timeslots","id":"04556917-d124-4454-a6a6-46c8cca2241f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer <<use token from request>>"}],"url":"https://reseller.ticketcore.nl/timeslots/2024-05-28","auth":{"type":"jwt","jwt":{"basicConfig":[{"key":"isSecretBase64Encoded","value":"<is-secret-base64encoded>"},{"key":"algorithm","value":"<algorithm>"},{"key":"payload","value":"<payload>"},{"key":"addTokenTo","value":"<add-token-to>"},{"key":"headerPrefix","value":"<header-prefix>"},{"key":"queryParamKey","value":"<query-param-key>"},{"key":"header","value":"<header>"}]},"isInherited":true,"source":{"_postman_id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","name":"Ticket Core API for Resellers","type":"collection"}},"urlObject":{"protocol":"https","path":["timeslots","2024-05-28"],"host":["reseller","ticketcore","nl"],"query":[],"variable":[]}},"response":[],"_postman_id":"04556917-d124-4454-a6a6-46c8cca2241f"},{"name":"Tickettypes","id":"c1b41728-d8fe-4747-a9d2-c0bc587d81bc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer <<use token from request>>"}],"url":"https://reseller.ticketcore.nl/tickettypes/nl/2024-05-27","auth":{"type":"jwt","jwt":{"basicConfig":[{"key":"isSecretBase64Encoded","value":"<is-secret-base64encoded>"},{"key":"algorithm","value":"<algorithm>"},{"key":"payload","value":"<payload>"},{"key":"addTokenTo","value":"<add-token-to>"},{"key":"headerPrefix","value":"<header-prefix>"},{"key":"queryParamKey","value":"<query-param-key>"},{"key":"header","value":"<header>"}]},"isInherited":true,"source":{"_postman_id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","name":"Ticket Core API for Resellers","type":"collection"}},"urlObject":{"protocol":"https","path":["tickettypes","nl","2024-05-27"],"host":["reseller","ticketcore","nl"],"query":[],"variable":[]}},"response":[],"_postman_id":"c1b41728-d8fe-4747-a9d2-c0bc587d81bc"},{"name":"Request Token","event":[{"listen":"test","script":{"id":"748d10e0-453f-45aa-9c2a-8c5d8ef7698e","exec":["pm.test(\"Response contains the token field\", function () {","  pm.expect(pm.response.json()).to.have.property('token');","});",""],"type":"text/javascript","packages":{}}}],"id":"1b203c05-73fa-4435-a6e7-c093e29532d5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"api_user\": \"<<fill in>>\",\n    \"api_secret\": \"<<fill in>>\"\n}","options":{"raw":{"language":"json"}}},"url":"https://reseller.ticketcore.nl/token","description":"<h3 id=\"request-description\">Request Description</h3>\n<p>This endpoint allows the user to obtain a token by making an HTTP POST request to the specified URL. The request body should be in raw JSON format and include the \"api_user\" and \"api_secret\" parameters.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p><code>api_user</code> (string): The API user's credentials.</p>\n</li>\n<li><p><code>api_secret</code> (string): The API user's secret key.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response to this request is expected to be in JSON format. The response includes an <code>expires_at</code> field in UTC date format.</p>\n<p><strong>Note:</strong> The expiration time may vary over time. You can rely on the <code>expires_at</code> value provided in the response. For best practice, save the token and use it multiple times until the <code>expires_at</code> time is near. Excessive requests for new tokens will be blocked.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"token\": \"...token...\",\n  \"expires_at\": \"DATE_IN_UTC_FORMAT\"\n}\n\n</code></pre>\n","auth":{"type":"jwt","jwt":{"basicConfig":[{"key":"isSecretBase64Encoded","value":"<is-secret-base64encoded>"},{"key":"algorithm","value":"<algorithm>"},{"key":"payload","value":"<payload>"},{"key":"addTokenTo","value":"<add-token-to>"},{"key":"headerPrefix","value":"<header-prefix>"},{"key":"queryParamKey","value":"<query-param-key>"},{"key":"header","value":"<header>"}]},"isInherited":true,"source":{"_postman_id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","name":"Ticket Core API for Resellers","type":"collection"}},"urlObject":{"protocol":"https","path":["token"],"host":["reseller","ticketcore","nl"],"query":[],"variable":[]}},"response":[],"_postman_id":"1b203c05-73fa-4435-a6e7-c093e29532d5"},{"name":"Create Reservation","id":"ce2552b0-e800-466a-aef4-54735608316f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer <<use token from request>>"}],"body":{"mode":"raw","raw":"{\n  \"language\": \"nl\",\n  \"date\": \"2027-06-17\",\n  \"timeslot\": \"12:00\",\n  \"ticket_types\": [\n    {\n      \"id\": \"84f21c48-07c1-4d0b-9755-fc7c0bed2515\",\n      \"quantity\": 2\n    }\n  ],\n  \"visitor\": {\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john.doe@example.com\",\n    \"country\": \"NL\"\n  }\n}\n","options":{"raw":{"language":"json"}}},"url":"https://reseller.ticketcore.nl/reservation","description":"<h2 id=\"create-reservation-endpoint\">Create Reservation Endpoint</h2>\n<p>The Create Reservation endpoint allows resellers to make a reservation for tickets on behalf of visitors.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Endpoint</strong></p>\n<p><code>POST /reservation</code></p>\n<p><strong>Request Body</strong></p>\n<ul>\n<li><p><strong>language</strong> (string, required): The language preference for the reservation.</p>\n</li>\n<li><p><strong>date</strong> (string, required): The date for the reservation in <code>YYYY-MM-DD</code> format.</p>\n</li>\n<li><p><strong>timeslot</strong> (string, required): The timeslot for the reservation in <code>HH:MM</code> format.</p>\n</li>\n<li><p><strong>ticket_types</strong> (array, required): An array of ticket types with their corresponding quantities. Each object in the array should contain:</p>\n<ul>\n<li><p><strong>id</strong> (string, required): The ID of the ticket type.</p>\n</li>\n<li><p><strong>quantity</strong> (integer, required): The quantity of tickets for the specified type.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>visitor</strong> (object, required/optional based on the museum): Details of the visitor making the reservation. This information is utilized by some museums to notify visitors in case of emergencies or assist them in locating their tickets.</p>\n<ul>\n<li><p><strong>first_name</strong> (string, required): The first name of the visitor.</p>\n</li>\n<li><p><strong>last_name</strong> (string, required): The last name of the visitor.</p>\n</li>\n<li><p><strong>email</strong> (string, required): The email address of the visitor.</p>\n</li>\n<li><p><strong>country</strong> (string, ISO 3166-1 alpha-2): The country code of the visitor (for example \"US\").</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Note:</strong> Please add the visitor details to enable our support team to assist the visitor effectively.</p>\n<h3 id=\"response-status-codes\">Response Status Codes</h3>\n<ul>\n<li><p><strong>200 - Reservation Created</strong>: The reservation has been successfully created.</p>\n</li>\n<li><p><strong>400 - Bad Request</strong>: The request is invalid. For example, required fields are missing or incorrectly formatted.</p>\n</li>\n</ul>\n","auth":{"type":"jwt","jwt":{"basicConfig":[{"key":"isSecretBase64Encoded","value":"<is-secret-base64encoded>"},{"key":"algorithm","value":"<algorithm>"},{"key":"payload","value":"<payload>"},{"key":"addTokenTo","value":"<add-token-to>"},{"key":"headerPrefix","value":"<header-prefix>"},{"key":"queryParamKey","value":"<query-param-key>"},{"key":"header","value":"<header>"}]},"isInherited":true,"source":{"_postman_id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","name":"Ticket Core API for Resellers","type":"collection"}},"urlObject":{"protocol":"https","path":["reservation"],"host":["reseller","ticketcore","nl"],"query":[],"variable":[]}},"response":[],"_postman_id":"ce2552b0-e800-466a-aef4-54735608316f"},{"name":"Complete Reservation","id":"58bd501f-a625-4cd9-857f-9e4f7a87c992","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer <<use token from request>>"}],"url":"https://reseller.ticketcore.nl/reservation/123456/complete","description":"<p>The <code>Complete Reservation</code> endpoint allows resellers to complete a reservation, converting it into a booking.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Endpoint</strong></p>\n<p><code>POST /reservation/{ID}/complete</code></p>\n<p><strong>Parameters</strong></p>\n<ul>\n<li><strong>ID</strong>: The reservation ID to be completed. This should be included in the URL path.</li>\n</ul>\n<h3 id=\"response-status-codes\">Response Status Codes</h3>\n<ul>\n<li><p><strong>200 - Complete Success</strong>: The reservation has been successfully converted to a booking.</p>\n</li>\n<li><p><strong>400 - Bad Request</strong>: The request is invalid. For example, the reservation ID is missing or malformed.</p>\n</li>\n<li><p><strong>404 - Not Found</strong>: The specified reservation does not exist.</p>\n</li>\n</ul>\n<h3 id=\"response-example\">Response Example</h3>\n<p>If you attempt to complete the reservation multiple times (e.g., accidentally), the reservation will only be completed once. However, for the first 15 minutes, the response will indicate a successful completion. After 15 minutes, attempting to complete the reservation again will result in an error message stating, 'The reservation is already completed.'</p>\n<p><strong>Note:</strong> Please save the barcodes and booking_id on your end.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"booking_id\": 12345678,\n    \"language\": \"en\",\n    \"date\": \"2027-06-17\",\n    \"timeslot\": \"12:00\",\n    \"tickets\": [\n        {\n            \"ticket_type_id\": \"1cc69ac8-2027-4745-824f-572b8d85f097\",\n            \"ticket_type_name\": \"Adult\",\n            \"barcode\": \"1234567890123\"\n        },\n        {\n            \"ticket_type_id\": \"1cc69ac8-2027-4745-824f-572b8d85f097\",\n            \"ticket_type_name\": \"Adult\",\n            \"barcode\": \"1234567890124\"\n        }\n    ]\n}\n\n</code></pre>\n","auth":{"type":"jwt","jwt":{"basicConfig":[{"key":"isSecretBase64Encoded","value":"<is-secret-base64encoded>"},{"key":"algorithm","value":"<algorithm>"},{"key":"payload","value":"<payload>"},{"key":"addTokenTo","value":"<add-token-to>"},{"key":"headerPrefix","value":"<header-prefix>"},{"key":"queryParamKey","value":"<query-param-key>"},{"key":"header","value":"<header>"}]},"isInherited":true,"source":{"_postman_id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","name":"Ticket Core API for Resellers","type":"collection"}},"urlObject":{"protocol":"https","path":["reservation","123456","complete"],"host":["reseller","ticketcore","nl"],"query":[],"variable":[]}},"response":[],"_postman_id":"58bd501f-a625-4cd9-857f-9e4f7a87c992"},{"name":"Cancel Booking","id":"8484d56e-a780-4e44-852e-4fbcabe40d34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer <<use token from request>>"}],"url":"https://reseller.ticketcore.nl/booking/123456/cancel","description":"<p>With this endpoint, you can cancel a booking, which refers to a reservation that has already been completed. Note that cancellations are only allowed for bookings (tickets) with a future ticket date. Cancellation policies are determined by the individual museum.</p>\n<h3 id=\"response-status-codes\">Response Status Codes:</h3>\n<ul>\n<li><p><strong>200 - Cancel Success</strong>: The booking has been successfully canceled.</p>\n</li>\n<li><p><strong>400 - Bad Request</strong>: The request is invalid. For example, the booking is not completed yet.</p>\n</li>\n<li><p><strong>404 - Not Found</strong>: The specified booking does not exist.</p>\n</li>\n<li><p><strong>409 - Conflict</strong>: The booking has already been canceled.</p>\n</li>\n</ul>\n","auth":{"type":"jwt","jwt":{"basicConfig":[{"key":"isSecretBase64Encoded","value":"<is-secret-base64encoded>"},{"key":"algorithm","value":"<algorithm>"},{"key":"payload","value":"<payload>"},{"key":"addTokenTo","value":"<add-token-to>"},{"key":"headerPrefix","value":"<header-prefix>"},{"key":"queryParamKey","value":"<query-param-key>"},{"key":"header","value":"<header>"}]},"isInherited":true,"source":{"_postman_id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","id":"8a33a800-7d2c-48a2-a8ff-00a2fa095ed4","name":"Ticket Core API for Resellers","type":"collection"}},"urlObject":{"protocol":"https","path":["booking","123456","cancel"],"host":["reseller","ticketcore","nl"],"query":[],"variable":[]}},"response":[],"_postman_id":"8484d56e-a780-4e44-852e-4fbcabe40d34"}],"auth":{"type":"jwt","jwt":{"basicConfig":[{"key":"isSecretBase64Encoded","value":"<is-secret-base64encoded>"},{"key":"algorithm","value":"<algorithm>"},{"key":"payload","value":"<payload>"},{"key":"addTokenTo","value":"<add-token-to>"},{"key":"headerPrefix","value":"<header-prefix>"},{"key":"queryParamKey","value":"<query-param-key>"},{"key":"header","value":"<header>"}]}},"event":[{"listen":"prerequest","script":{"id":"3127c2df-e5fd-45f7-8091-330f0298af7b","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"62c5e1aa-e3a5-49d2-8441-28db696492a5","type":"text/javascript","packages":{},"exec":[""]}}]}