Available · v1
Quote Intelligence
Send a quote with your pricing rules, approval policy, and the customer's requirements. Get back exact pricing errors, discount exceptions, unmet requirements, and whether approval is needed.
- Exact decimal pricing arithmetic
- Your discount, product, and approval rules applied as written
- Customer requirements checked against the quoted lines
- Never invents a policy you didn't send
Request body
{
"quote_id": "Q-2026-0142",
"currency": "USD",
"lines": [
{
"product_id": "SRV-R740",
"name": "Rack server, 2U, dual CPU",
"quantity": 4,
"list_price": "8200.00",
"net_price": "6560.00",
"discount_percent": 20,
"attributes": {
"power_supply": "230V"
}
},
{
"product_id": "SUP-3Y",
"name": "3-year onsite support",
"quantity": 4,
"list_price": "900.00",
"net_price": "900.00"
},
{
"product_id": "RAIL-KIT",
"name": "Sliding rail kit",
"quantity": 2,
"list_price": "120.00",
"net_price": "120.00"
}
],
"total": "30080.00",
"pricing_rules": {
"max_discount_percent": 25,
"requires": [
{
"product_id": "SRV-R740",
"requires_product_id": "SUP-3Y"
}
]
},
"approval_policy": {
"discount_percent_over": 15,
"total_over": 50000
},
"customer_requirements": [
"Four servers",
"Onsite support for at least three years",
"A rail kit for every server"
]
}Response · 200 OK
{
"request_id": "req_Hq8mT3vLp6RzN1wK",
"status": "issues_found",
"recommended_action": "correct_quote",
"issues": [
{
"type": "requirement_mismatch",
"method": "model_assisted",
"explanation": "The quote doesn't meet the customer requirement: \"A rail kit for every server\"",
"evidence": [
"customer_requirements[2]"
]
}
],
"approval_required": true,
"approval_reasons": [
"A discount of 20% is above the 15% approval threshold."
],
"computed_total": "30080.00",
"missing_information": []
}The problem
Quote errors reach customers
Sales and CPQ teams build quotes with discounts, bundles, and configurations. A wrong net price, a missing required product, or an unapproved discount costs margin and credibility.
Use cases
Where teams use it
- CPQ validation
- Deal desk review
- Discount governance
- Partner quoting
- Renewal quotes
Limitations
- Checks only the rules and requirements you send.
- Requirements are judged against the quote's lines, not your product catalog.
- Advisory: it never submits or approves quotes.
Integrate
One HTTP call
const response = await fetch("https://kovca.io/api/v1/quotes/check", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.KOVCA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"quote_id": "Q-2026-0142",
"currency": "USD",
"lines": [
{
"product_id": "SRV-R740",
"name": "Rack server, 2U, dual CPU",
"quantity": 4,
"list_price": "8200.00",
"net_price": "6560.00",
"discount_percent": 20,
"attributes": {
"power_supply": "230V"
}
},
{
"product_id": "SUP-3Y",
"name": "3-year onsite support",
"quantity": 4,
"list_price": "900.00",
"net_price": "900.00"
},
{
"product_id": "RAIL-KIT",
"name": "Sliding rail kit",
"quantity": 2,
"list_price": "120.00",
"net_price": "120.00"
}
],
"total": "30080.00",
"pricing_rules": {
"max_discount_percent": 25,
"requires": [
{
"product_id": "SRV-R740",
"requires_product_id": "SUP-3Y"
}
]
},
"approval_policy": {
"discount_percent_over": 15,
"total_over": 50000
},
"customer_requirements": [
"Four servers",
"Onsite support for at least three years",
"A rail kit for every server"
]
}),
});
if (!response.ok) {
const { error, request_id } = await response.json();
throw new Error(`${error.code}: ${error.message} (${request_id})`);
}
const { status, recommended_action, issues, approval_required } = await response.json();Related APIs
- Invoice Intelligence
Reconcile invoices against purchase orders and receipts, and find discrepancies before payment approval.