{ "aid": "sandbox.tripadd.com:main-1.8.0", "name": "TripAdd API", "type": "Index", "description": "TripAdd API enables you to create personalized travel ancillary product bundles and make orders.\n\n## Concepts\n\nA **Bundle** is a set of products defined by an ancillary manager. They can contain specific products or product categories. Bundles and markups are managed on the TripAdd [Partner Portal](https://dashboard.tripadd.com/).\n\nA **Bundle Offer** is a unique short-lived set of product offers created for a specific user and based on specific trip parameters. Bundle offers can be available from 15 minutes to 25 hours, depending on which products are included in the bundle. The offers later expire and have to be generated again to ensure up-to-date pricing and availability of products at the time of booking. The bundle expiration time is returned in the API response.\n\n### Pricing Types\n\nTripAdd supports the following pricing types for products in bundles: **passenger** and **group**. The passenger-type products will have individual pricing per passenger, while the group-type products will have a single price for the entire group/booking. When calculating the total order price, you should multiply the passenger-type product prices by the passenger count and add the group-type product prices directly.\n\n### Age Categories\n\nTripAdd uses these age categories: adult (12 years old and above), child (2-11 years old), and infant (up to 2 years old). Each product will specify which age categories it applies to.\n\n### Product Delivery\n\nProduct delivery information is returned in the create order response. TripAdd has a wide variety of products with different delivery options. Each product will contain its delivery information consisting of a short description, voucher codes, and/or links to vouchers or product pages. For example, the eSIM product delivery will have the following information:\n\n```json\n{\n \"description\": \"Your data plan will be automatically activated on {{arrivalDateTime}}. You can install the eSIM at any time before your departure.\"\n \"links\": [\n \"label\": \"Claim Now\",\n \"url\": \"https://app.tripadd.com/esim/jwmdyxemed\"\n ]\n}\n```\n\n## Integration Steps\n\n1. [Reach out](https://tripadd.com/) to acquire credentials to the TripAdd [Partner Portal](https://dashboard.tripadd.com/).\n\n2. Generate API tokens. On the partner portal, go to \"Integration\" → \"API Tokens\" and click \"Create Token\" to generate a new API token. Make sure to save the token because it cannot be retrieved in the dashboard again.\n\n3. Create a Bundle. Click \"New Bundle\" and follow the steps to set up a product bundle. At the \"Installation\" step, you will receive a unique \"Bundle ID\" which you will need for the API calls. Bundles created in \"Test Mode\" can only be used with \"Test Mode\" tokens.\n\n4. Call the \"Create Bundle Offer\" endpoint. Each time you want to present a bundle offer to the user, you should call this endpoint. It will check product availability and pricing based on trip parameters and create a unique offer.\n\n5. Call the \"Create Order\" endpoint. Once the user selects the products, completes the booking, and you successfully process the payment, call this API to purchase the products.\n\n## Authentication\n\nTripAdd API expects your access token as part of the `Authorization` header in your requests using the `Bearer` method. Send your token in the HTTP request header like this: `Authorization: Bearer `. The access token must be provided with all API calls. Access tokens created in \"Test Mode\" work only with data created in \"Test Mode\" and vice versa.\n\n**Notice:** Make sure you keep your access tokens secret and do not expose them to the client side code.\n\n## Environments\n\nTripAdd API is available on two environments: **sandbox** and **production**. The sandbox environment is meant for integration testing: the API matches production but the orders will not incur charges. Access tokens on these environments will be different.\n\n| Environment | API Base URL |\n|-------------|------------------------------------|\n| Sandbox | https://sandbox.tripadd.com/v1 |\n| Production | https://api.tripadd.com/v1 |\n\n## Front-end\n\nTripAdd bundles can be integrated into any checkout flow using your existing technology stack. You only need to make sure to allow HTML tags in product and delivery description fields.\n\nOptionally, if you use React in your front end, you can take advantage of our [**React component library**](https://www.npmjs.com/package/@tripadd/components). It is a collection of UI elements providing the easiest way to integrate the TripAdd bundles into your checkout path.\n\n# Changelog\n\n**1.8.0 (2024-01-17)** Added support for partial orders: you can now specify individual products for each passenger. Added `passenger_purchases` to the \"Create Order\" request. The previous request format is still supported but deprecated.\n\n**1.7.9 (2023-12-12)** Added `customer_ip` element to the `available_data` object in the \"Create Bundle Offer\" request.\n\n**1.7.8 (2023-10-22)** Updated `booking_reference` in CreateOrderRequest` to accept values from minimum 5 to maximum 16 character long.\n\n**1.7.7 (2023-10-16)** Added `confirmation_recipients` in the \"Create Order\" request, allowing you to specify the recipients for the order confirmation and order cancellation emails.\n\n**1.7.6 (2023-10-03)** Added `net_price` in the \"Create Bundle Offer\" API response.\n\n**1.7.5 (2023-08-24)** Added `delivery` to \"Create Order\" response, which contains information about product delivery to user.\n\n**1.7.4 (2023-08-22)** Added `terms_url` in the \"Create Bundle Offer\" API response. You can use it to link users to the Terms and Conditions for the products in the bundle.\n\n**1.7.3 (2023-08-09)** Added support for partial cancellations. It is now possible to cancel only part of the order by specifying product IDs.\n\n**1.7.2 (2023-08-04)** Added `support_url` in the \"Create Order\" API response.\n\n**1.7.1 (2023-06-21)** Added product cancellation details to the \"Product\" object (`cancellation_policy`, `refundable_until`).\n\n**1.7.0 (2023-06-21)** Added the detailed pricing information to the \"Create Bundle Offer\" response (`pricing`, `bundled_pricing`). Changed the `price` and `bundled_price` values to include the TripAdd fee and removed the separate `fee` object. The `price` field in the \"Create Order\" request will have to include the TripAdd fee, as the separate field for `fee` is removed.\n\n**1.6.1 (2023-05-05)** Made the customer's phone number optional in the \"Create Order\" request. To receive all the product offers that do require the customer's phone number, `customer_phone` has to be set as \"true\" in `available_data` in the \"Create Bundle Offer\" request.\n\n**1.6.0 (2023-05-03)** Added product delivery information to \"Create Order\" response. You can now find product instructions, coupon codes and links to vouchers in the response to construct your own product delivery email.\n\n**1.5.1 (2023-05-02)** Added `expires_at` in the BundleOffer response. It will inform you how long the bundle offer is available for the booking until it expires and has to be generated again.\n\n**1.5.0 (2023-04-14)** Renamed \"Create Bundle\" API to \"Create Bundle Offer\" API to improve distinction between bundles and bundle offers. The documentation reflects the new API but the old API paths and parameters are still being supported until migration is complete.\n\n**1.4.2 (2023-04-14)** Made `date_of_birth`, `gender`, `cabin_class` optional and removed `retail_price`.\n\n**1.4.1 (2023-04-13)** Made `outbound_flights` optional.\n\n**1.4.0 (2023-02-22)** Added `language` property on CreateBundleRequest object. The language property should be ISO 639-1 (language code) i.e. \"en\".\n\n**1.3.0 (2023-02-22)** Removed `price` from the bundles and added `bundled_price` on bundle products. You can now display how much individual products cost when purchased in full bundle.\n\n**1.2.0 (2023-01-27)** Added \"Cancel Order\" API.\n\n**1.1.1 (2022-11-28)** Added `cabin_class` on the flight object.\n\n**1.1.0 (2022-11-25)** Added \"Get Order\" API. It is now possible to fetch any previous order information by its ID.\n\n**1.0.4 (2022-11-24)** Made passenger email and phone fields optional. At least one (customer's) email and phone pair is still required to deliver the products after purchase.\n\n**1.0.3 (2022-11-16)** Moved passengers data to orders. The passenger data is now collected at the time of ordering and only the passenger age category is required to generate a product bundle. If possible the optional information should be provided for better recommendations.\n\n**1.0.2 (2022-11-07)** Made customer address optional. It is now possible to create an order without customer's address although any additional information will enable more products.\n\n**1.0.1 (2022-11-03)** Added optional fields for providing flight departure and arrival terminals. The additional information will enable more products.\n\n**1.0.0** Initial API release.\n", "url": "https://raw.githubusercontent.com/jentic/jentic-public-apis/refs/heads/main/apis/openapi/sandbox.tripadd.com/main/1.8.0/apis.json", "tags": [ "sandbox.tripadd.com", "main" ], "created": "2026-04-02", "modified": "2026-04-02", "specificationVersion": "0.19", "access": "3rd-Party", "maintainers": [ { "FN": "Jentic", "X-github": "jentic", "url": "https://github.com/jentic" } ], "apis": [ { "aid": "sandbox.tripadd.com:main-1.8.0", "name": "TripAdd API", "description": "TripAdd API enables you to create personalized travel ancillary product bundles and make orders.\n\n## Concepts\n\nA **Bundle** is a set of products defined by an ancillary manager. They can contain specific products or product categories. Bundles and markups are managed on the TripAdd [Partner Portal](https://dashboard.tripadd.com/).\n\nA **Bundle Offer** is a unique short-lived set of product offers created for a specific user and based on specific trip parameters. Bundle offers can be available from 15 minutes to 25 hours, depending on which products are included in the bundle. The offers later expire and have to be generated again to ensure up-to-date pricing and availability of products at the time of booking. The bundle expiration time is returned in the API response.\n\n### Pricing Types\n\nTripAdd supports the following pricing types for products in bundles: **passenger** and **group**. The passenger-type products will have individual pricing per passenger, while the group-type products will have a single price for the entire group/booking. When calculating the total order price, you should multiply the passenger-type product prices by the passenger count and add the group-type product prices directly.\n\n### Age Categories\n\nTripAdd uses these age categories: adult (12 years old and above), child (2-11 years old), and infant (up to 2 years old). Each product will specify which age categories it applies to.\n\n### Product Delivery\n\nProduct delivery information is returned in the create order response. TripAdd has a wide variety of products with different delivery options. Each product will contain its delivery information consisting of a short description, voucher codes, and/or links to vouchers or product pages. For example, the eSIM product delivery will have the following information:\n\n```json\n{\n \"description\": \"Your data plan will be automatically activated on {{arrivalDateTime}}. You can install the eSIM at any time before your departure.\"\n \"links\": [\n \"label\": \"Claim Now\",\n \"url\": \"https://app.tripadd.com/esim/jwmdyxemed\"\n ]\n}\n```\n\n## Integration Steps\n\n1. [Reach out](https://tripadd.com/) to acquire credentials to the TripAdd [Partner Portal](https://dashboard.tripadd.com/).\n\n2. Generate API tokens. On the partner portal, go to \"Integration\" → \"API Tokens\" and click \"Create Token\" to generate a new API token. Make sure to save the token because it cannot be retrieved in the dashboard again.\n\n3. Create a Bundle. Click \"New Bundle\" and follow the steps to set up a product bundle. At the \"Installation\" step, you will receive a unique \"Bundle ID\" which you will need for the API calls. Bundles created in \"Test Mode\" can only be used with \"Test Mode\" tokens.\n\n4. Call the \"Create Bundle Offer\" endpoint. Each time you want to present a bundle offer to the user, you should call this endpoint. It will check product availability and pricing based on trip parameters and create a unique offer.\n\n5. Call the \"Create Order\" endpoint. Once the user selects the products, completes the booking, and you successfully process the payment, call this API to purchase the products.\n\n## Authentication\n\nTripAdd API expects your access token as part of the `Authorization` header in your requests using the `Bearer` method. Send your token in the HTTP request header like this: `Authorization: Bearer `. The access token must be provided with all API calls. Access tokens created in \"Test Mode\" work only with data created in \"Test Mode\" and vice versa.\n\n**Notice:** Make sure you keep your access tokens secret and do not expose them to the client side code.\n\n## Environments\n\nTripAdd API is available on two environments: **sandbox** and **production**. The sandbox environment is meant for integration testing: the API matches production but the orders will not incur charges. Access tokens on these environments will be different.\n\n| Environment | API Base URL |\n|-------------|------------------------------------|\n| Sandbox | https://sandbox.tripadd.com/v1 |\n| Production | https://api.tripadd.com/v1 |\n\n## Front-end\n\nTripAdd bundles can be integrated into any checkout flow using your existing technology stack. You only need to make sure to allow HTML tags in product and delivery description fields.\n\nOptionally, if you use React in your front end, you can take advantage of our [**React component library**](https://www.npmjs.com/package/@tripadd/components). It is a collection of UI elements providing the easiest way to integrate the TripAdd bundles into your checkout path.\n\n# Changelog\n\n**1.8.0 (2024-01-17)** Added support for partial orders: you can now specify individual products for each passenger. Added `passenger_purchases` to the \"Create Order\" request. The previous request format is still supported but deprecated.\n\n**1.7.9 (2023-12-12)** Added `customer_ip` element to the `available_data` object in the \"Create Bundle Offer\" request.\n\n**1.7.8 (2023-10-22)** Updated `booking_reference` in CreateOrderRequest` to accept values from minimum 5 to maximum 16 character long.\n\n**1.7.7 (2023-10-16)** Added `confirmation_recipients` in the \"Create Order\" request, allowing you to specify the recipients for the order confirmation and order cancellation emails.\n\n**1.7.6 (2023-10-03)** Added `net_price` in the \"Create Bundle Offer\" API response.\n\n**1.7.5 (2023-08-24)** Added `delivery` to \"Create Order\" response, which contains information about product delivery to user.\n\n**1.7.4 (2023-08-22)** Added `terms_url` in the \"Create Bundle Offer\" API response. You can use it to link users to the Terms and Conditions for the products in the bundle.\n\n**1.7.3 (2023-08-09)** Added support for partial cancellations. It is now possible to cancel only part of the order by specifying product IDs.\n\n**1.7.2 (2023-08-04)** Added `support_url` in the \"Create Order\" API response.\n\n**1.7.1 (2023-06-21)** Added product cancellation details to the \"Product\" object (`cancellation_policy`, `refundable_until`).\n\n**1.7.0 (2023-06-21)** Added the detailed pricing information to the \"Create Bundle Offer\" response (`pricing`, `bundled_pricing`). Changed the `price` and `bundled_price` values to include the TripAdd fee and removed the separate `fee` object. The `price` field in the \"Create Order\" request will have to include the TripAdd fee, as the separate field for `fee` is removed.\n\n**1.6.1 (2023-05-05)** Made the customer's phone number optional in the \"Create Order\" request. To receive all the product offers that do require the customer's phone number, `customer_phone` has to be set as \"true\" in `available_data` in the \"Create Bundle Offer\" request.\n\n**1.6.0 (2023-05-03)** Added product delivery information to \"Create Order\" response. You can now find product instructions, coupon codes and links to vouchers in the response to construct your own product delivery email.\n\n**1.5.1 (2023-05-02)** Added `expires_at` in the BundleOffer response. It will inform you how long the bundle offer is available for the booking until it expires and has to be generated again.\n\n**1.5.0 (2023-04-14)** Renamed \"Create Bundle\" API to \"Create Bundle Offer\" API to improve distinction between bundles and bundle offers. The documentation reflects the new API but the old API paths and parameters are still being supported until migration is complete.\n\n**1.4.2 (2023-04-14)** Made `date_of_birth`, `gender`, `cabin_class` optional and removed `retail_price`.\n\n**1.4.1 (2023-04-13)** Made `outbound_flights` optional.\n\n**1.4.0 (2023-02-22)** Added `language` property on CreateBundleRequest object. The language property should be ISO 639-1 (language code) i.e. \"en\".\n\n**1.3.0 (2023-02-22)** Removed `price` from the bundles and added `bundled_price` on bundle products. You can now display how much individual products cost when purchased in full bundle.\n\n**1.2.0 (2023-01-27)** Added \"Cancel Order\" API.\n\n**1.1.1 (2022-11-28)** Added `cabin_class` on the flight object.\n\n**1.1.0 (2022-11-25)** Added \"Get Order\" API. It is now possible to fetch any previous order information by its ID.\n\n**1.0.4 (2022-11-24)** Made passenger email and phone fields optional. At least one (customer's) email and phone pair is still required to deliver the products after purchase.\n\n**1.0.3 (2022-11-16)** Moved passengers data to orders. The passenger data is now collected at the time of ordering and only the passenger age category is required to generate a product bundle. If possible the optional information should be provided for better recommendations.\n\n**1.0.2 (2022-11-07)** Made customer address optional. It is now possible to create an order without customer's address although any additional information will enable more products.\n\n**1.0.1 (2022-11-03)** Added optional fields for providing flight departure and arrival terminals. The additional information will enable more products.\n\n**1.0.0** Initial API release.\n", "image": "", "baseURL": "https://sandbox.tripadd.com/v1", "humanURL": "https://github.com/jentic/jentic-public-apis/tree/main/apis/openapi/sandbox.tripadd.com/main/1.8.0", "version": "1.8.0", "tags": [ "sandbox.tripadd.com", "main" ], "properties": [ { "type": "OpenAPI", "name": "OpenAPI definition", "url": "https://raw.githubusercontent.com/jentic/jentic-public-apis/refs/heads/main/apis/openapi/sandbox.tripadd.com/main/1.8.0/openapi.json", "mediaType": "application/openapi+json" }, { "type": "GitHubRepo", "url": "https://github.com/jentic/jentic-public-apis/tree/main/apis/openapi/sandbox.tripadd.com/main/1.8.0" } ], "contact": [ { "FN": "info@tripadd.com", "email": "info@tripadd.com" } ] } ] }