Skip to main content

Cancel policy

Cancels a single policy; the other policies of the same order are not affected. Cancellation is always asynchronous and two-phase: the request puts the policy in cancellation_requested and the effective cancellation (canceled) only happens when the insurer confirms — until then, coverage remains in force.

To cancel all policies of an order at once, use the order cancellation on an emitted order.

Premium refund

At cancellation confirmation, QI Tech determines the basis and computes the refund amount automatically, over the gross premium (gross_premium_amount):

Cancellation momentRefund basis
Within 7 calendar days of the issuance confirmation (issued) — cooling-off rightFull premium refund.
After 7 daysRefund proportional to the unelapsed coverage period (pro rata).

The cancellation confirmation arrives through the cancellation webhook and the refund to the payer is executed by QI Tech.

Request

ENDPOINT
/v1/insurance/policies/{policy_key}/cancel
METHOD
POST

Path params

ParameterTypeRequiredDescription
policy_keystringrequiredPolicy key.
Request Body
{
"reason": "Customer requested cancellation"
}
FieldTypeRequiredDescription
reasonstringoptionalCancellation reason, recorded in the event trail and echoed in the cancellation webhook.

Response

STATUS
202
Response Body
{
"policy_key": "0b6e7c1a-9a4e-4c1e-b1d4-2f5a8c9e0d31",
"order_key": "5e2b3f60-7c4b-4c8e-9f1a-6d2e8b4a7c90",
"status": "cancellation_requested"
}

Completion arrives through the policy webhook with status canceled, and can be tracked through the policy retrieval.

Semantics per status

Current policy statusResult
issued202 — cancellation requested from the insurer.
cancellation_requested202 — idempotent: no second request is produced and the same body is returned.
issuance_requested409 — the policy is not in force yet. To undo the whole sale at this stage, cancel the order (the request is retained and cancels the policy automatically as soon as the issuance confirms); to cancel only this policy, wait for the issuance to confirm.
canceled409 — already canceled.
finished409 — the term has already ended.
another integration / nonexistent404

Possible errors

Every error (non-2xx) returns the standard body { "title", "description", "translation", "code" } — programmatically handle only the code field.

StatusCodeDescription
401 / 403Authentication or authorization failure.
404POL000001Policy nonexistent or belonging to another integration.
409POL000010The policy has already been canceled.
409POL000011The coverage term has already ended.
409POL000012The policy is not in force yet.
429Request limit exceeded — retry with backoff.
500QIT000500Internal error — the request is idempotent, retry the call.
503POL000030Service unavailable — the request is idempotent, retry the call.