---
title: "Create Offer"
method: POST
path: "/partners/{partner_code}/offers/"
tags: ["Create Offer"]
---

# Create Offer

`POST /partners/{partner_code}/offers/`

The Create Offer endpoint generates product offerings based on your business context and customer information. This endpoint uses a schema-driven approach to validate requests and returns one or more products with detailed pricing, product information, and content for display.

## Query parameters

- `active_only` boolean
- `include_content` boolean
- `extra_fields` string
- `exclude_offer_ids` string

## Request body

- object
  - `schema` string — Schema identifier for the offer type. If omitted, the default schema will be used (if one is configured). If no default schema is configured and this field is omitted, the request will fail with a validation error. Contact your Client Solutions Engineer (CSE) to confirm your schema configuration.
  - `customer` object, required — Customer information
    - `currency` string, required — Currency code (e.g., USD, AUD, EUR, GBP)
    - `language` string, required — Customer's preferred language (e.g., en)
    - `country` string, required — Customer's country code (e.g., US, AU, GB)
    - `region` string — Customer's region or state
    - `email` string, email — Customer's email address
    - `ip` string — Customer's IP address
    - `postcode` string — Customer's postal code
  - `context` object, required — Business context data required for offer selection and pricing. The specific fields required will be defined through the offer schema with the Client Solutions Engineer (CSE).
  - `partner` object — Partner information
    - `subsidiary` string — Partner subsidiary identifier
    - `transaction_id` string — Partner transaction identifier
    - `customer_id` string — Partner customer identifier
    - `metadata` object — Additional partner metadata
      - `session_id` string — Optional unique session identifier passed by the partner

## Response `200`

OK

- object
  - `id` string
  - `session_id` string
  - `offer_config_id` string
  - `offer_schema` string
  - `currency` string
  - `products` object[]
    - `id` string
    - `product_config_id` string
    - `type` string
    - `schema_url` string
    - `details` object
      - `policy_version_id` string
      - `start_date` string, date-time
      - `end_date` string, date-time
      - `finance` object
        - `price` object
          - `total_amount` number
          - `total_amount_without_tax` number
          - `total_amount_formatted` string
          - `total_amount_without_tax_formatted` string
        - `tax` object
          - `total_amount` number
          - `total_amount_formatted` string
          - `breakdown` object[], nullable — Per-tax breakdown of the total tax amount. Only populated when the tax extra field is requested (e.g. extra_fields=tax); null otherwise.
            - `tax_code` string
            - `tax_amount` number
            - `tax_amount_formatted` string
        - `surcharge` object
          - `total_amount` unknown
          - `total_amount_formatted` unknown
        - `commission` object
          - `total_amount` number
          - `total_amount_formatted` string
      - `pds_url` string, uri
      - `files` unknown[]
        - unknown
      - `extra_fields` object
      - `experiment` object
  - `product_rules` object[] — Product display and selection rules
    - `slug` string — Unique rule identifier
    - `product_ids` string[] — Array of product IDs in this rule
    - `initial_state` 'show' | 'hide' | 'disable' — Initial display state
    - `min_select` integer — Minimum number of products to select
    - `max_select` integer — Maximum number of products to select
    - `events` object[] — Event-driven rules. Can be empty array for terminal rules or single product rules.
      - `on` 'select' | 'deselect' | 'accept' | 'decline' — Trigger event
      - `action` 'show' | 'hide' | 'enable' | 'disable' — Action to perform
      - `target_rule` string — Target rule slug
  - `content` object
    - `schema_version` string — Content schema version
    - `locale` string — Content locale (e.g., en-AU, en-US)
    - `slug` string — Content slug identifier for the offer
    - `title` string — Main title for the offer
    - `heading` string — Heading text
    - `sub_heading` string — Sub-heading text
    - `disclaimer` string — Legal disclaimer text
    - `disclaimer_html` string — HTML formatted disclaimer
    - `price_unit` string — Price unit descriptor (e.g., per person)
    - `description` string — Offer description
    - `positive_cta` string — Text for accept/yes button
    - `negative_cta` string — Text for decline/no button
    - `negative_cta_warning` string — Warning shown when user declines
    - `required_message` string — Message shown when selection is required
    - `credibility_message` string — Trust/credibility message (deprecated, use credibility)
    - `credibility` string — Credibility message text
    - `credibility_sales_count` integer — Number for credibility metric
    - `products` object[] — Content for each product
      - `id` string — Product content identifier
      - `product_config_id` string — Product configuration identifier
      - `slug` string — Content slug identifier for this product
      - `locale` string — Content locale
      - `title` string — Product title
      - `description` string — Product description
      - `benefits` object — Product benefits with dynamic keys (benefit_1, benefit_2, etc.)
      - `exclusions` object — Product exclusions with dynamic keys (exclusion_1, exclusion_2, etc.)
      - `inclusions` object — Product inclusions with dynamic keys (inclusion_1, inclusion_2, etc.)
      - `disclaimer` string — Product-specific disclaimer
      - `disclaimer_html` string — HTML formatted product disclaimer
      - `credibility_badge` string — Credibility badge content (e.g., Most Popular)
  - `errors` object — Any errors encountered during offer creation

## Other responses

- `403` — Forbidden
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/covergenius/apis/offers-api.md) · [All operations](https://skmtc.net/covergenius/apis/offers-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/covergenius/offers-api/revisions/42536792b3f8/schema)
