[Seamless Help Center]

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 2 Next »

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 to the Quotation Service.

  • policyHolderId is the customer Id.

  • salesChannel, salesChannelName, productVersionId, productName, and productId 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 to the Quotation Service.

  • quoteId is the quote Id taken from the previous step.

  • policyHolderId and policyHolderData 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"
      },
      ...
    }
  }
}

Calculate quote price

To calculate a quote price, send a request to the Quotation Service.

### Calculate quote price
POST {{base-url-sales}}/api/v1/quotes/calculatePriceRequest
Authorization: {{access-token}}
Accept: application/vnd.api+json
Content-Type: application/vnd.api+json

{
  "data": {
    "type": "calculatePriceRequests",
    "attributes": {
      "quoteId": "quote-4fbe88f2-1f3e-08dd-46e2-d1f2631efeca",
      "salesDiscount": 0,
      "productCommission": 0,
      "salesCommission": 0,
      "underwritingAdjustmentReason": "",
      "underwritingAdjustment": 0
    }
  }
}

Sample response

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"
      },
      ...
    }
  }
}

Sales discount, product commission, sales commission, and underwriting adjustment can be specified in the request payload.

Polling quote price

Since quote price is calculated asynchronously, clients may need to poll for the quote price calculation complete.

To poll quote price, send a request like the example below, replace the :id path variable with the quote Id. The request can be repeated until reaching the max polling time or receiving a response with hasBeenCalculated attribute as true.

### Poll quote price
GET {{base-url-sales}}/api/v1/quotes/:id?fields[quotes]=premium
Authorization: {{access-token}}
Accept: application/vnd.api+json

Sample response

HTTP/2 200 OK
{
  "data": {
    "type": "quotes",
    "id": "quote-4fbe88f2-1f3e-08dd-46e2-d1f2631efeca",
    "attributes": {
      "premium": {
        "isBeingCalculated": false,
        "hasBeenCalculated": true,
        "isConstrained": false,
        "canBeAccessed": true
      }
    }
  }
}
  • No labels