Skip to main content

Quote

Returns a list of quote results containing premiums that have been calculated based on details provided in the request. These details must include client demographics, chosen benefit options, and the providers and products they are interested in. Each request generates a new quote. Quotes are not saved by the API.

Request


  • Type: POST
  • Path: /quote
  • URL (Test env): https://quote-engine-test.blackfin.tools/quote

Request payload is sent as HTTP JSON body.

Authentication

A security user token is required to authenticate the request source. BlackFin will generate this and provide it separately.

  • Header parameter name: userToken

JSON Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$defs": {
    "Benefit": 
    {
      "type": "object",
      "required": [
        "benefitId",
        "benefitProducts"
      ],
      "properties": {
        "benefitId": {
          "type": "integer",
          "description": "The id of the benefit to be quoted",
          "format": "int32"
        },
        "clientBenefitId": {
          "type": "string",
          "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
          "nullable": true
        },
        "loading": {
          "type": "number",
          "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
          "format": "double",
          "default": 1
        },
        "benefitProducts": {
          "type": "array",
          "items": {
            "required": [
              "productId",
              "providerId"
            ],
            "type": "object",
            "properties": {
              "providerId": {
                "type": "integer",
                "description": "The id of the provider whose product is being quoted.",
                "format": "int32"
              },
              "productId": {
                "type": "integer",
                "description": "The id of the product being quoted.",
                "format": "int32"
              }
            },
            "additionalProperties": false
          },
          "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
        }
      }
    }
  },
  "required": [
    "clients",
    "settings"
  ],
  "type": "object",
  "properties": {
    "comboQuoteId": {
      "type": "string",
      "nullable": true,
      "description": "Optional user-provided ID to indicate that the request is one of multiple requests sent to calculate a 'Combo Quote', allowing BlackFin to group these requests together for analytics purposes."
    },
    "clients": {
      "type": "array",
      "items": {
        "required": [
          "age",
          "clientBenefits",
          "employedStatus",
          "gender",
          "occupationId",
          "smoker"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "First name of the individual to be insured",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the indivual to be insured",
            "nullable": true
          },
          "age": {
            "type": "integer",
            "description": "Current age of the individual to be insured",
            "format": "int32"
          },
          "gender": {
            "type": "string",
            "description": "Gender of the individual to be insured: <br /><br />\r\n`F` – Female <br />\r\n`M` – Male"
          },
          "smoker": {
            "type": "boolean",
            "description": "Indicates whether the individual to be insured is a smoker: <br /><br />\r\n`false` – Non-smoker <br />\r\n`true` – Smoker <br />"
          },
          "employedStatus": {
            "type": "string",
            "description": "<br /> The employment status of the individual to be insured: <br /><br />\r\n            `Employed` <br />\r\n            `Self-employed` <br />\r\n            `Self-employed < 3 Years` <br />\r\n            `Non-earner` <br /><br />\r\n            This property is not required when quoting for Health Cover, Life Cover, Family Protection, and Trauma Cover",
            "default": "Employed"
          },
          "occupationId": {
            "type": "integer",
            "description": "The occupation class of the individual to be insured: <br /><br />\r\n`1` – Class 1 <br />\r\n`2` – Class 2 <br />\r\n`3` – Class 3 <br />\r\n`4` – Class 4 <br />\r\n`5` – Class 5 <br /><br />\r\nThis property is not required when quoting for Health Cover, Life Cover, Family Protection, or Trauma Cover.",
            "format": "int32"
          },
          "isChild": {
            "type": "boolean",
            "description": "<br /> Inidicates whether the individual to be insured is a child / dependent: <br /><br />\r\n            `false` – adult <br />\r\n            `true` – child / dependent",
            "default": false
          },
          "clientId": {
            "type": "string",
            "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
            "nullable": true
          },
          "clientBenefits": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "title": "1 – Health Cover",
                  "description": "benefitId=1",
                  "$ref": "#/$defs/Benefit",
                  "properties": {
                    "excess": {
                      "type": "integer",
                      "description": "Defines the excess amount (in NZD) payable by the client under Health Cover, for example: <br /><br />\r\n`0` – nil excess <br />\r\n`250` – $250 excess <br />\r\n`500` – $500 excess etc",
                      "format": "int32",
                      "nullable": true
                    },
                    "gpPrescriptions": {
                      "type": "boolean",
                      "description": "Toggle the optional GP & Prescriptions benefit (under Health Cover) on and off : <br /><br />\r\n`false` – not included(default value) <br />\r\n`true` – include GP & Prescriptions",
                      "nullable": true
                    },
                    "specialistsTest": {
                      "type": "boolean",
                      "description": "<br /> Toggle the optional Specialists & Tests benefit (under Health Cover) on and off :  <br /><br />\r\n            `false` – not included(default value) <br />\r\n            `true` – include Specialists & Tests",
                      "default": false,
                      "nullable": true
                    },
                    "specialistsTestExcess": {
                      "type": "integer",
                      "description": "Defines the excess amount (in NZD) payable by the client under the Specialists & Tests benefit, if applicable. For example: <br /><br />\r\n`0` – nil excess <br />\r\n`250` – $250 excess <br /><br />\r\nIf not provided, the primary `Excess` value will be used.",
                      "format": "int32",
                      "nullable": true
                    },
                    "dentalOptical": {
                      "type": "boolean",
                      "description": "<br /> Toggle the optional Dental & Optical benefit (under Health Cover) on and off : <br /><br />\r\n            `false` – not included(default value) <br />\r\n            `true` – include Dental & Optical",
                      "default": false,
                      "nullable": true
                    }
                  }
                },
                {
                  "title": "2 – Life Cover",
                  "type": "object",
                  "description": "benefitId=2",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 2
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                },
                {
                  "title": "1 – Health Cover",
                  "type": "object",
                  "description": "benefitId=1",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 1
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                },
                {
                  "title": "1 – Health Cover",
                  "type": "object",
                  "description": "benefitId=1",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 1
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                },
                {
                  "title": "1 – Health Cover",
                  "type": "object",
                  "description": "benefitId=1",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 1
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                },
                {
                  "title": "1 – Health Cover",
                  "type": "object",
                  "description": "benefitId=1",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 1
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                },
                {
                  "title": "1 – Health Cover",
                  "type": "object",
                  "description": "benefitId=1",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 1
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                },
                {
                  "title": "1 – Health Cover",
                  "type": "object",
                  "description": "benefitId=1",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 1
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                },
                {
                  "title": "1 – Health Cover",
                  "type": "object",
                  "description": "benefitId=1",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 1
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                },
                {
                  "title": "1 – Health Cover",
                  "type": "object",
                  "description": "benefitId=1",
                  "required": [
                    "benefitId",
                    "benefitProducts"
                  ],
                  "properties": {
                    "benefitId": {
                      "type": "integer",
                      "description": "The id of the benefit to be quoted",
                      "format": "int32",
                      "const": 1
                    },
                    "clientBenefitId": {
                      "type": "string",
                      "description": "Optional custom identifier provided by the requestor. This is returned with the result in the response.",
                      "nullable": true
                    },
                    "loading": {
                      "type": "number",
                      "description": "<br /> Additional percentage loading multiplier, for example: <br /><br /> \r\n            `1.0` – no additional loading <br /> \r\n            `1.5` – 50% additional loading <br /> \r\n            `2.0` – 100% additional loading",
                      "format": "double",
                      "default": 1
                    },
                    "benefitProducts": {
                      "type": "array",
                      "items": {
                        "required": [
                          "productId",
                          "providerId"
                        ],
                        "type": "object",
                        "properties": {
                          "providerId": {
                            "type": "integer",
                            "description": "The id of the provider whose product is being quoted.",
                            "format": "int32"
                          },
                          "productId": {
                            "type": "integer",
                            "description": "The id of the product being quoted.",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "An array of one or more Product objects containing the details of the providers and products to be quoted for the current beneft."
                    }
                  }
                }
              ]
            },
            "description": "An array of one or more Benefit objects containing the details of the insurance benefit(s) to be quoted for the current client. Not all properties are relevant for every benefit. <br /><br />\r\nSelect each `benefitId` from the dropdown below to see the relevant properties."
          }
        },
        "additionalProperties": false
      },
      "description": "An array of Client objects containing the details of the individuals to be insured"
    },
    "settings": {
      "required": [
        "paymentFrequency"
      ],
      "type": "object",
      "properties": {
        "paymentFrequency": {
          "type": "integer",
          "description": "The desired frequency for premium payments: <br /><br />\r\n`1` – Annually <br />\r\n`12` – Monthly <br />\r\n`26` – Fortnightly",
          "format": "int32"
        },
        "providerSettings": {
          "type": "array",
          "items": {
            "required": [
              "providerId"
            ],
            "type": "object",
            "properties": {
              "providerId": {
                "type": "integer",
                "description": "The id of the provider for which settings are being applied. <br /><br />\r\nNote: at the current time, only the provider AIA (id=11) has any applicable settings here.",
                "format": "int32"
              },
              "vitalityDiscountSelected": {
                "type": "boolean",
                "description": "Toggle the AIA Vitality scheme membership on and off for all clients. Members of AIA's Vitality scheme receive a discount on their insurance premium: <br /><br />\r\n`false` – clients do not wish to join AIA Vitality <br />\r\n`true` – clients wish to join (or are already members of) AIA Vitality <br /><br />\r\n See related `vitalityFeeSelected` property below",
                "default": false,
                "nullable": true
              },
              "vitalityFeeSelected": {
                "type": "boolean",
                "description": "Toggle the applicability of the AIA Vitality fee, based on whether the client(s) are already members of the scheme: <br /><br />\r\n`false` – clients are already paying AIA Vitality fee(existing members) <br />\r\n`true` – clients are not existing Vitality members, therefore the fee is applicable",
                "nullable": true
              }
            },
            "additionalProperties": false
          },
          "description": "An optional array of provider-specific settings. <br /><br />\r\nNot all providers have applicable settings(see below) however this may change in future.",
          "nullable": true
        }
      },
      "additionalProperties": false,
      "description": "Quote Settings object. The settings entered here will be defined to the overall quote (ie. all clients and benefits)"
    }
  },
  "additionalProperties": false
}
Examples
JSON Request Body
{
  "comboQuoteId": "string",
  "clients": [
    {
      "firstName": "string",
      "lastName": "string",
      "age": 0,
      "gender": "string",
      "smoker": true,
      "employedStatus": "Employed",
      "occupationId": 0,
      "isChild": false,
      "clientId": "string",
      "clientBenefits": [
        {
          "clientBenefitId": "string",
          "benefitId": 0,
          "loading": 1,
          "benefitProducts": [
            {
              "providerId": 0,
              "productId": 0
            }
          ]
        }
      ]
    }
  ],
  "settings": {
    "paymentFrequency": 0,
    "providerSettings": [
      {
        "providerId": 0,
        "vitalityDiscountSelected": false,
        "vitalityFeeSelected": true
      }
    ]
  }
}

 

Response


Success 

200: Success

JSON Schema

INSERT HERE

Examples
Success Response
{
  "results": [
    {
      "providerId": 0,
      "providerName": "string",
      "providerLogoUrl": "string",
      "hexColor": "string",
      "hasErrors": true,
      "policyFee": 0,
      "vitalityFee": 0,
      "totalPremium": 0,
      "clients": [
        {
          "clientId": "string",
          "clientName": "string",
          "products": [
            {
              "clientBenefitId": "string",
              "benefitId": 0,
              "productId": 0,
              "productName": "string",
              "descriptions": [
                "string"
              ],
              "premium": 0,
              "errors": [
                {
                  "id": 0,
                  "message": "string"
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "quoteId": "string",
  "paymentFrequency": "string",
  "calcTime": 0,
  "apiVersion": "string"
}


Error

400: Request body is null or invalid

JSON Schema

INSERT HERE

Examples
Error Response
{
  "data": {
    "response": {
      "code": 0,
      "message": "string"
    }
  }
}

403: userToken is invalid or no longer valid