> For the complete documentation index, see [llms.txt](https://partner-docs.covergenius.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://partner-docs.covergenius.com/offers/api/reference/opt-out-offer.md).

# Opt Out Offer

## Opt-out Offer

> The Insurance opt-out workflow describes the API call that must be made in the case that XCover insurance is offered but not selected by the customer. The purpose of utilising the opt-out workflow is so Cover Genius can demonstrate conversion rate to the regulators ensuring the product and pricing is fit for purpose. It also enables XCover machine learning platform Brightwrite to deliver the optimal products at the optimal prices.

```json
{"openapi":"3.0.0","info":{"title":"Offers API","version":"1.0.0"},"servers":[{"url":"https://api.xcover.com/x"}],"security":[{"CustomAPISignature":[]}],"components":{"securitySchemes":{"CustomAPISignature":{"type":"apiKey","name":"Authorization","in":"header","description":"**Composite Authentication Scheme (Client Key, Date, and Signature)**\n\nThis scheme requires the client to provide **three** mandatory headers in every request:\n\n### 1. X-Api-Key (Client Key)\n* **Purpose:** Public identifier for the API consumer.\n* **Example:** `X-Api-Key: YOUR_API_KEY_HERE`\n\n### 2. Date (Timestamp)\n* **Purpose:** Timestamp used for generating the signature and preventing replay attacks.\n* **Format:** RFC 7231 format (e.g., in GMT).\n* **Example:** `Date: Sun, 09 Nov 2025 04:04:00 GMT`\n\n### 3. Authorization (Computed Signature)\n* **Purpose:** The cryptographic signature that verifies the request's authenticity and integrity.\n* **Format:** `SIGNATURE [authHeader]`\n\n**Signature Generation Logic:**\nThe `authHeader` value is derived from a cryptographic hash (e.g., HMAC-SHA256) of canonical request components (HTTP Method, Path, and the contents of the `Date` header), signed with the private **Client Secret**.\n"}},"parameters":{"ApiErrorVersion":{"name":"X-API-Error-Version","in":"header","required":false,"description":"Opt-in selector for the shape of non-2xx response bodies. `v1` (the default) returns the legacy error body. `v2` returns the structured error body described by `ErrorV2`. Matched case-insensitively. An absent, empty or unrecognised value falls back to `v1` and never fails an otherwise-valid request.","schema":{"type":"string","enum":["v1","v2"],"default":"v1"}}},"schemas":{"ErrorV1":{"type":"object","description":"Legacy error body. Returned unless `X-API-Error-Version: v2` is sent.","properties":{"type":{"type":"string"},"message":{"type":"string"},"errors":{"type":"object","nullable":true,"description":"Field-keyed validation errors, when applicable."}}},"ErrorV2":{"type":"object","description":"Structured error body, returned when `X-API-Error-Version: v2` is sent. `code`, `error_id`, `errors` and `metadata` are always present, the last two as an empty array/object when there is nothing to report, so they can be read unconditionally. `error_id` is null when the failing path minted no id (an auth or throttle rejection, say). Any field-keyed errors the `v1` body would have carried are preserved under `metadata.field_errors`.\n\nOne limit: an error that produces no framework response (a server-rendered 500) is not reshaped and stays in the `v1` form.","properties":{"type":{"type":"string"},"message":{"type":"string"},"code":{"type":"string","description":"Machine-readable error code for the response as a whole."},"error_id":{"type":"string","nullable":true,"description":"Identifier for this failure, null when none was minted."},"errors":{"type":"array","description":"Structured error entries. Empty when there is nothing to itemise.","items":{"$ref":"#/components/schemas/ErrorItemV2"}},"metadata":{"type":"object","description":"Supplementary context. Empty object when there is nothing to report. Field-keyed errors from the `v1` shape appear here under `field_errors`."}}},"ErrorItemV2":{"type":"object","description":"A single structured error entry.","properties":{"product_config_id":{"type":"string","nullable":true,"description":"Product configuration the error relates to, when applicable."},"quote_id":{"type":"string","nullable":true,"description":"Quote the error relates to, when applicable."},"code":{"type":"string","description":"Machine-readable error code for this item."},"details":{"type":"array","description":"Human-readable detail messages.","items":{"type":"string"}}}}}},"paths":{"/partners/{partner_code}/offers/{offer_id}/opt_out/":{"post":{"summary":"Opt-out Offer","description":"The Insurance opt-out workflow describes the API call that must be made in the case that XCover insurance is offered but not selected by the customer. The purpose of utilising the opt-out workflow is so Cover Genius can demonstrate conversion rate to the regulators ensuring the product and pricing is fit for purpose. It also enables XCover machine learning platform Brightwrite to deliver the optimal products at the optimal prices.","tags":["Opt-out Offer"],"parameters":[{"$ref":"#/components/parameters/ApiErrorVersion"}],"responses":{"204":{"description":"No Content","headers":{"Date":{"schema":{"type":"string"}},"Connection":{"schema":{"type":"string"}},"CF-Ray":{"schema":{"type":"integer"}},"CF-Cache-Status":{"schema":{"type":"string"}},"Allow":{"schema":{"type":"string"}},"Server":{"schema":{"type":"string"}},"Strict-Transport-Security":{"schema":{"type":"string"}},"cross-origin-opener-policy":{"schema":{"type":"string"}},"referrer-policy":{"schema":{"type":"string"}},"Vary":{"schema":{"type":"string"}},"Server-Timing":{"schema":{"type":"string"}},"Cf-Team":{"schema":{"type":"integer"}}}},"403":{"description":"Forbidden","headers":{"Date":{"schema":{"deprecated":false}},"Transfer-Encoding":{"schema":{"deprecated":false}},"Connection":{"schema":{"deprecated":false}},"CF-Ray":{"schema":{"deprecated":false}},"CF-Cache-Status":{"schema":{"deprecated":false}},"Allow":{"schema":{"deprecated":false}},"Server":{"schema":{"deprecated":false}},"Strict-Transport-Security":{"schema":{"deprecated":false}},"cross-origin-opener-policy":{"schema":{"deprecated":false}},"referrer-policy":{"schema":{"deprecated":false}},"Vary":{"schema":{"deprecated":false}},"Content-Encoding":{"schema":{"deprecated":false}},"Server-Timing":{"schema":{"deprecated":false}},"Cf-Team":{"schema":{"deprecated":false}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorV1"},{"$ref":"#/components/schemas/ErrorV2"}]}}}},"404":{"description":"Not Found","headers":{"Date":{"schema":{"deprecated":false}},"Transfer-Encoding":{"schema":{"deprecated":false}},"Connection":{"schema":{"deprecated":false}},"CF-Ray":{"schema":{"deprecated":false}},"CF-Cache-Status":{"schema":{"deprecated":false}},"Allow":{"schema":{"deprecated":false}},"Server":{"schema":{"deprecated":false}},"Strict-Transport-Security":{"schema":{"deprecated":false}},"cross-origin-opener-policy":{"schema":{"deprecated":false}},"referrer-policy":{"schema":{"deprecated":false}},"Vary":{"schema":{"deprecated":false}},"Content-Encoding":{"schema":{"deprecated":false}},"Server-Timing":{"schema":{"deprecated":false}},"Cf-Team":{"schema":{"deprecated":false}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ErrorV1"},{"$ref":"#/components/schemas/ErrorV2"}]}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://partner-docs.covergenius.com/offers/api/reference/opt-out-offer.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
