GAP Samples

The following applies to all samples

In order to call the Qover APIs, you need to be known in our ecosystem. We will provide you with an APIkey that you need to supply in each request. An API key authenticates you as a given partner of Qover with an associated brand.

A call to Qover's API looks like this

{{Qover env URL}}/be/motor/gap/drafts?apikey={{apikey}}

The following settings are needed in the API request

Settings Value
Port 443

The following headers are needed in the request

Key Value
Content-Type application/json
Qover-Api-Version 1.0

Lead Operating model

This is a sample implementation of the Lead operating model. We will use a sample where we create a minimalist draft to generate a lead and an example with a draft that can be priced.

Let us assume that you have a sales tools that allows you to capture data from your clients. You do not have the possibility to deal with payments, so you want Qover to handle this on a website, customized for you.

Creating a draft

Method URL
POST {{Qover env URL}}/be/motor/gap/drafts?apikey={{apikey}}

Minimal payload to generate a lead

The lead email will be sent to the "contact": {"email": "email@email.com"} in the language "language" (allowed value are fr, nl and en).

The email will be addressed to "person" : {"firstName": "John"}

{
  "language": "fr",
  "policyholder": {
      "contact": {"email": "info@qover.be"},
      "person" : {"firstName": "John"}
  }
}

Minimal payload to get a price and send a lead

On top of the minimal payload data needed to generate a lead, extra data are required to calculate the price. The following sample gives a payload to create a draft that can be priced and a lead generated.

{
  "language": "fr",
  "risk": {
    "vehicle": {
      "details": {
        "code": "107055",
        "codeType": "NAT",
        "country": "BE",
        "vehicleType": "10"
      },
      "firstRegistrationYear": "2017",
      "invoice": {
        "purchasedPriceIncludingVat": {
          "currency": "EUR",
          "value": 2000000
        },
        "isPurchasedInLast6Months": true
      }
    },
    "drivers": [
      {
        "numberOfClaimsLast5Years": "0",
        "person": {
          "birthDate": "1980-10-10"
        }
      }
    ]
  },
  "terms": {
    "startDate": "2018-11-11",
    "requestPaperCopy": false
  },
  "policyholder": {
    "contact": {
      "email": "info@qover.be"
    },
    "person": {
      "firstName": "John"
    }
  }
}

Optionally, you can customize the CASCO factors that used by the system to calculate the price. You can define the car depreciation rate, the deductible and the number of months for which the casco insurance covers the full amount of the car price.

{
  "language": "fr",
  "risk": {
    "cascoFactors": {
      "deductible": {
        "currency": "EUR",
        "value": 100000
      },
      "depreciationRate": {
        "denominator": 10000,
        "numerator": 150
      },
      "fullProtectionDuration": 12
    },
    "vehicle": {
      "details": {
        "code": "107055",
        "codeType": "NAT",
        "country": "BE",
        "vehicleType": "10"
      },
      "firstRegistrationYear": "2017",
      "invoice": {
        "purchasedPriceIncludingVat": {
          "currency": "EUR",
          "value": 2000000
        },
        "isPurchasedInLast6Months": true
      }
    },
    "drivers": [
      {
        "numberOfClaimsLast5Years": "0",
        "person": {
          "birthDate": "1980-10-10"
        }
      }
    ]
  },
  "terms": {
    "startDate": "2018-11-11",
    "requestPaperCopy": false
  },
  "policyholder": {
    "contact": {
      "email": "info@qover.be"
    },
    "person": {
      "firstName": "John"
    }
  }
}

In all cases, you will find a draftID in the response. You need to store this draftID and use it for the subsequent requests.

"draftId": "36f433f8-f7af-40b1-b885-sample21309e"

Pricing the draft

Method URL
POST {{Qover env URL}}/be/motor/gap/drafts/{{draftId}}/price-requests?apikey={{apikey}}

API payload

{
}

Sending the lead

Method URL
POST {{Qover env URL}}/be/motor/gap/drafts/{draftId}/leads
{
    "transport": "EMAIL"
}

Vertical Integration

This is a sample implementation of the Vertical Integration. We will use a sample where we create a draft price it and then convert it into a contract.

A typical example is an integration in your own website that already sells insurances.

Creating a draft

The following sample gives a payload to create a draft that can be priced. This step is called when you have collected basic information via your website.

Method URL
POST {{Qover env URL}}/be/motor/gap/drafts?apikey={{apikey}}

API payload

{
  "language": "fr",
  "risk": {
    "vehicle": {
      "details": {
        "code": "107055",
        "codeType": "NAT",
        "country": "BE",
        "vehicleType": "10"
      },
      "firstRegistrationYear": "2017",
      "invoice": {
        "purchasedPriceIncludingVat": {
          "currency": "EUR",
          "value": 2000000
        },
        "isPurchasedInLast6Months": true
      }
    },
    "drivers": [
      {
        "numberOfClaimsLast5Years": "0",
        "person": {
          "birthDate": "1980-10-10"
        }
      }
    ]
  },
  "terms": {
    "startDate": "2018-11-11",
    "requestPaperCopy": false
  }
}

Optionally, you can customize the CASCO factors that used by the system to calculate the price. You can define the car depreciation rate, the deductible and the number of months for which the casco insurance covers the full amount of the car price.

