openapi: 3.2.0 info: title: HelloSafe Travel Insurance Conversion API version: 1.0.0 summary: Price and sell travel insurance from any travel product. description: 'A REST API that prices a trip against a multi-insurer travel insurance catalogue and returns comparable offers with their guarantees, then mints a tracked subscription link so the sale is attributed and paid as commission. Built for travel agencies, tour operators, OTAs, booking engines and travel apps that want to add travel insurance without becoming an insurer or holding a distribution licence. Every key ships with a free sandbox that returns deterministic fixtures in the exact live response shape, so an integration can be built and tested end to end before a single insurer is called. **Authentication** is a per-caller HMAC-SHA256 handshake, server to server. Send three headers: - `x-atlas-key-id`: your key id - `x-atlas-timestamp`: unix seconds, rejected beyond a 5 minute window - `x-atlas-signature`: `v2=` + hex HMAC-SHA256 of `${timestamp}.${METHOD}.${pathname}.${rawBody}`, keyed with your signing secret The signature covers the raw request body byte for byte. There is no CORS header on these responses: the signing secret must never reach a browser.' termsOfService: https://atlas.hellosafe.com/legal/terms contact: name: HelloSafe Atlas url: https://atlas.hellosafe.com/platform/api email: atlas@hellosafe.com x-logo: url: https://atlas.hellosafe.com/hellosafe-logo.svg license: name: Proprietary url: https://atlas.hellosafe.com/legal/terms servers: - url: https://atlas.hellosafe.com description: Production. Sandbox versus live is decided by your key, not by the URL. security: - AtlasKeyId: [] AtlasTimestamp: [] AtlasSignature: [] tags: - name: Conversion description: Server-to-server conversion postback. paths: /api/postback/conversion: post: tags: - Conversion operationId: postConversion summary: Report a conversion description: Signed server-to-server postback that reports a sale against a tracked link. The short code is re-resolved to a real tracked link and the partner code is checked before any commission is recorded. requestBody: required: true content: application/json: schema: type: object responses: '200': description: Conversion accepted. '401': $ref: '#/components/responses/Unauthorized' components: responses: Unauthorized: description: Missing, expired or invalid signature. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Error: type: object properties: error: type: string examples: - UNAUTHORIZED - BAD_LANGUAGE - NO_TRAVELLERS - TOO_MANY_TRAVELLERS - QUOTA_EXCEEDED required: - error securitySchemes: AtlasKeyId: type: apiKey in: header name: x-atlas-key-id description: Your key id, from partners.api_clients. AtlasTimestamp: type: apiKey in: header name: x-atlas-timestamp description: Unix seconds. Rejected beyond a 5 minute replay window. AtlasSignature: type: apiKey in: header name: x-atlas-signature description: v2=. externalDocs: description: Travel insurance API documentation url: https://atlas.hellosafe.com/platform/api