curl --request GET \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions \
--header 'Authorization: <api-key>'import requests
url = "https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"readyToBind": true,
"failures": []
}Check Bind Conditions
Runs the quote → policy conversion server-side and reports every unmet bind rule for a quote, before an underwriter commits the bind. This is a read-only diagnostic endpoint — no policy is created, the quote is not linked, and nothing is persisted.
The check produces the exact policy payload the bind would produce for this company, then evaluates the Policy entity invariants (the configured bind rules, framework and tenant) plus the structural policy-payload validation over it, and returns each failing condition’s message — the same message the bind’s rejection would carry.
Which quotes can be checked. newBusiness and renewal check full
policy conversion. endorsement checks billing readiness and invoice
conservation and returns checkScope: endorsement-billing; its other
transaction checks remain at bind. Cancellation and reinstatement
return 400 BindCheckUnsupportedQuoteType. A quote already in a terminal
state (bound or cancelled) returns 409 BindCheckQuoteNotBindable — it
cannot be bound, so there are no bind conditions to check.
Every rule is checked. A bind rule whose condition cannot be evaluated
ahead of the bind (it reads the wall clock or mints a value) is reported as
a failure whose message names the rule, as the bind would refuse it. A
green check (readyToBind: true) is never partial.
Rating and billing. Rating freshness appears in advisories, separately
from failures, and never makes readyToBind false. Persisted quote Bind and
Complete Quote do not require fresh rating or an override. When policy
invoicing is enabled, valid freshness declarations, billing current for the
retained rating, and invoices matching every target line remain required.
Matching posted invoices need no new plan. With invoicing disabled,
unavailable billing adds no invoice-readiness gate. Ordinary policy rules
and financial integrity still apply in both modes.
Required permission: quote.view
curl --request GET \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions \
--header 'Authorization: <api-key>'import requests
url = "https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"readyToBind": true,
"failures": []
}Authorizations
API key authentication. Send your raw API key as the Authorization header value with NO scheme prefix — Authorization: YOUR-API-KEY. Do NOT prefix it with Bearer or ApiKey, and do not use an X-API-Key header; those are not accepted.
Path Parameters
Company identifier
Quote identifier
Response
The bind-condition check result for the quote.
True only when failures is empty.
Every unmet bind condition, one entry per message. A rule the check could not evaluate appears here too, with a message naming it.
Show child attributes
Show child attributes
Non-blocking rating freshness information; never changes readyToBind.
Show child attributes
Show child attributes
Present for endorsements, whose check covers billing rather than full-policy conversion.
endorsement-billing 