{
  "language": "fr",
  "risk": {
    "cascoFactors": {
      "deductible": {
        "currency": "EUR",
        "value": 100000
      },
      "depreciationRate": {
        "denominator": 10000,
        "numerator": 150
      },
      "fullProtectionDuration": 12
    },
    "vehicle": {
      "details": {
        "code": "107055",
        "codeType": "NAT",
        "country": "BE",
        "vehicleType": "10"
      },
      "firstRegistrationYear": "2017",
      "invoice": {
        "purchasedPriceIncludingVat": {
          "currency": "EUR",
          "value": 2000000
        },
        "isPurchasedInLast6Months": true
      }
    },
    "drivers": [
      {
        "numberOfClaimsLast5Years": "0",
        "person": {
          "birthDate": "1980-10-10"
        }
      }
    ]
  },
  "terms": {
    "startDate": "2018-11-11",
    "requestPaperCopy": false
  }
}

In the response, you will find a draftID. You need to store this draftID and use it for the subsequent requests.

"draftId": "36f433f8-f7af-40b1-b885-sample21309e"

Request the legal documents

Before a prospect can actually buy an insurance product, the prospect needs to be able to read the General Terms and Conditions.

With this call, you get the location of the resources to display to the client as from the first page of you application.

Method URL
POST {{Qover env URL}}/be/motor/gap/drafts/{{draftId}}/documents?apikey={{apikey}}

API payload

{
}

Pricing the draft

With this call, you can fetch the price matrix for the product. You can display this price to the prospect on your website.

Method URL
POST {{Qover env URL}}/be/motor/gap/drafts/{{draftId}}/price-requests?apikey={{apikey}}

API payload

{
}

Extract of the API return

[
{
  "variant": "GAP12",
  "claimLimit": {
    "value": 500000,
    "currency": "EUR"
  },
  "totalPrice": {
    "value": 4368,
    "currency": "EUR"
  },
  "pricePerYear": {
    "value": 1868,
    "currency": "EUR"
  },
  "depreciationRate": {
    "numerator": 125,
    "denominator": 10000
  },
  "potentialShortfall": {
    "value": 400000,
    "currency": "EUR"
  },
  "requestPaperCopyFee": {
    "value": 0,
    "currency": "EUR"
  }
}
]

Retrieve and save the yearly price and paperFee selected by customer, it will be needed when you want to convert the draft into a contract. The keys to use and to save are pricePerYear.value and requestPaperCopyFee.value.

Update the draft with personal data

When the prospects likes the prices and makes his final selection, you gather the personal and administrative data. With this data, you update the draft.

Method URL
PUT {{Qover env URL}}/be/motor/gap/drafts/{draftId}

API payload


{
  "language": "fr",
  "risk": {
    "vehicle": {
      "details": {
         "code": "107055",
        "codeType": "NAT",
        "country": "BE",
        "vehicleType": "10"
      },
      "firstRegistrationYear": "2017",
      "invoice": {
        "purchasedPriceIncludingVat": {
          "currency": "EUR",
          "value": 2000000
        },
        "isPurchasedInLast6Months": true
      },
      "cascoInsurerCompany": "AXA Belgium",
      "identification": {
        "willProvideLater": true
      }
    },
    "drivers": [
      {
        "numberOfClaimsLast5Years": "0",
        "contact": {
          "email": "info@qover.com",
          "phone": "0483112255"
        },
        "person": {
          "birthDate": "1980-10-10",
          "firstName": "John",
          "lastName": "Doe"
        }
      }
    ]
  },
  "terms": {
    "startDate": "2018-11-11",
    "requestPaperCopy": false,
    "claimLimit": {
      "currency": "EUR",
      "value": 500000
    },
    "variant": "GAP36"
  },
  "policyholder": {
    "contact": {
      "email": "info@qover.com",
      "phone": "0483112255"
    },
    "address": {
      "city": "bruxelles",
      "country": "BE",
      "number": "44",
      "street": "Rue des palais",
      "zip": "1030"
    },
    "person": {
      "lastName": "Doe",
      "firstName": "John",
      "birthDate": "1980-01-01"
    }
  }
}

Request the legal disclaimers

Before a prospect can actually buy an insurance product, the prospect needs to explicitly accept the legal terms and conditions of the product. We provide these so that you do not have to worry about the exact wording. In addition to the text, you will get a reference that you need to provide back to us when converting the draft into a contract.

Method URL
GET {{Qover env URL}}/be/motor/gap/drafts/{{draftId}}/token-terms?language={fr}&apikey={{apikey}

API payload

{
}

API Return

{
  "userTerms": {
    "general": [
      "Lorem Ipsum"
    ],
    "important": [
      "Lorem Ipsum"
    ],
    "acceptance": [
      "Lorem Ipsum"
    ]
  },
  "version": "be-motor-gap-terms-v20171106",
  "tokenDeadline": "2017-11-10T12:50:26.238Z",
  "token": "jeJ8ynMlJA8yQkA7DIW9eveOrcIeULK5"
}

Retrieve the token from "token":"jeJ8ynMlJA8yQkA7DIW9eveOrcIeULK5" The token is valid for 24 hours

Converting the draft to a contract

Once the prospect has paid on your website, you can convert the draft into contract.

After a successful conversion, we will email the prospect and pass you the PDF of the contract.

POST

Method URL
POST {{Qover env URL}}/be//motor/gap/drafts/{draftId}/to-contract?apikey={{apikey}}

API payload

{
    "paymentTerm": "cashingAgent",
    "transactionAmount": {
        "currency": "EUR",
        "value": "{{pricePerYear.value + requestPaperCopyFee.value}}"
    },
    "userTermsToken": "{{token}}"
}