{"info":{"_postman_id":"5513520d-3f18-4fe0-a8b3-b76c184f1937","name":"Gordian Software API Flows (External)","description":"<html><head></head><body><p><strong>Welcome to the Gordian Software Postman Collection!</strong></p>\n<p>Check out the <a href=\"http://docs.gordiansoftware.com/getting-started/\">Getting Started Guide</a> to learn more about the API.</p>\n<hr>\n<p>Please find guides for:</p>\n<ul>\n<li><p><a href=\"https://postman.gordiansoftware.com/#a548e4b0-e099-4a99-969e-6de7a5f34fa9\">Offering seats using the Gordian SDK</a></p>\n</li>\n<li><p><a href=\"https://postman.gordiansoftware.com/#2e0c9af6-3802-4d6c-a610-b4d58d4e72d0\">Offering bags using the Gordian SDK</a></p>\n</li>\n<li><p><a href=\"https://postman.gordiansoftware.com/#2897694c-f81c-45e1-bcc2-a2adfed228ba\">Offering ancillaries using the Gordian API in the booking flow</a></p>\n</li>\n<li><p><a href=\"https://postman.gordiansoftware.com/#fed4cc55-ad9e-4aa6-bcb6-fd23a50d05cf\">Offering ancillaries using the Gordian API post-booking</a></p>\n</li>\n<li><p><a href=\"https://postman.gordiansoftware.com/#cfe8e41c-aab5-461d-8304-5cb5bb3518d8\">Supporting Post-Sale Changes and Cancellations of Ancillaries</a></p>\n</li>\n</ul>\n<hr>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"16742554","collectionId":"5513520d-3f18-4fe0-a8b3-b76c184f1937","publishedId":"2s8YzZRKqp","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"161654"},"publishDate":"2022-12-19T20:17:03.000Z"},"item":[{"name":"Ancillaries Using the Gordian Widget","item":[{"name":"Seat Selection Using Gordian Widget","item":[{"name":"Set Up Seat Selection Flow","item":[{"name":"Create a trip with search","event":[{"listen":"test","script":{"id":"c0609b9e-e266-4ae2-8d91-d93eccd8df4f","exec":["var data = JSON.parse(responseBody)","postman.setEnvironmentVariable(\"tripAccessToken\", data.trip_access_token)","postman.setEnvironmentVariable(\"refreshToken\", data.refresh_token)","postman.setEnvironmentVariable(\"tripID\", data.trip_id)","postman.setEnvironmentVariable(\"searchID\", data.search_id)","postman.setEnvironmentVariable(\"tripStateHash\", data.trip_state_hash)","postman.setEnvironmentVariable(\"ticketID\", data.tickets[0].ticket_id)","postman.setEnvironmentVariable(\"passengerId0\", data.passengers[0].passenger_id);","postman.setEnvironmentVariable(\"passengerId1\", (data.passengers[1] || {}).passenger_id);"],"type":"text/javascript"}}],"id":"14758729-7225-4d3c-86be-d76d48ed2261","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"},{"key":"password","value":"<password>"}],"advancedConfig":[{"key":"showPassword","value":"<show-password>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"search\": {\n        \"seat\": {\n            \"search\": true,\n            \"markup\": {\n                \"currency\": \"USD\",\n                \"decimal_places\": 2,\n                \"amount\": 500\n            }\n        },\n        \"bag\": {\n            \"search\": true,\n            \"markup\": {\n                \"currency\": \"USD\",\n                \"decimal_places\": 2,\n                \"amount\": 700\n            }\n        }\n    },\n    \"language\": \"en-US\",\n    \"currency\": \"USD\",\n    \"country\": \"US\",\n    \"tickets\": [\n        {\n            \"status\": \"offered\",\n            \"journeys\": [\n                {\n                    \"segments\": [\n                        {\n                        \"departure_date\": \"2023-07-07\",\n                        \"marketing_airline\": \"NK\",\n                        \"marketing_flight_number\": \"69\",\n                        \"departure_airport\": \"MIA\",\n                        \"arrival_airport\": \"EWR\",\n                        \"arrival_time\": \"2023-07-07T14:20:00-04:00\",\n                        \"departure_time\": \"2023-07-07T17:21:00-04:00\",\n                        \"fare_basis\": null,\n                        \"fare_class\": \"B\",\n                        \"fare_family\": \"book_it\"\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    \"passengers\": [\n        {\n            \"passenger_type\": \"adult\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip","description":"<p>Follow along <a href=\"http://docs.gordiansoftware.com/seat-widget-configuration/#3-create-a-trip-with-gordian\">here</a></p>\n","urlObject":{"path":["v2.2","trip"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"14758729-7225-4d3c-86be-d76d48ed2261"},{"name":"Update trip and request Gordian fulfillment","id":"e4a23382-4b7f-40f9-8a2f-abac217f4bac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n  \"passengers\": [\n    {\n      \"passenger_id\": \"{{passengerId0}}\",\n      \"date_of_birth\": \"2000-02-02\",\n      \"first_names\": \"Vincent Willem\",\n      \"surname\": \"Van Gogh\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}","description":"<p><a href=\"http://docs.gordiansoftware.com/seat-widget-configuration/#8-update-trip-and-request-gordian-fulfillment\">Follow along here</a></p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e4a23382-4b7f-40f9-8a2f-abac217f4bac"},{"name":"Request fulfillment","id":"b6534ef5-19be-4903-a5b5-36e5c224f1be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"trip_state_hash\": \"{{tripStateHash}}\",\n  \"contact_details\": {\n    \"contact_details_type\": \"passenger\",\n    \"passenger_id\": \"{{passengerId0}}\",\n    \"email\": \"vincent@sample.com\",\n    \"phone_number\": \"441234567890\",\n    \"address\": {\n      \"city\": \"EDI\",\n      \"country\": \"GB\",\n      \"postal_code\": \"EH1 1AB\",\n      \"street_address_1\": \"Flat 12/3\",\n      \"street_address_2\": \"1234 James Road\"\n    }\n  },\n  \"passengers\": [\n    {\n      \"passenger_id\": \"{{passengerId0}}\",\n      \"first_names\": \"Vincent Willem\",\n      \"surname\": \"Van Gogh\",\n      \"date_of_birth\": \"2000-02-02\",\n      \"passenger_type\": \"adult\"\n    }\n  ],\n  \"tickets\": [\n    {\n      \"ticket_id\": \"{{ticketID}}\",\n      \"access_details\": {\n        \"record_locator\": \"ABCDEF\"\n      },\n      \"status\": \"booked\"\n    }\n  ],\n  \"payment_details\": {\n    \"payment_type\": \"gordian_settlement\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/fulfill","urlObject":{"path":["v2.2","trip","{{tripID}}","fulfill"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b6534ef5-19be-4903-a5b5-36e5c224f1be"},{"name":"Optional: Retrieve Search Results","id":"77ebb9a9-e4e0-43e6-90fc-a9a54afd37d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/search/{{searchID}}","description":"<p>This request is used to retrieve a product id for use when adding a product to a basket in the other optional endpoint</p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}","search","{{searchID}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"77ebb9a9-e4e0-43e6-90fc-a9a54afd37d9"}],"id":"9b11ac50-2cad-482c-9757-7ac31a1348fd","_postman_id":"9b11ac50-2cad-482c-9757-7ac31a1348fd","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}}},{"name":"Receive Callbacks","item":[{"name":"Setup Fulfillment Completed Callback","id":"1ea053cf-c2b2-438d-b53b-9b18f328f473","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"fulfillment_completed\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when a booking is fulfilled. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when a booking is fulfilled.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1ea053cf-c2b2-438d-b53b-9b18f328f473"},{"name":"Setup Cancellation Completed Callback","id":"34a1e3b8-1972-4796-9964-163908609055","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"cancellation_completed\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when a booking is cancelled. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when a booking is cancelled.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"34a1e3b8-1972-4796-9964-163908609055"},{"name":"Setup Involuntary Change Callback","id":"c45d9aaf-b93f-4f5a-9949-1d77fba4269e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"involuntary_change\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when an involuntary change takes place on a booking. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when an involuntary change takes place on a booking.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c45d9aaf-b93f-4f5a-9949-1d77fba4269e"},{"name":"List Callback Subscriptions","id":"eb11a3c8-66a5-458a-b367-3d96b85c744c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{baseUrl}}/v2.2/callback_subscription","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"eb11a3c8-66a5-458a-b367-3d96b85c744c"}],"id":"58119f9f-ddf5-4bbf-bc1d-68a806774360","description":"<p><a href=\"http://docs.gordiansoftware.com/implementation-guides/ancillaries/callbacks/\">The next step is to set up callback</a></p>\n","_postman_id":"58119f9f-ddf5-4bbf-bc1d-68a806774360","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}}}],"id":"a548e4b0-e099-4a99-969e-6de7a5f34fa9","description":"<p><a href=\"http://docs.gordiansoftware.com/seat-widget-overview/\">Seat Selection Using Gordian Widget Implementation Guide</a></p>\n","_postman_id":"a548e4b0-e099-4a99-969e-6de7a5f34fa9","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}}},{"name":"Bag Selection Using Gordian Widget","item":[{"name":"Set Up Bag Selection Flow","item":[{"name":"Create a trip with Gordian","event":[{"listen":"test","script":{"id":"c0609b9e-e266-4ae2-8d91-d93eccd8df4f","exec":["var data = JSON.parse(responseBody)","postman.setEnvironmentVariable(\"tripAccessToken\", data.trip_access_token)","postman.setEnvironmentVariable(\"refreshToken\", data.refresh_token)","postman.setEnvironmentVariable(\"tripID\", data.trip_id)","postman.setEnvironmentVariable(\"searchID\", data.search_id)","postman.setEnvironmentVariable(\"tripStateHash\", data.trip_state_hash)","postman.setEnvironmentVariable(\"ticketID\", data.tickets[0].ticket_id)","postman.setEnvironmentVariable(\"passengerId0\", data.passengers[0].passenger_id);","postman.setEnvironmentVariable(\"passengerId1\", (data.passengers[1] || {}).passenger_id);"],"type":"text/javascript"}}],"id":"e5b8959e-90f1-4bd7-9161-a3e85437a67e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"},{"key":"password","value":"<password>"}],"advancedConfig":[{"key":"showPassword","value":"<show-password>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"search\": {\n        \"bag\": {\n            \"search\": true,\n            \"markup\": {\n                \"currency\": \"EUR\",\n                \"decimal_places\": 2,\n                \"amount\": 2000\n            }\n        }\n    },\n    \"language\": \"en-US\",\n    \"currency\": \"USD\",\n    \"country\": \"US\",\n    \"tickets\": [\n        {\n            \"status\": \"booked\",\n            \"journeys\": [\n                {\n                    \"segments\": [\n                        {\n                        \"departure_date\": \"2023-07-07\",\n                        \"marketing_airline\": \"NK\",\n                        \"marketing_flight_number\": \"69\",\n                        \"departure_airport\": \"MIA\",\n                        \"arrival_airport\": \"EWR\",\n                        \"arrival_time\": \"2023-07-07T14:20:00-04:00\",\n                        \"departure_time\": \"2023-07-07T17:21:00-04:00\",\n                        \"fare_basis\": null,\n                        \"fare_class\": \"B\",\n                        \"fare_family\": \"book_it\"\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    \"passengers\": [\n        {\n            \"passenger_type\": \"adult\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip","description":"<p>All ancillary searches are linked to a trip, which represents a user’s trip.</p>\n<p>Follow the Implementation Guide <a href=\"http://docs.gordiansoftware.com/bag-widget-configuration/#3-create-a-trip-with-gordian\">here</a></p>\n","urlObject":{"path":["v2.2","trip"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e5b8959e-90f1-4bd7-9161-a3e85437a67e"},{"name":"Validate basket and charge user","id":"89f069c1-9273-4c2f-b23f-c8930e0df165","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/basket","description":"<p>Follow along <a href=\"http://docs.gordiansoftware.com/bag-widget-configuration/#7-validate-basket-and-charge-user\">here</a></p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}","basket"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"89f069c1-9273-4c2f-b23f-c8930e0df165"},{"name":"Update trip and request Gordian fulfillment","id":"99b49ef7-b259-4aeb-8114-b4886779c6b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n  \"passengers\": [\n    {\n      \"passenger_id\": \"{{passengerId0}}\",\n      \"date_of_birth\": \"2000-02-02\",\n      \"first_names\": \"Vincent Willem\",\n      \"surname\": \"Van Gogh\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}","description":"<p>Follow along <a href=\"http://docs.gordiansoftware.com/bag-widget-configuration/#8-update-trip-and-request-gordian-fulfillment\">here</a></p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"99b49ef7-b259-4aeb-8114-b4886779c6b6"},{"name":"Send Fulfillment Request","id":"d7f56c55-4b90-46b2-bb8a-dd23d7d78e0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"},{"key":"password","value":"<password>"}],"advancedConfig":[{"key":"showPassword","value":"<show-password>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"trip_state_hash\": \"{{tripStateHash}}\",\n  \"contact_details\": {\n    \"contact_details_type\": \"passenger\",\n    \"passenger_id\": \"{{passengerId0}}\",\n    \"email\": \"joe@bloggs.com\",\n    \"phone_number\": \"441234567890\",\n    \"address\": {\n      \"city\": \"EDI\",\n      \"country\": \"GB\",\n      \"postal_code\": \"EH1 1AB\",\n      \"street_address_1\": \"Flat 12/3\",\n      \"street_address_2\": \"1234 James Road\"\n    }\n  },\n  \"passengers\": [\n    {\n      \"passenger_id\": \"{{passengerId0}}\",\n      \"first_names\": \"Vincent Willem\",\n      \"surname\": \"Van Gogh\",\n      \"date_of_birth\": \"2000-02-02\",\n      \"passenger_type\": \"adult\"\n    }\n  ],\n  \"tickets\": [\n    {\n      \"ticket_id\": \"{{ticketID}}\",\n      \"access_details\": {\n        \"record_locator\": \"F6607873\"\n      },\n      \"status\": \"booked\"\n    }\n  ],\n  \"payment_details\": {\n    \"payment_type\": \"gordian_settlement\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/fulfill","description":"<p>Upon successfully charging the user and receiving the PNR, send Gordian a fulfillment request.</p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}","fulfill"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d7f56c55-4b90-46b2-bb8a-dd23d7d78e0a"},{"name":"Optional: Add an item to basket","id":"a46b344a-0826-49b9-8e7c-1644c87a081f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"[\n  {\n    \"product_id\": \"{{productId}}\",\n    \"passenger_id\": \"{{passengerId}}\",\n    \"quantity\": 1\n  }\n]","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/basket","description":"<p>This request simulates the functionality of adding a product to a basket. In a live workflow this is performed by the Gordian SDK</p>\n<p>Take a look at the other optional endpoint to request a product ID to add to the basket</p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}","basket"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a46b344a-0826-49b9-8e7c-1644c87a081f"},{"name":"Optional: Retrieve Search Results","id":"49448de0-4b69-4b50-bc1f-90359f9f5aba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/search/{{searchID}}","description":"<p>This request is used to retrieve a product id for use when adding a product to a basket in the other optional endpoint</p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}","search","{{searchID}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"49448de0-4b69-4b50-bc1f-90359f9f5aba"}],"id":"68b5c7f5-6897-4b1a-afde-281f94a368ad","_postman_id":"68b5c7f5-6897-4b1a-afde-281f94a368ad","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}}},{"name":"Receive Callbacks","item":[{"name":"Setup Fulfillment Completed Callback","id":"b68da581-2c71-494d-ae56-40d4654b77ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"},{"key":"password","value":"<password>"}],"advancedConfig":[{"key":"showPassword","value":"<show-password>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"fulfillment_completed\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when a booking is fulfilled. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when a booking is fulfilled.</p>\n","urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b68da581-2c71-494d-ae56-40d4654b77ce"},{"name":"Setup Cancellation Completed Callback","id":"790d2252-2550-4a8b-9da6-3127aa6c557a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"},{"key":"password","value":"<password>"}],"advancedConfig":[{"key":"showPassword","value":"<show-password>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"cancellation_completed\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when a booking is cancelled. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when a booking is cancelled.</p>\n","urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"790d2252-2550-4a8b-9da6-3127aa6c557a"},{"name":"Setup Involuntary Change Callback","id":"687ff880-7d36-4aeb-b5a9-d08ed74429b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"},{"key":"password","value":"<password>"}],"advancedConfig":[{"key":"showPassword","value":"<show-password>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"involuntary_change\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when an involuntary change takes place on a booking. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when an involuntary change takes place on a booking.</p>\n","urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"687ff880-7d36-4aeb-b5a9-d08ed74429b9"},{"name":"List Callback Subscriptions","id":"7891e04c-2743-44f1-bfd4-1128dc223662","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"},{"key":"password","value":"<password>"}],"advancedConfig":[{"key":"showPassword","value":"<show-password>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{baseUrl}}/v2.2/callback_subscription","urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7891e04c-2743-44f1-bfd4-1128dc223662"}],"id":"fbac5518-a286-473e-a762-9c9fc4d735fd","description":"<p>The next phase is about setting up callbacks so that you are notified when a booking is fulfilled (or fails). Callbacks need to be set up only once, regardless of how many different Gordian services you end up integrating in your journey flow.</p>\n","_postman_id":"fbac5518-a286-473e-a762-9c9fc4d735fd","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}}}],"id":"2e0c9af6-3802-4d6c-a610-b4d58d4e72d0","description":"<p><a href=\"https://desktop.postman.com/?desktopVersion=9.31.0&amp;userId=16742554&amp;teamId=1212671\">Seat Selection Using Gordian SDK Implementation Guide</a></p>\n","_postman_id":"2e0c9af6-3802-4d6c-a610-b4d58d4e72d0","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":true,"source":{"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","name":"Ancillaries Using the Gordian Widget","type":"folder"}}}],"id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{tripAccessToken}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"4405fa3c-d75d-4b32-ad29-1ee80da75b75","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"45bb9a6d-39e0-4d08-9086-2a7a41e4d82b","type":"text/javascript","exec":[""]}}],"_postman_id":"83f4d0a8-e994-49ab-a8a7-e929ede83843","description":""},{"name":"Ancillaries Using Gordian API","item":[{"name":"Offer Ancillaries In Booking Flow","item":[{"name":"Create Trip & Search","item":[{"name":"Create Trip with Search","event":[{"listen":"test","script":{"id":"57deaa04-f11b-466a-b695-ab27a6a170fa","exec":["var data = JSON.parse(responseBody)","postman.setEnvironmentVariable(\"tripAccessToken\", data.trip_access_token)","postman.setEnvironmentVariable(\"refreshToken\", data.refresh_token)","postman.setEnvironmentVariable(\"tripID\", data.trip_id)","postman.setEnvironmentVariable(\"tripStateHash\", data.trip_state_hash)","postman.setEnvironmentVariable(\"ticketID\", data.tickets[0].ticket_id)","postman.setEnvironmentVariable(\"searchID\", data.search_id)","postman.setEnvironmentVariable(\"passengerId\", data.passengers[0].passenger_id);"],"type":"text/javascript"}}],"id":"ac557c19-55fd-4c22-a61b-2266053ded9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"search\": {\n        \"seat\": {\n            \"search\": true,\n            \"markup\": {\n                \"amount\": 1200,\n                \"decimal_places\": 2,\n                \"currency\": \"USD\"\n        },\n        \"bag\": {\n            \"search\": true,\n            \"markup\": {\n                \"amount\": 800,\n                \"decimal_places\": 2,\n                \"currency\": \"USD\"\n        },\n        \"priority_boarding\": {\n            \"search\": true  \n        },\n        \"automatic_check_in\": {\n            \"search\": true\n        }\n    },\n    \"language\": \"en-US\",\n    \"currency\": \"USD\",\n    \"country\": \"US\",\n    \"tickets\": [\n        {\n            \"status\": \"offered\",\n\n            \"journeys\": [\n                {\n                    \"segments\": [\n                        {\n                            \"departure_date\": \"2023-07-07\",\n                            \"marketing_airline\": \"NK\",\n                            \"marketing_flight_number\": \"69\",\n                            \"departure_airport\": \"MIA\",\n                            \"arrival_airport\": \"EWR\",\n                            \"arrival_time\": \"2023-07-07T14:20:00-04:00\",\n                            \"departure_time\": \"2023-07-07T17:21:00-04:00\",\n                            \"fare_basis\": null,\n                            \"fare_class\": \"B\",\n                            \"fare_family\": \"book_it\"\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    \"passengers\": [\n        {\n            \"passenger_type\": \"adult\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip","description":"<p>Create a new trip to start working with the Gordian API. A <code>trip</code> represents a user's trip, whether they are still searching or have already booked a flight. All flight and ancillary searches are linked to a trip.  </p>\n<p>See more documentation here: <a href=\"https://docs.gordiansoftware.com/reference.html#tag/Trip/operation/create_trip\">https://docs.gordiansoftware.com/reference.html#tag/Trip/operation/create_trip</a></p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","trip"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ac557c19-55fd-4c22-a61b-2266053ded9c"},{"name":"Get Results of Search","event":[{"listen":"test","script":{"id":"b4818ea3-f5e5-4fa5-8195-b816c39514bc","exec":["var data = JSON.parse(responseBody)","if (data.results && data.results.products) {","    postman.setEnvironmentVariable(\"bagProductId\", Object.keys(data.results.products.bag || {\"\":\"\"})[0]);","    postman.setEnvironmentVariable(\"priorityBoardingProductId\", Object.keys(data.results.products.priority_boarding || {\"\":\"\"})[0]);","    postman.setEnvironmentVariable(\"seatProductId\", Object.keys(data.results.products.seat || {\"\":\"\"})[0]);","    postman.setEnvironmentVariable(\"automaticCheckInProductId\", Object.keys(data.results.products.automatic_check_in || {\"\":\"\"})[0]);","}",""],"type":"text/javascript"}}],"id":"6ab9c264-87ba-4bed-874c-be4c5dafd75c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/search/{{searchID}}","description":"<p>Get the search results of previously started search. Call this endpoint until you have success or failed status.  </p>\n<p>See more documentation here: <a href=\"https://docs.gordiansoftware.com/reference.html#tag/Search/operation/create_search\">https://docs.gordiansoftware.com/reference.html#tag/Search/operation/create_search</a></p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}","search","{{searchID}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6ab9c264-87ba-4bed-874c-be4c5dafd75c"}],"id":"f79b16d8-8b47-456d-90d6-03448a5049a2","_postman_id":"f79b16d8-8b47-456d-90d6-03448a5049a2","description":"","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}},{"name":"Add to Basket","item":[{"name":"Add Ancillary to Basket","id":"c3a8156c-ff8f-4376-abea-7b5740661811","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"[\n        {\n            \"product_id\": \"{{bagProductId}}\",\n            \"passenger_id\": \"{{passengerId}}\"\n        },\n        {\n            \"product_id\": \"{{seatProductId}}\",\n            \"passenger_id\": \"{{passengerId}}\"\n        },\n        {\n            \"product_id\": \"{{priorityBoardingProductId}}\",\n            \"passenger_id\": \"{{passengerId}}\"\n        },\n        {\n            \"product_id\": \"{{automaticCheckInProductId}}\",\n            \"passenger_id\": \"{{passengerId}}\"\n        }\n]","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/basket","description":"<p>This endpoint will add products (e.g., a piece of checked baggage) to the basket.  </p>\n<p>See more documentation here: <a href=\"https://docs.gordiansoftware.com/reference.html#tag/Basket/operation/add_to_basket\">https://docs.gordiansoftware.com/reference.html#tag/Basket/operation/add_to_basket</a></p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","trip","{{tripID}}","basket"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c3a8156c-ff8f-4376-abea-7b5740661811"}],"id":"d7a980cf-0cf9-41d9-9533-766dd4621965","_postman_id":"d7a980cf-0cf9-41d9-9533-766dd4621965","description":"","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}},{"name":"Request Fulfillment","item":[{"name":"Request Fulfillment","id":"a6f96a37-2f4b-4970-8cf7-0b44b2c6d8c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"trip_state_hash\": \"{{tripStateHash}}\",\n  \"contact_details\": {\n    \"contact_details_type\": \"passenger\",\n    \"passenger_id\": \"{{passengerId}}\",\n    \"email\": \"joe@bloggs.com\",\n    \"phone_number\": \"441234567890\",\n    \"address\": {\n      \"city\": \"EDI\",\n      \"country\": \"GB\",\n      \"postal_code\": \"EH1 1AB\",\n      \"street_address_1\": \"Flat 12/3\",\n      \"street_address_2\": \"1234 James Road\"\n    }\n  },\n  \"passengers\": [\n    {\n      \"passenger_id\": \"{{passengerID}}\",\n      \"first_names\": \"Vincent Willem\",\n      \"surname\": \"Van Gogh\",\n      \"date_of_birth\": \"2000-02-02\",\n      \"passenger_type\": \"adult\"\n    }\n  ],\n  \"tickets\": [\n    {\n      \"ticket_id\": \"{{ticketID}}\",\n      \"access_details\": {\n        \"record_locator\": \"BCDEFG\"\n      },\n      \"status\": \"booked\"\n    }\n  ],\n  \"payment_details\": {\n    \"payment_type\": \"gordian_settlement\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/fulfill","description":"<p>Upon successfully charging the user and receiving the PNR, send Gordian a fulfillment request.</p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","trip","{{tripID}}","fulfill"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a6f96a37-2f4b-4970-8cf7-0b44b2c6d8c9"}],"id":"78d43153-5dec-48e6-8649-b9efb6273351","_postman_id":"78d43153-5dec-48e6-8649-b9efb6273351","description":"","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}},{"name":"Receive Callbacks","item":[{"name":"Setup Fulfillment Completed Callback","id":"2112b4d3-70ee-4ac3-88e2-a02d6f804366","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"fulfillment_completed\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when a booking is fulfilled. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when a booking is fulfilled.</p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2112b4d3-70ee-4ac3-88e2-a02d6f804366"},{"name":"Setup Cancellation Completed Callback","id":"4418848c-47c7-4bd6-a1fb-913c1e675cf9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"cancellation_completed\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when a booking is cancelled. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when a booking is cancelled.</p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4418848c-47c7-4bd6-a1fb-913c1e675cf9"},{"name":"Setup Involuntary Change Callback","id":"8bbd15e3-0859-4634-be2e-2d81a70a1f7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"involuntary_change\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when an involuntary change takes place on a booking. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when an involuntary change takes place on a booking.</p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8bbd15e3-0859-4634-be2e-2d81a70a1f7e"},{"name":"List Callback Subscriptions","id":"693e9a7b-49c8-4a6a-802c-5f145a89ab6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{baseUrl}}/v2.2/callback_subscription","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"693e9a7b-49c8-4a6a-802c-5f145a89ab6a"}],"id":"81a71108-ec75-4a60-9c45-f197f1675342","description":"<p>Next phase is about setting up callbacks so that you are notified when a booking is fulfilled (or fails). Callbacks need to be set up only once, regardless of how many different Gordian services you end up integrating in your journey flow.</p>\n","_postman_id":"81a71108-ec75-4a60-9c45-f197f1675342","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}}],"id":"2897694c-f81c-45e1-bcc2-a2adfed228ba","event":[{"listen":"prerequest","script":{"id":"994525b7-fb4a-4fa6-9ed9-a42ffda88e81","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"5d1491ab-2dd1-449d-85b4-ab36c8fa10d9","type":"text/javascript","exec":[""]}}],"_postman_id":"2897694c-f81c-45e1-bcc2-a2adfed228ba","description":"","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}},{"name":"Offer Ancillaries Post Booking","item":[{"name":"Create Trip & Search","item":[{"name":"Create Trip with Search","event":[{"listen":"test","script":{"id":"57deaa04-f11b-466a-b695-ab27a6a170fa","exec":["var data = JSON.parse(responseBody)","postman.setEnvironmentVariable(\"tripAccessToken\", data.trip_access_token)","postman.setEnvironmentVariable(\"refreshToken\", data.refresh_token)","postman.setEnvironmentVariable(\"tripID\", data.trip_id)","postman.setEnvironmentVariable(\"tripStateHash\", data.trip_state_hash)","postman.setEnvironmentVariable(\"ticketID\", data.tickets[0].ticket_id)","postman.setEnvironmentVariable(\"searchID\", data.search_id)","postman.setEnvironmentVariable(\"passengerId\", data.passengers[0].passenger_id);"],"type":"text/javascript"}}],"id":"9566184d-c17c-4323-8e9b-673f1e2559df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"search\": {\n        \"bag\": {\n            \"search\": true,\n            \"markup\": {\n                \"amount\": 800,\n                \"decimal_places\": 2,\n                \"currency\": \"USD\"\n            }\n        },\n        \"seat\": {\n            \"search\": true,\n            \"markup\": {\n                \"amount\": 1200,\n                \"decimal_places\": 2,\n                \"currency\": \"USD\"\n            }\n        }\n       \n    },\n    \"language\": \"en-US\",\n    \"currency\": \"USD\",\n    \"country\": \"US\",\n    \"tickets\": [\n        {\n            \"status\": \"booked\",\n            \"journeys\": [\n                {\n                    \"segments\": [\n                        {\n                        \"departure_date\": \"2023-07-07\",\n                        \"marketing_airline\": \"NK\",\n                        \"marketing_flight_number\": \"69\",\n                        \"departure_airport\": \"MIA\",\n                        \"arrival_airport\": \"EWR\",\n                        \"arrival_time\": \"2023-07-07T14:20:00-04:00\",\n                        \"departure_time\": \"2023-07-07T17:21:00-04:00\",\n                        \"fare_basis\": null,\n                        \"fare_class\": \"B\",\n                        \"fare_family\": \"book_it\"\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    \"passengers\": [\n        {\n            \"passenger_type\": \"adult\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip","description":"<p>Create a new trip to start working with the Gordian API. A <code>trip</code> represents a user's trip, whether they are still searching or have already booked a flight. All flight and ancillary searches are linked to a trip.  </p>\n<p>See more documentation here: <a href=\"https://docs.gordiansoftware.com/reference.html#tag/Trip/operation/create_trip\">https://docs.gordiansoftware.com/reference.html#tag/Trip/operation/create_trip</a></p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","trip"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"9566184d-c17c-4323-8e9b-673f1e2559df"},{"name":"Get Results of Search","event":[{"listen":"test","script":{"id":"b4818ea3-f5e5-4fa5-8195-b816c39514bc","exec":["var data = JSON.parse(responseBody)","if (data.results && data.results.products) {","    postman.setEnvironmentVariable(\"bagProductId\", Object.keys(data.results.products.bag || {\"\":\"\"})[0]);","    postman.setEnvironmentVariable(\"priorityBoardingProductId\", Object.keys(data.results.products.priority_boarding || {\"\":\"\"})[0]);","    postman.setEnvironmentVariable(\"seatProductId\", Object.keys(data.results.products.seat || {\"\":\"\"})[0]);","    postman.setEnvironmentVariable(\"automaticCheckInProductId\", Object.keys(data.results.products.automatic_check_in || {\"\":\"\"})[0]);","}",""],"type":"text/javascript"}}],"id":"99c74470-4ae2-4a47-a902-1c6eb4147d2b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/search/{{searchID}}","description":"<p>Get the search results of previously started search. Call this endpoint until you have success or failed status.  </p>\n<p>See more documentation here: <a href=\"https://docs.gordiansoftware.com/reference.html#tag/Search/operation/create_search\">https://docs.gordiansoftware.com/reference.html#tag/Search/operation/create_search</a></p>\n","urlObject":{"path":["v2.2","trip","{{tripID}}","search","{{searchID}}"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"99c74470-4ae2-4a47-a902-1c6eb4147d2b"}],"id":"5a17bb37-3380-4f86-aab2-55fb3d52cbea","event":[{"listen":"prerequest","script":{"id":"6112674a-0d1e-439e-9662-30f63ef03294","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"1c8953aa-44de-43fe-a94b-ae93f523cf48","type":"text/javascript","exec":[""]}}],"_postman_id":"5a17bb37-3380-4f86-aab2-55fb3d52cbea","description":"","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}},{"name":"Add to Basket","item":[{"name":"Add Ancillary to Basket","id":"8e6441f3-272d-408c-b884-80db761ab3e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"[\n    {\n        \"product_id\": \"{{bagProductId}}\",\n        \"passenger_id\": \"{{passengerId}}\"\n    },\n    {\n        \"product_id\": \"{{seatProductId}}\",\n        \"passenger_id\": \"{{passengerId}}\"\n    }\n]","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/basket","description":"<p>This endpoint will add products (e.g., a piece of checked baggage) to the basket.  </p>\n<p>See more documentation here: <a href=\"https://docs.gordiansoftware.com/reference.html#tag/Basket/operation/add_to_basket\">https://docs.gordiansoftware.com/reference.html#tag/Basket/operation/add_to_basket</a></p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","trip","{{tripID}}","basket"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8e6441f3-272d-408c-b884-80db761ab3e1"}],"id":"d0814138-6d42-456c-8fb4-7ea28a9d58ed","_postman_id":"d0814138-6d42-456c-8fb4-7ea28a9d58ed","description":"","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}},{"name":"Request Fulfillment","item":[{"name":"Request Fulfillment","id":"50da85c2-9e96-4a6d-8af0-bed20fde5981","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"trip_state_hash\": \"{{tripStateHash}}\",\n  \"contact_details\": {\n    \"contact_details_type\": \"passenger\",\n    \"passenger_id\": \"{{passengerId}}\",\n    \"email\": \"joe@bloggs.com\",\n    \"phone_number\": \"441234567890\",\n    \"address\": {\n      \"city\": \"EDI\",\n      \"country\": \"GB\",\n      \"postal_code\": \"EH1 1AB\",\n      \"street_address_1\": \"Flat 12/3\",\n      \"street_address_2\": \"1234 James Road\"\n    }\n  },\n  \"passengers\": [\n    {\n      \"passenger_id\": \"{{passengerID}}\",\n      \"first_names\": \"Vincent Willem\",\n      \"surname\": \"Van Gogh\",\n      \"date_of_birth\": \"2000-02-02\",\n      \"passenger_type\": \"adult\"\n    }\n  ],\n  \"tickets\": [\n    {\n      \"ticket_id\": \"{{ticketID}}\",\n      \"access_details\": {\n        \"record_locator\": \"ABCDEF\",\n        \"ticket_number\": \"123459099\"\n      },\n      \"status\": \"booked\"\n    }\n  ],\n  \"payment_details\": {\n    \"payment_type\": \"gordian_settlement\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/trip/{{tripID}}/fulfill","description":"<p>Upon successfully charging the user and receiving the PNR, send Gordian a fulfillment request.</p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","trip","{{tripID}}","fulfill"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"50da85c2-9e96-4a6d-8af0-bed20fde5981"}],"id":"dd6b7ff7-ae1d-4d35-aac6-90a486af3fba","_postman_id":"dd6b7ff7-ae1d-4d35-aac6-90a486af3fba","description":"","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}},{"name":"Receive Callbacks","item":[{"name":"Setup Fulfillment Completed Callback","id":"b0401679-b759-41b6-90ca-f41b9138eeaf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"fulfillment_completed\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when a booking is fulfilled. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when a booking is fulfilled.</p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b0401679-b759-41b6-90ca-f41b9138eeaf"},{"name":"Setup Cancellation Completed Callback","id":"f6566815-14b0-447e-8f23-51faf380be75","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"cancellation_completed\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when a booking is cancelled. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when a booking is cancelled.</p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f6566815-14b0-447e-8f23-51faf380be75"},{"name":"Setup Involuntary Change Callback","id":"618f5714-1103-4f8b-a7ff-a9934b718869","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"delivery_method\": \"http\",\n  \"target\": \"https://example.com/callback\",\n  \"event_name\": \"involuntary_change\"\n}","options":{"raw":{"language":"json"}}},"url":"{{baseUrl}}/v2.2/callback_subscription","description":"<p>This request creates callbacks that will notify you when an involuntary change takes place on a booking. Options for delivery method are http and email. The target is the target endpoint or target email that should be alerted when an involuntary change takes place on a booking.</p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"618f5714-1103-4f8b-a7ff-a9934b718869"},{"name":"List Callback Subscriptions","id":"83b07739-4dba-4420-acea-7504bb008019","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{baseUrl}}/v2.2/callback_subscription","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}},"urlObject":{"path":["v2.2","callback_subscription"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"83b07739-4dba-4420-acea-7504bb008019"}],"id":"6b613588-fa3f-4c8e-87da-78e1537f3769","description":"<p>Next phase is about setting up callbacks so that you are notified when a booking is fulfilled (or fails). Callbacks need to be set up only once, regardless of how many different Gordian services you end up integrating in your journey flow.</p>\n","_postman_id":"6b613588-fa3f-4c8e-87da-78e1537f3769","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}}],"id":"fed4cc55-ad9e-4aa6-bcb6-fd23a50d05cf","event":[{"listen":"prerequest","script":{"id":"c2e47435-edd5-4d83-a1e9-a606c723a7dc","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"2696e7a3-7008-482e-9a7c-0b1e76b1cc3f","type":"text/javascript","exec":[""]}}],"_postman_id":"fed4cc55-ad9e-4aa6-bcb6-fd23a50d05cf","description":"","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":true,"source":{"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","name":"Ancillaries Using Gordian API","type":"folder"}}}],"id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68","description":"<p>The Gordian Ancillaries with API Postman collection exists to support partners integrating with the Gordian API.</p>\n<p>For help deciding which integration is right for you, please see the <a href=\"http://docs.gordiansoftware.com/determine-integration/\">Quick Start Guide</a></p>\n","auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"393aec02-2977-42cc-8a65-42ba9055bc98","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"74551126-6e02-4be2-b879-782f1bbda69a","type":"text/javascript","exec":[""]}}],"_postman_id":"9b67adfa-c7ae-42df-8b35-0cb94698cc68"}],"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"{{ENTER_YOUR_API_KEY}}"}]}},"event":[{"listen":"prerequest","script":{"id":"2fb04dfc-0d7c-41c7-bbfe-67835b0981ca","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"ddaf9c7a-0c8a-4b11-99c3-19de9d3a21a7","type":"text/javascript","exec":[""]}}]}