This page describes basic steps for browsing available products, select one and create a quote, update the quote, specify sales discounts and commissions, accept and purchase the quote, and retrieve policy details.
Authenticate and retrieve an access token
Every request to Seamless needs to be authenticated. Please refer to the Authentication for more details of how to authenticate and get an access token.
Get available production versions for sales
To get production versions available for sales, please send an HTTP request to the Agency Configuration API as in the example below.
### Get active product versions GET {{base-url-configuration}}/api/v1/salesProducts/activeVersions?page[size]=100&page[number]=1 Authorization: {{access-token}} Accept: application/vnd.api+json
Sample response
HTTP/2 200 OK { "data": [ { "type": "salesProductVersions", "id": "4c2fbd66-301f-4885-96cb-d60be50b113c", "attributes": { "productVersionId": "productversion-0ea0d37a-9efd-08db-0bd7-c0600705dec3", "productId": "product-f3d34719-1987-08db-e9ed-98992bb3c0cf", "productName": "Travel", "salesChannelId": "saleschannel-d032531b-4664-08db-861e-ae779787d6cc", "salesChannelName": "Channel 1", "salesChannelReference": "Ref-1", "productIconId": "2cddad98-7e2c-4d58-b91b-42c1752663d4", "iconBackgroundColor": "#fff", "paymentOptions": null } }, ... ] }
Create a new-business quote
Send a request with request payload attributes as below.
policyHolderId
is the customer ID.salesChannel
,salesChannelName
,productVersionId
,productName
, andproductId
are data from the response of step Get available production versions for sales.organisationContext
is the authenticated user's organization context.
### Create a new-business quote POST {{base-url-sales}}/api/v1/quotes/createQuoteRequest Authorization: {{access-token}} Accept: application/vnd.api+json Content-Type: application/vnd.api+json { "data": { "type": "createQuoteRequests", "attributes": { "salesChannel": "saleschannel-d032531b-4664-08db-861e-ae779787d6cc", "salesChannelName": "Channel 1", "salesChannelReference": "Ref-1", "productVersionId": "productversion-0ea0d37a-9efd-08db-0bd7-c0600705dec3", "productName": "Travel", "productId": "product-f3d34719-1987-08db-e9ed-98992bb3c0cf", "organisationContext": "contemi-developers", "policyHolderId": "caa40751-80cd-4b18-9f0a-55b9af4be886" } } }
Sample response
HTTP/2 201 Created { "data": { "type": "quotes", "id": "quote-d697f696-1f3e-08dd-cc76-1eabd4dc87c4", "attributes": { "reference": "1106475", "description": "", "period": { "start": "2024-12-19T00:00:00+00:00", "end": "2025-12-18T23:59:59+00:00" }, ... } } }
Update quote answers
To update the quote answers, send a request with the payload as below.
quoteId
is the quote ID taken from previous.policyHolderId
andpolicyHolderData
are customer data.The answer tags and values in
changedAnswers
are varied and defined by the product version associated with the quote.
### Update quote answers POST {{base-url-sales}}/api/v1/quotes/updateQuoteRequest Authorization: {{access-token}} Accept: application/vnd.api+json Content-Type: application/vnd.api+json { "data": { "type": "updateQuoteRequests", "attributes": { "quoteId": "quote-4fbe88f2-1f3e-08dd-46e2-d1f2631efeca", "policyHolderId": "caa40751-80cd-4b18-9f0a-55b9af4be886", "policyHolderData": { "id": "caa40751-80cd-4b18-9f0a-55b9af4be886", "nin": "01019012345", "reference": "1000", "name": "Peter Customer", "dateOfBirth": "1990-01-01", "addrLine1": "123 Some St.", "addrPostCode": "0048", "city": "Oslo", "phoneNumber": "0987654321", "email": "peter.nguyen@contemi.com", "organizationContext": "contemi-developers", "addresses": { "addresses": [ { "id": "4cbae8df-8fb4-4e06-8259-6c8ec244d463", "address": "123 Some St.", "extraAddress": null, "city": "Oslo", "province": null, "postCode": "0048", "type": "visiting_address", "country": null } ] }, "customFields": { "preferredLanguage": null, "type": "pl" } }, "changedAnswers": { "InsuredPersonNameTag": "Sample Customer Name", "InsuredPersonDOBTag": "1990-12-15T00:00:00.000Z", "NoOfTravellers": "1", "AdditionalCoverTag": true, "LuggageExcessTag": "250" }, "quotedPeriodChange": { "start": "2024-12-19T00:00:00.000Z", "end": "2025-12-18T00:00:00.000Z" } } } }
Sample reqponse
HTTP/2 200 OK { "data": { "type": "quotes", "id": "quote-4fbe88f2-1f3e-08dd-46e2-d1f2631efeca", "attributes": { "reference": "1106467", "description": "Sample Customer Name", "period": { "start": "2024-12-19T00:00:00+00:00", "end": "2025-12-18T23:59:59+00:00" }, ... } } }