# Create Private Offer

Create a custom offer for a specific customer in GCP Marketplace, allowing flexible pricing and contract terms tailored to your buyer's needs.

---

## Overview

With Cloud Marketplace Private Offers, you can create a custom offer for a Kubernetes app, SaaS product, or virtual machine (VM) image for a specific customer. The offer enables your customer to purchase your Cloud Marketplace product at a negotiated price or discount.

:::danger
When the customer opens their offer, they are taken to a purchase page on Cloud Marketplace. The customer then confirms the purchase and signs up for your product. After sign-up, they use your product as if they signed up for a plan directly through Cloud Marketplace.
:::

A private offer consists of:

1. **Product Plan**: The base plan for the offer. Each plan uses a single [Product Pricing Model](/gcp-marketplace/pricing-model).
2. **Private Offer Pricing Model**: Customizes the Product Pricing Model for the selected plan. (Note: One Product Pricing Model can have multiple Private Offer Pricing Models.)
3. **Payment Schedule**: Defines how and when the customer pays (Prepay or Postpay).
4. **Contract Duration**: The length of time the offer is valid.

---

## Prerequisites

Before you proceed, make sure both your GCP and Suger environments are ready. This prevents errors during offer creation and approval.

**Google Cloud Marketplace** — collect the following buyer information:

- Exact GCP Billing Account ID
- Organization Name
- Contact Name and Contact Email

**Suger** — you need **Admin** access to the Suger Console. If you don't have access yet, ask your company admin to invite you to the organization. See [Manage Users and Roles](/get-started/account/).

---

## Create the Offer in Suger Console

### Step 1: Open the private offer flow

1. Go to the **Offer** page in the [Suger Console](https://console.suger.io/offer).
2. Click **+ New Private Offer** in the upper-right corner.
3. Select the **GCP Product** you want to base the offer on. This defines what is being sold.

### Step 2: Add basic information

- **Offer Name** — A descriptive title for your offer. Use a clear, consistent format, such as `CustomerName - ProductName - MM/YYYY`.
- **Salesforce Opportunity / HubSpot Deal** — Optional dropdowns that link this offer to an active deal in your CRM. This automatically syncs the offer's status back to your sales pipeline so your team can track it without leaving Salesforce or HubSpot.
- **GCP Billing Account ID** — The exact, unique identifier for the customer's Google Cloud billing account. This must be completely accurate — ask your buyer to provide it directly from their GCP console.
- **Organization Name** — The name of the buyer's company or organization (for example, `Acme Corp`).
- **Contact Name & Contact Email** — The name and email of the primary buyer contact who will review and accept the offer.
- **Notes for Customer** — Any additional instructions, context, or welcome messages you want the buyer to see when they open the offer.
- **(Sales info) Contact Name & Email** — The internal sales representative managing this offer. This usually auto-fills with your own Suger login details.
- **Notes for Your Team** — Internal notes visible **only** to your team. The buyer never sees this, so it's the place to track internal approvals, deal context, or special instructions.

### Step 3: Set pricing information

The fields in this section change depending on the plan type you select. Start with your plan, then work through the fields that appear.

- **Plan** — The specific service tier the buyer is purchasing.
- **Payment Recurrence** — Choose how often the buyer is billed:
  - **Monthly, Quarterly, or Yearly** — Standard recurring (Postpay) billing. The buyer is charged at the end of each period after the service is delivered. Auto-Renew is supported with these options.
  - **Custom** — Build a custom installment schedule with specific dates and amounts (GCP's Prepay model). Auto-Renew is not available with this option.
- **Expiry Date** — The deadline for the buyer to sign the offer. If this date passes without acceptance, the offer becomes void.
- **Enable future start date** _(optional)_ — Toggle on if you want the contract to begin on a specific future date rather than immediately upon acceptance. Useful for aligning with a buyer's budget cycle.
- **Offer Duration** — The length of the contract in months (for example, enter `12` for a one-year deal). Monthly (Postpay) contracts can run between 1 and 60 months.

The remaining pricing fields depend on the plan type. For the full breakdown of pricing models and how discounts apply, see [Subscription-Based Offers](#subscription-based-offers), [Usage-Based Offers](#usage-based-offers), and [Subscription + Usage Combined](#subscription--usage-combined) below.

- **Subscription plans** — Enter the **Monthly Flat Fee**, the fixed monthly amount the buyer pays. No usage fields apply.
- **Usage plans** — Select the **Usage Plan Pricing Model** (required), then set the **Monthly Commitment** and **Discount on Commitment** as applicable to the chosen model.
- **Subscription + usage plans** — Enter the **Monthly Flat Fee** (base fee), **Discount on Usage** (percentage discount on metered consumption beyond the base fee; leave blank if none), and any **Additional Usage Fee**. The **Metric discounts** table updates automatically to show the tier breakdown, list price, and discounted price per unit.
- **Free plans** — Enter `$0` or leave the **Monthly Flat Fee** blank, and `0%` for **Discount on Usage**. Free plans do not generate software charges.

:::info Amounts cannot be negative
GCP rejects a negative amount outright, so Suger catches it on the form instead of at submit time. A negative commit amount reports **"The amount must be 0 or greater."**, and a negative installment names the row it is on — for example "The amount of payment installment 2 must be 0 or greater." Zero is allowed; a free offer is perfectly valid.
:::

### Step 4: Define other information

- Select an **EULA** to define the end customer license agreement.
- Select a **Deal Type** to define the commercial structure of the offer.

Then click **Create Offer** to publish the private offer.

---

## Share the Offer

Once you click **Create**, the offer is securely sent to Google for a brief review before it can be shared with your customer. Here's how to track, share, and finalize the deal:

1. **Check the status.** Your offer initially shows as `Pending Google Approval`. Wait a few minutes and refresh until the status updates to `Created` — this means the offer URL is officially ready.
2. **Copy the offer link.** Open the created offer, then click **Copy offer URL**.

   ![GCP Copy Offer URL](images/create-a-gcp-marketplace-private-offer-1.png)

3. **Send to the buyer.** Share the link with your buyer so they can log into their GCP account, review the custom terms, and confirm the purchase. See [Accept Private Offer](/gcp-marketplace/accept-private-offer) for the buyer's steps.
4. **Provide final approval.** For SaaS products, once the buyer accepts the offer, the status changes to `Needs Your Approval`. You must confirm the offer to activate it, unless you have Automatic Offer Approval enabled.

The offer detail page also shows an **Offer Duration** row alongside the dates, so you can confirm the contract length that was sent to Google without reopening the form.

---

## Enable Automatic Offer Approval

By [enabling automatic offer approval](https://console.cloud.google.com/producer-portal/private-offers/settings), you can use scheduled or customer-acceptance start dates for SaaS product first offers. You can create or edit an offer's start date under **Start date**. Kubernetes and VM offers already have flexible start dates.

> ![Automatic Offer Approval](https://imagedelivery.net/pNNvR2_tZYczcQ3leBU_1A/63f49488-3477-4394-8f51-f891fc2dd500/square)

---

## Multiple Flat Fee Offers

:::tip
**April 2025:** Google Cloud Marketplace supports multiple **flat fee offers** for a single buyer. You can have several active private offers with the same customer, each with its own terms and duration.
:::

**To enable Multiple Flat Fee Offers:**

1. Go to the [GCP Producer Portal](https://console.cloud.google.com/producer-portal/private-offers/settings)
2. Select the **Multiple Orders** tab
3. Choose your product
4. Click **Enable Multiple Orders**

> ![Enable Multiple Flat Fee Offers](images/gcp_enable_multiple_flatfee_orders.jpg)

---

## Payment Schedules: Prepay vs Postpay

|               | **Prepay**              | **Postpay** |
| ------------- | ----------------------- | ----------- |
| Contract Term | 2–36 months             | 1–60 months |
| Auto Renew    | Not supported           | Supported   |
| Notes         | Not available in Brazil |             |

---

## Subscription-Based Offers

For subscription-based product plans, only the **Flat fee** pricing model is available, with Prepay or Postpay options.

|         | :moneybag: **Flat fee**                                                                                                                |
| ------- | :------------------------------------------------------------------------------------------------------------------------------------- |
| Prepay  | Customize: <ul><li>Contract duration (months)</li><li>Installment schedule</li></ul> ![Prepay Example](images/subscription_prepay.png) |
| Postpay | Customize: <ul><li>Contract duration (months)</li><li>Monthly flat fee</li></ul> ![Postpay Example](images/subscription_postpay.png)   |

---

## Usage-Based Offers

For usage-based product plans, three private offer pricing models are available. The first two are types of [Committed Use Discount (CUD)](#committed-use-discount-cud):

- **Commit discount with additional usage at list price**
- **Commit with all usage discounted**
- **Usage discount only**

Each model supports Prepay or Postpay (except Usage discount only, which is Postpay only).

### Commit Discount with Additional Usage at List Price

The customer commits to a minimum spend and receives a discount on this commitment. Overage is charged at list price.

|         | :moneybag: **Commit discount with additional usage at list price**                                                                                                               |
| ------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Prepay  | Customize: <ul><li>Contract duration (months)</li><li>Installment schedule</li><li>Discount on commitment</li></ul> ![Prepay Example](images/usage_commit_list_price_prepay.png) |
| Postpay | Customize: <ul><li>Contract duration (months)</li><li>Monthly commitment</li><li>Discount on commitment</li></ul> ![Postpay Example](images/usage_commit_list_price_postpay.png) |

### Commit with All Usage Discounted

The customer commits to a minimum spend and receives a discount on all usage, with optional granular discounts per usage metric.

|         | :moneybag: **Commit with all usage discounted**                                                                                                                                                                                       |
| ------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Prepay  | Customize: <ul><li>Contract duration (months)</li><li>Installment schedule</li><li>Discount on usage</li><li>Specific discount per usage metric (optional)</li></ul> ![Prepay Example](images/usage_commit_all_discounted_prepay.png) |
| Postpay | Customize: <ul><li>Contract duration (months)</li><li>Monthly commitment</li><li>Discount on usage</li><li>Specific discount per usage metric (optional)</li></ul> ![Postpay Example](images/usage_commit_all_discounted_postpay.png) |

### Usage Discount Only

The customer pays a discounted rate for usage, with no commitment. Only Postpay is supported.

|         | :moneybag: **Usage discount only**                                                                                                                                                                 |
| ------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Prepay  | Not applicable                                                                                                                                                                                     |
| Postpay | Customize: <ul><li>Contract duration (months)</li><li>Discount on usage</li><li>Specific discount per usage metric (optional)</li></ul> ![Postpay Example](images/usage_discount_only_postpay.png) |

#### Committed Use Discount (CUD)

With a CUD, the customer receives a discount in exchange for a minimum spend commitment. The customer pays the commitment regardless of usage. The difference between the two CUD models is whether the discount applies to overage.

> ![CUD Comparison](https://user-images.githubusercontent.com/98442625/212490181-7a04b23d-1888-432b-9a9d-7c5e003e2cff.png)

##### Free credit and unused commitment (Prepay CUD only)

On a **Prepay** CUD offer — either **Commit discount with additional usage at list price** or **Commit with all usage discounted** — two extra controls appear above the payment-installment rows. They are schedule-wide choices that change the columns on the rows below, and they exist only on these plans because GCP models both on the commitment itself.

**Free credit**

Turn the **Free credit** switch on to grant a one-time credit on top of each installment's commitment balance, then enter the amount per installment. Turning the switch back off clears any credit already entered. On a replacement offer, installments that are already locked stay read-only here, the same as their amount and discount.

**Which type of unused commitment rule would you like to apply?**

This decides what happens to an installment's unused commitment — and to any partner-sponsored free credit — when the next installment starts:

| Rule | Effect |
| ---- | ------ |
| **Rollover** | The unused balance carries into the next installment. This is GCP's default. |
| **Expire** | The unused balance is discarded at the start of each following installment. |
| **Custom** | Decide per installment. Each row gains an **Expire** checkbox that governs the transition into the *next* row. |

The first installment never discards anything, since nothing precedes it.

:::warning Expire discards free credit too
"Expire" is not limited to the commitment. All unused and carried-over commitment **and partner-sponsored free credit** expire together. If you intend the credit to survive, choose **Rollover**, or use **Custom** and leave the relevant transitions unchecked.
:::

The offer's detail page carries read-only **Free Credit** and **Unused Commitment** columns on its payment-installments table, so you can confirm what was actually sent to GCP. They appear on different conditions: **Free Credit** only once an installment actually carries a credit, while **Unused Commitment** appears on every Prepay CUD offer — the plan carries a commitment whatever rule you chose, **Rollover** included.

Each row of that column reports what happens to the balance *leaving* it, matching both the GCP producer portal and the **Expire** checkbox on that row. The last row therefore always reads "Expire all at offer end date": the term ends there, so nothing can roll further.

![The Prepay CUD payment-installments section — the Free credit switch turned on and the Rollover / Expire / Custom segmented control on the row above, and an installment table that gains a per-row Free credit input once the switch is on](images/72-prepay-cud-installments.png)

---

## Subscription + Usage Combined

If your customers pay both a flat fee and additional usage charges, use the **Flat fee with usage discount** model. The flat fee includes a usage allowance; overage can be discounted.

|         | :moneybag: **Flat fee with usage discount**                                                                                                                                                                                       |
| ------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Prepay  | Customize: <ul><li>Contract duration (months)</li><li>Installment schedule</li><li>Discount on usage</li><li>Specific discount per usage metric (optional)</li></ul> ![Prepay Example](images/flat_fee_usage_discount_prepay.png) |
| Postpay | Customize: <ul><li>Contract duration (months)</li><li>Monthly flat fee</li><li>Discount on usage</li><li>Specific discount per usage metric (optional)</li></ul> ![Postpay Example](images/flat_fee_usage_discount_postpay.png)   |

---

## Metric Discounts Display

When creating a private offer for a plan that includes usage fees, you can view a detailed breakdown of how discounts apply to each usage metric and pricing tier.

:::tip
Metric discounts are available for **Usage-based** and **Subscription + Usage** plans. They are **not** shown for pure subscription plans or for the "Commit discount with additional usage at list price" model (since that model only discounts the commitment amount, not individual usage metrics).
:::

### How It Works

After entering a discount percentage, click the **Metric discounts** button to expand a detailed pricing table. The table shows, for each usage metric:

- **Metric name** (e.g., "API Calls", "Storage GB")
- **Tier information** — tier label, count range, list price per unit, and discounted price per unit

Discounted prices are calculated in real time as you adjust the discount percentage.

**Postpay:** The metric discounts section appears below the discount percentage input.

> ![Metric Discounts Postpay](images/metric_discounts_postpay.jpg)

**Prepay:** The metric discounts appear per payment installment, since each installment can have a different discount percentage.

> ![Metric Discounts Prepay](images/metric_discounts_prepay.jpg)

---

## Custom Feature List

When creating a private offer for a subscription-based plan (**Subscription** or **Subscription + Usage**), you can customize the feature list to tailor it for a specific deal — without changing the underlying product plan.

### How It Works

1. Select a subscription-based pricing plan. The feature list automatically populates with the plan's default features.
2. Click the **Update features** button to open the edit dialog.
3. For each feature, choose a status:
   - **Included** — feature is included in the offer
   - **Not Included** — feature is excluded
   - **N/A** — not applicable
   - **Add Details** — enter custom text (up to 100 characters)
4. Click **Save** to apply your changes. Modified features are marked with a checkmark icon.

> ![Custom Feature List](images/custom_feature_list.jpg)

> ![Custom Feature List Edit Dialog](images/custom_feature_list_edit.jpg)

---

## Replacement Offer

A replacement offer lets you renew or upsell an active entitlement. Once accepted, the buyer's entitlement is updated immediately.

:::tip
You cannot change the product, plan, or price model of the existing private offer. You can only change payment schedule, amount, discount, and duration.
:::

**Required info:**

- **Expiry Date**: When the new offer ends.
- **Start Date**: When the new offer begins (can be a future date; defaults to immediate after acceptance).
- **Payment Schedule**: Prepay or Postpay (can differ from the original offer).
- **End User License Agreement (EULA)**: Select or upload your custom contract.

:::warning
The expiry or start date must be before the first future payment installment date of the existing offer.
:::

### When to replace instead of creating a new offer

If you start a **new** offer for a buyer who already has an active entitlement, Suger no longer blocks you — it asks first. An **Active Entitlement Detected** dialog names the billing account and suggests that an amendment may be more appropriate:

- **Proceed** — create the new offer anyway.
- **Go back** — return to the form so you can build a replacement offer instead.

A replacement offer is usually the right choice when you are renewing or upselling the same buyer, because it updates the existing entitlement rather than leaving two offers side by side.

You can also amend an accepted offer that has **no entitlement yet** — Suger links the new offer to the live base offer directly, so you don't have to wait for the entitlement to appear.

:::info Native Renewal eligibility
GCP treats a replacement as a **Native Renewal** only when the entitlement it replaces ran for at least **9 months**, and — if that entitlement has already expired — the replacement comes within **90 days** of its expiration. When those rules are not met, Suger falls back to a **New** deal type and records a warning on the offer rather than failing the create.

Integrations that create entitlements from offers (MaaS) are exempt: GCP applies neither the minimum-duration nor the post-expiration rule to them, so a Native Renewal selection is left as you set it.
:::

### Replacement Offer: Prepay

- **Payment Installment**: Specify amount, discount, and date for each installment (past installments cannot be changed).
- **Offer End Date**: Must be set.

> ![Replacement Offer Prepay](images/replacement_offer_prepay.png)

### Replacement Offer: Postpay

- **Monthly Flat Fee**: Set the monthly fee.
- **Discount on Usage**: Set the usage discount.
- **Enable Auto Renew**: Optionally enable auto-renewal.
- **Offer Duration**: Set duration in months.

> ![Replacement Offer Postpay](images/replacement_offer_postpay.png)

---

## Professional Service Offer

Create a private offer for a professional service product, allowing you to tailor pricing, payment schedules, and contract terms for your customer. This section outlines the required information and available payment options.

**Required information:**

- **Billing Account ID:** Buyer's billing account
- **Organization Name:** Buyer's organization
- **Contact:** Buyer's name and email
- **Plan:** Select the price plan
- **Start Date:** Specify when the offer begins
- **Offer Duration:** Specify how long the offer is valid
- **SOW (Statement of Work):** Attach or reference the SOW agreement
- **SOW Name:** (Optional) Name for the SOW
- **EULA:** Select or upload your custom contract
- **Deal Type:** Specify the deal type

**Payment schedule options:**

- **Prepay:** Buyer pays on a custom installment schedule
  - **Installment schedule:** Define payment dates and amounts
  - **Commit Price:** Set the total committed price
  - **Discount on Usage:** Specify any usage-based discounts

> ![Professional Service Offer Prepay](images/professional_service_prepay.png)

- **Postpay:** Buyer pays monthly after service delivery
  - **Monthly flat fee:** Set the recurring monthly fee
  - **Discount on Usage:** Specify any usage-based discounts
  - **Enable Auto Renew:** Optionally allow the contract to auto-renew

> ![Professional Service Offer Postpay](images/professional_service_postpay.png)

:::tip
Ensure all required documents (such as the SOW) are ready before creating the offer. Align payment schedules and contract terms with your customer's procurement process for a smoother experience.
:::

## Virtual Machine Offer

Creating a private offer for a VM product enables customized pricing and terms for GCP virtual machines, including Committed Use Discounts.

**Step 1: Select Plan**

- Select the plan for the private offer.

**Step 2: Select Pricing Model**

- Once the plan is selected, the Pricing Model options will be displayed. These options mirror the standard usage-based models; select the one that aligns with your deal structure.
  - **Commit discount with additional usage at list price**
  - **Commit with all usage discounted**
  - **Usage discount only**

> ![Professional VM Offer](images/gcp_vm_offer.png)

:::tip
For detailed definitions and calculation logic of these three pricing models, please refer to the **Usage-Based Offers** section above.
:::
