# Private Offers

View, share, and manage your private offers across AWS, Azure, and GCP from the Offers page in Suger Console.

---

## Overview

The [**Offers**](https://console.suger.io/offer) page in Suger Console is your central place for tracking and managing every private offer you send. From here you can monitor pipeline health, find specific deals, take actions on an offer (cancel, clone, extend, share, notify contacts, download EULA), and track offer statuses across all three cloud marketplaces.

After a private offer is sent, AWS does not allow you to edit it. Instead, you manage the offer through the actions on this page: cancel it, clone it into a corrected version, extend its expiry date, notify additional contacts, or download the EULA. To manage any offer, open the **Offers** section in the Suger Console and select the offer you want to work with. Most actions live in the **More actions** menu on the offer detail page. Each of these actions is also available from the Salesforce App — see [Manage Offers in the Salesforce App](/salesforce-app/salesforce-app-offer/).

:::info
Which actions you can take depends on the offer's current status. See [Track offer statuses](#track-offer-statuses) below for details on each state.
:::

## Quick pipeline view

At the top of the Offers page, a set of summary cards shows the current state of your deal pipeline. These cards update automatically based on the latest status from AWS, Azure, and GCP, giving you a quick snapshot of both pipeline health and revenue performance in one place.

![Quick pipeline view in the Offers page](images/aws-offers-in-suger-1.webp)

- **Newly accepted offers** — offers recently accepted by the buyer. Use this to confirm which deals have just closed and are ready for handoff to implementation or customer success.
- **Total revenue** — the total revenue value from your deals in the system (in USD). For deeper breakdowns like invoiced, collectible, or disbursed amounts, use the **Revenue** or **Home** dashboards.
- **Pending acceptance** — offers that have been sent but are still waiting for buyer action. Use this to quickly identify deals that may need follow-up before they expire.
- **Recently expired** — offers that were not accepted before their expiration date. Use this to spot stalled deals that may need to be reissued or extended.

## Two ways to view offers

The Offers page gives you two ways to view your pipeline, depending on how your deals are structured. Switch between the **Offer** and **Offer Set** tabs.

### Offer tab

This is your main view for managing offers. It shows **each individual private offer** across AWS, Azure, and GCP.

![Offer tab in the Suger Console](images/aws-offers-in-suger-2.webp)

From here, you can:

- Track standard, single-offer deals
- Check offer status and progress
- Search or filter across all cloud providers

### Offer Set tab (AWS only)

This view groups multiple AWS offers into a single bundle (up to 7 offers). It's used only for AWS Marketplace deals that involve multiple products being sold together.

![Offer Set tab in the Suger Console](images/aws-offers-in-suger-3.webp)

Use this view when:

- You are selling a multi-product solution in AWS
- You want to bundle multiple offers into one buyer flow
- You need to manage AWS offer sets instead of individual offers

See [Create an AWS Marketplace offer set](#create-an-aws-marketplace-offer-set) below.

## Find the right offer

When you have a large number of offers, use search and filters to quickly locate specific deals without scrolling through the full list.

### Search

Use the search bar to quickly find a specific offer by **name, buyer, or Offer ID**. This is the fastest way to jump directly to a single deal when you already know what you're looking for.

![Search in the Offers page](images/aws-offers-in-suger-4.webp)

### Filters

Use filters when you want to narrow down your pipeline instead of finding one specific deal. For example, view all offers in `Pending_Acceptance`, or filter by AWS vs. Azure vs. GCP.

![Filters in the Offers page](images/aws-offers-in-suger-5.webp)

### Columns

Customize the table columns to control what information you see in the Offers list, so you can tailor the view to what matters most without cluttering the table.

![Columns in the Offers page](images/aws-offers-in-suger-6.webp)

Click the **Columns** button to add fields you want to see or remove fields you don't need. Your changes affect only your view, not other users.

## Cancel an offer

Canceling an offer withdraws it before the buyer accepts it. Use this when an offer has incorrect details or is no longer needed. AWS does **not** allow editing an offer once it has been sent to the buyer, so canceling lets you remove the incorrect offer and start fresh.

:::warning

- You can't cancel an accepted offer. Once accepted, you'll need to cancel the entitlement or process a refund instead. See [Amend or cancel an Entitlement](/billing/entitlement/).
- Reseller Private Offers can only be canceled by the reseller from their own Suger Console or marketplace portal.
  :::

1. Go to the [**Offers**](https://console.suger.io/offer) page in Suger Console.
2. Open the offer you want to cancel, then click **Cancel** in the top-right corner.
   ![Cancel an offer in the Suger Console](images/aws-manage-offers-1.webp)
3. Confirm the action.

Once cancelled, the buyer can no longer see the offer in their AWS portal. The status moves to `Pending_Cancel` while Suger processes the request, then becomes `Canceled` once AWS confirms it. No charges or entitlements are activated.

![Canceling a private offer in the Suger Console](images/aws-managing-an-existing-private-offer-1.gif)

### When to cancel

- The buyer requested changes after the offer was sent.
- The offer contains incorrect information (for example, wrong AWS Account ID, pricing, or term).
- The offer was misconfigured (for example, wrong pricing or the wrong product was selected).

After canceling, you can **clone** the canceled offer to quickly recreate a corrected version using the same structure.

## Clone an offer

Cloning copies an existing offer into a new draft so you don't have to rebuild it from scratch. This works for both active and canceled offers.

:::info
Not all offer types support cloning. You can't clone an Upsell/Renewal offer or a Reseller Private Offer.

- For upsells and renewals, the new offer must start from the active entitlement instead.
- For Reseller Private Offers, you don't need to take action unless your Resale Authorization has expired — in that case, issue a new one so the reseller can cancel the incorrect offer and create a replacement.
  :::

1. Go to the [**Offers**](https://console.suger.io/offer) page in Suger Console.
2. Open the offer you want to clone.
3. Click **More actions**, then select **Clone**.
   ![Clone an offer in the Suger Console](images/aws-manage-offers-2.webp)
4. Make your updates to the pre-filled offer draft.
5. Click **Create** to submit the new offer.

![Cloning a private offer in the Suger Console](images/aws-managing-an-existing-private-offer-2.gif)

### When to clone

- You're sending a similar offer to a different buyer.
- You canceled an offer and want to reuse its structure.
- You need to make small adjustments, such as pricing or term changes.

### What gets copied

- Product
- SKUs and pricing
- Term dates
- EULA
- Internal notes

### What to update before resubmitting

- Buyer ID(s)
- Offer name
- Any updated pricing or expiration dates

## Extend the expiry date of an offer

Extending an offer pushes back the expiration date so the buyer has more time to review and accept it. This saves you from recreating the offer if the deadline passes before the buyer responds.

You can extend offers in the `Pending_Acceptance` and `Expired` statuses. Extending an expired offer reactivates it so the buyer can access and accept it again.

1. Go to the [**Offers**](https://console.suger.io/offer) page in Suger Console.
2. Open the offer you want to extend.
3. Click **More actions**, then select **Extend Expiry Date**.
   ![Extend Expiry Date action in the Suger Console](images/aws-manage-offers-3.png)
4. Enter the **New Expiry Date**, then **Save** your changes.
   ![Set a new expiry date](images/aws-manage-offers-4.png)

![Extending a private offer expiry date in the Suger Console](images/aws-managing-an-existing-private-offer-3.gif)

### When to extend

- The buyer hasn't accepted the offer and the expiry date is approaching.
- You're in ongoing negotiations but need more time.

## Share the offer with your buyer

Once your offer is ready, you have two ways to get it to your buyer: **copy the link** yourself or **trigger an email** directly from Suger. Use whichever fits your workflow.

### Share the offer URL

Manually copy the offer link and send it to your buyer through your own email or messaging tool.

:::info
Wait a few minutes before sharing. After you create an offer, the marketplace needs 3 to 5 minutes to finish processing it. The offer URL isn't available until the status updates to `Pending Acceptance`.
:::

1. Go to the [**Offers**](https://console.suger.io/offer) page in Suger Console.
2. Open the offer and wait for the status to show `Pending Acceptance`.
3. Click **Copy Offer URL** in the top-right corner.
   ![Copy Offer URL button in the Suger Console](images/aws-manage-offers-5.png)
4. Send the link to your buyer.

### Notify contacts

The **Notify Contacts** feature sends an email with the offer link and current status directly to people linked to the offer. Use this to keep buyers and internal stakeholders informed without sending emails manually outside of Suger.

1. Go to the [**Offers**](https://console.suger.io/offer) page in Suger Console.
2. Open the relevant offer.
3. Click **More actions**, then select **Notify Contacts**.
   ![Notify Contacts action in the Suger Console](images/aws-manage-offers-6.webp)
4. If the person you need to notify isn't listed yet, add them first using **Add Existing Contacts** or **Create New Contact**.
   ![Add a contact to notify](images/aws-manage-offers-7.png)
5. Click **Notify** next to a specific contact, or click **Notify All Contacts** to send to everyone on the list at once.
   ![Notify a contact or all contacts](images/aws-manage-offers-8.png)
6. Check the **Notification Events** section at the bottom to confirm when emails were sent and whether they were opened.
   ![Notification Events section](images/aws-manage-offers-9.png)

![Notifying contacts about a private offer in the Suger Console](images/aws-managing-an-existing-private-offer-4.gif)

#### When to use Notify Contacts

- To remind a buyer that a private offer is pending acceptance.
- To alert internal stakeholders that an offer has been created, extended, or canceled.
- To follow up during negotiations or renewal discussions.

## Download EULA

The **Download EULA** action downloads a PDF copy of the End User License Agreement (EULA) attached to a private offer. Depending on the offer setup, Suger downloads either the custom EULA (the exact file uploaded for that offer) or the standard marketplace contract (the default agreement provided by the marketplace).

1. Go to the [**Offers**](https://console.suger.io/offer) page in Suger Console.
2. Open the relevant offer.
3. Click **More actions**, then select **Download EULA**. This opens the EULA in a new browser tab.
   ![Download EULA action in the Suger Console](images/aws-manage-offers-10.png)
4. Click the **Download** icon on the page.
   ![Download icon on the EULA page](images/aws-manage-offers-11.png)

![Downloading the EULA from a private offer in the Suger Console](images/aws-managing-an-existing-private-offer-5.gif)

### When you might need it

- To review the terms included in the offer.
- To share the EULA with the buyer outside of AWS.
- To keep a copy for internal record-keeping or legal review.

## Create an AWS Marketplace offer set

An **offer set** groups multiple AWS private offers (up to 7) into a single bundle that the buyer accepts in one checkout flow. Use it when you're selling a multi-product solution in AWS Marketplace.

### Prerequisites

Make sure the following are in place before creating an offer set.

**AWS Marketplace**

- **Active AWS Marketplace seller account** with a published seller profile. See [Register and create your seller profile](https://docs.aws.amazon.com/marketplace/latest/userguide/create-public-profile.html).
- **At least one active public listing.** You must have a published product before you can create private offers to include in an offer set.

**Suger**

- **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/).

**Offer alignment**

AWS enforces the following rules across all offers in a set. Mismatches block you from publishing. Before you start building, confirm that every offer you plan to include will share:

- The same currency
- The same buyer AWS account ID
- The same expiration date

### Supported offer types

Only the following offer types can be included in an offer set:

| Offer type                             | Supported in offer sets? | Description                                                                          |
| -------------------------------------- | :----------------------: | ----------------------------------------------------------------------------------- |
| Marketplace Private Offer (MPPO)       |          ✅ Yes          | Direct private offers created by the product owner (ISV) for the buyer              |
| Channel Partner Private Offer (CPPO)   |          ✅ Yes          | Private offers extended by an authorized channel partner using a resale authorization |
| Standard Private Offer features        |          ✅ Yes          | Includes flexible payment schedules and local currency support                       |
| Public & Trial offers                  |          ❌ No           | Standard public listings and promotional free trials can't be bundled                |
| Replacement offers (amendments)        |          ❌ No           | Agreement-based offers meant to renew or upsell an existing active entitlement       |

### Step 1: Set up offer set details (container)

Start by filling out the container details in order:

1. Go to the Suger Console, then **Offer**.
2. Click the **Offer Set** tab in the upper-left corner, then **+ New Offer Set**.
3. Enter the **Offer set name**. Use something that helps you and the buyer identify the deal easily.
4. Add a **Customer note** — context for the buyer or internal team.
5. Select or enter the **Buyer(s)** AWS account ID.
6. Set the **Expiry Date** for when the buyer can accept the offer set. Every individual offer you add later must share this exact same expiration date.
7. (Optional) Use the **Solution associate** field if you already have a related AWS solution listing and want to connect them. A solution is a Marketplace page that explains how multiple products work together; linking it gives buyers additional context and documentation during the purchase flow.

### Step 2: Add private offers to the offer set

Attach the actual private offers inside the offer set container. You must add at least **2 offers** and up to **7 offers** per offer set.

1. Click **+ Create private offer** to add your first offer.
2. Choose the **Product** you want to include. Each offer in the set must target a different product ID — you can't include the same product twice in one offer set.
3. Fill in the **Basic information** section.
4. Set up the **Offer terms**.
5. Add the **Pricing information**.
6. Attach the **End User License Agreement (EULA)** for this product.
7. Once everything is correct, click **Add**.

Repeat until you have added all required offers.

### Step 3: Review and publish the offer set

1. Check everything you configured. Make sure:
   - All offers are included correctly.
   - Every offer targets the same buyer AWS account.
   - All offers use the same currency.
   - All offers share the same expiration date.
   - Each offer has a different product ID.
   - Pricing, terms, and EULAs are correct.
2. Click **Create offer set** to publish.

### Step 4: What happens after you publish

- **Buyer notification (automatic).** After you click **Create offer set**, AWS Marketplace automatically sends the buyer a single email — this replaces individual private offer emails. The email includes the Offer Set ID, expiry date, the list of included products, and one link to review and accept the full offer set.
- **Separate agreements (after acceptance).** Once the buyer accepts the offer set, each product becomes its own separate agreement, so you can manage renewals, changes, or cancellations per product independently.
- **Invoicing and payments.** Even though the buyer completes one checkout flow, billing is split per product. The buyer receives separate invoices for each product based on its own terms and agreement.

## Track offer statuses

Status labels in Suger may differ slightly from what you see in the native AWS, Azure, or GCP consoles. Where this applies, the difference is called out below.

### Suger Console / CRM status reference

Use the table below to interpret the offer statuses shown in the Suger Console or your CRM.

| Status | Meaning |
| --- | --- |
| `Pending_Create` | The offer is being submitted to AWS. |
| `Create_Success` | AWS has accepted the offer, but it hasn't been made visible to the buyer yet. |
| `Pending_Acceptance` | The offer has been successfully pushed to AWS and the buyer has been notified. |
| `Accepted` | The buyer has accepted the offer. An entitlement is created automatically. |
| `Pending_Cancel` | The offer cancellation request has been submitted but not yet confirmed by AWS. |
| `Canceled` | The offer has been successfully canceled. It is no longer visible to the buyer. |
| `Expired` | The buyer did not accept the offer before the expiry date. The offer is no longer valid. |
| `Active` | The offer originated from a public purchase via the Marketplace. |

### AWS Marketplace offer statuses

AWS private offers follow a straightforward lifecycle: `Draft` → `Active` → `Accepted`. If the buyer doesn't act in time, the offer moves to `Expired` instead.

| Status           | What it means                                                                                                              | What to do                                                                                                                              |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `Draft`          | The offer is incomplete.                                                                                                   | Finish filling in all required fields, then publish to send it to the buyer.                                                           |
| `Active`         | The offer has been published and is available to the buyer.                                                               | Share the offer link with the buyer if you haven't already. See [Share the offer with your buyer](#share-the-offer-with-your-buyer).   |
| `Accepted`       | The buyer subscribed and an agreement (entitlement) has been created.                                                     | Go to the [Entitlement](https://console.suger.io/entitlement) menu in the Suger Console to track the deal going forward.               |
| `Expired`        | The offer reached its deadline before the buyer accepted.                                                                 | [Extend the expiration date](#extend-the-expiry-date-of-an-offer) or [create a new offer](/aws-marketplace/create-private-offer/).     |
| `Pending Cancel` | The buyer requested to cancel their subscription. This status applies to public offers and usually lasts about one hour. | No immediate action needed. Wait for the status to move to `Cancelled`.                                                                |
| `Cancelled`      | The agreement was cancelled, either by the buyer or the seller.                                                           | If the cancellation was unintended, contact AWS support. To continue the deal, [create a new private offer](/aws-marketplace/create-private-offer/). |

_Source:_ [_AWS Marketplace Seller Guide – Creating and managing private offers_](https://docs.aws.amazon.com/marketplace/latest/userguide/creating-private-offer.html)

**Key things to know about AWS offers**

- **Private offers can't auto-renew.** When a contract ends, you need to create a new private offer for renewals.
- `Pending Cancel` **and** `Cancelled` **are Suger-specific events.** You won't see these labels in the AWS console. In AWS, a seller-initiated cancellation changes the offer's expiration date so it appears as `Expired`.
- **Buyers receive both a** `PENDING_CANCEL` **and a** `CANCEL` **webhook event** when they unsubscribe, typically about one hour apart. This is normal behavior.

### Azure Marketplace offer statuses

Azure requires two separate actions from the buyer: **accepting the offer terms** and then **completing the purchase**. This means a deal can show as `Accepted` while the subscription is still pending.

:::warning
Once a buyer accepts an Azure offer, you can no longer withdraw or edit it. If changes are needed, you'll need to cancel the offer and create a new one.
:::

| Status               | What it means                                                        | What to do                                                                                                                          |
| -------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `Draft`              | You have started creating the offer but haven't submitted it yet.   | Complete all required fields and submit.                                                                                          |
| `In Progress`        | The offer is being published. This typically takes up to 15 minutes. | Wait for the status to update before contacting the buyer.                                                                        |
| `Pending Acceptance` | The offer is live and waiting for the buyer to accept.              | Make sure you have shared the offer link with the buyer. See [Share the offer with your buyer](#share-the-offer-with-your-buyer). |
| `Accepted`           | The buyer accepted the offer terms.                                 | Check the sub-status (below) to see if the purchase step is still pending.                                                        |
| `Expired`            | The offer deadline passed before the buyer accepted.                | Withdraw the offer, make any needed edits, and resubmit.                                                                          |
| `Ended`              | The offer passed its end date.                                      | Create a new offer if you need to continue the deal.                                                                             |
| `Withdrawn`          | You recalled the offer before the buyer accepted it.                | Edit and resubmit when ready.                                                                                                     |

_Source:_ [_Microsoft Learn – Manage ISV-to-customer private offers_](https://learn.microsoft.com/en-us/partner-center/marketplace-offers/manage-isv-customer-private-offers)

**Purchase sub-statuses (after acceptance)**

After the buyer accepts, these sub-statuses track whether they have completed the purchase step.

| Status                   | What it means                                                                    | What to do                                                                                                          |
| ------------------------ | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `Pending Purchase`       | The buyer accepted the terms but hasn't completed the purchase yet.              | It can take 15–60 minutes for the Purchase button to become available. Let the buyer know to check back.           |
| `Subscribed`             | The buyer subscribed and you activated the SaaS subscription.                    | No action needed. The deal is active.                                                                              |
| `Purchased`              | For VM software reservations, the buyer completed the purchase.                  | No action needed.                                                                                                  |
| `Cancelled`              | The subscription was cancelled due to a buyer request or non-payment.           | Reach out to the buyer to resolve, or create a new offer if needed.                                                |
| `Expired` (subscription) | The subscription has expired.                                                    | Create a new offer to renew.                                                                                       |

**For multiparty (channel partner) offers**

| Status                   | What it means                                                             | What to do                                                                                    |
| ------------------------ | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- |
| `Pending Partner Action` | The offer is ready for the channel partner to review and send to the buyer. | Follow up with the channel partner to confirm they have received and reviewed the offer.     |

_Source:_ [_Microsoft Learn – Multiparty private offers for ISVs_](https://learn.microsoft.com/en-us/partner-center/marketplace-offers/multiparty-private-offers-for-isvs)

### GCP Marketplace offer statuses

GCP has the most granular status lifecycle of the three marketplaces. After a buyer accepts an offer, you (the seller) may need to manually approve it before it activates. GCP also distinguishes between an offer expiring before the buyer acts and an order expiring after the contract ends.

**Offer statuses (Producer Portal)**

| Status                     | What it means                                                                      | What to do                                                                                                                                     |
| -------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `Draft`                    | The offer is created but not finalized.                                            | Continue editing, then submit.                                                                                                               |
| `Pending Google Approval`  | Google is reviewing the offer before it can be sent to the buyer.                  | Wait for approval. This is a Google-controlled step.                                                                                        |
| `Created`                  | The offer URL is ready.                                                            | Send the offer link to the buyer. See [Share the offer with your buyer](#share-the-offer-with-your-buyer).                                   |
| `Pending Acceptance`       | The offer has been sent but the buyer hasn't accepted yet.                         | Follow up with the buyer if needed.                                                                                                          |
| `Account Pending Approval` | The buyer's account needs to be approved before the offer can proceed.            | Review and approve the account in your GCP settings.                                                                                        |
| `Account Rejected`         | The buyer's account was rejected.                                                  | Contact the buyer if the rejection was unintended.                                                                                          |
| `Needs Your Approval`      | The buyer accepted and is waiting for you to confirm.                              | Go to the [GCP Producer Portal](https://console.cloud.google.com/producer-portal/private-offers) and [approve the offer](https://docs.cloud.google.com/marketplace/docs/partners/offers/manage-entitlements). |
| `Approving`                | Your approval is being processed. This takes a few minutes.                       | Wait for the status to update.                                                                                                              |
| `Approval Failed`          | An error occurred during approval.                                                 | Wait for the status to reset, then re-approve.                                                                                              |
| `Activating`               | The offer is nearly ready. It will activate at its scheduled start time.          | No action needed.                                                                                                                           |
| `Scheduled`                | A replacement offer was approved and will activate on the contract start date.    | No action needed until the start date.                                                                                                      |
| `Active`                   | The buyer is actively using the offer.                                             | No action needed.                                                                                                                           |
| `Offer Expired`            | The buyer did not accept before the deadline.                                      | Create a new offer if you want to continue the deal.                                                                                        |
| `Order Expired`            | The contract end date has passed.                                                  | Create a renewal offer if needed.                                                                                                           |
| `Cancelled`                | You withdrew the offer before the buyer accepted.                                  | Create a new offer if the deal should continue.                                                                                            |
| `Rejected`                 | You declined an offer the buyer had already accepted.                              | Contact the buyer and create a new offer if the deal should proceed.                                                                        |
| `Unavailable`              | This is a legacy offer that is no longer supported.                                | Migrate to a current offer type if needed.                                                                                                  |

**Reseller offer statuses (Partner Sales Console)**

If an offer is managed through a GCP reseller, you'll see this simplified set of statuses instead.

| Status      | What it means                                                       | What to do                                                          |
| ----------- | ------------------------------------------------------------------- | ------------------------------------------------------------------ |
| `Published` | The reseller published the offer; the buyer hasn't accepted yet.    | Follow up with the buyer or reseller if there is no response.       |
| `Accepted`  | The buyer accepted but the contract hasn't started yet.             | Wait for the contract start date.                                   |
| `Active`    | The contract is in effect.                                          | No action needed.                                                   |
| `Ended`     | The contract passed its end date.                                   | Create a renewal offer if needed.                                   |
| `Expired`   | The buyer didn't accept before the deadline.                        | Work with the reseller to reissue the offer.                        |
| `Canceled`  | The reseller withdrew the offer.                                    | Coordinate with the reseller to reissue if needed.                  |

**Key things to know about GCP offers**

- **SaaS offers require manual approval by default** unless you have [enabled automatic offer approval](https://docs.cloud.google.com/marketplace/docs/partners/offers/automatic-approval). Check your GCP settings to avoid deal delays.
- **Replacement offers** (for renewals or upsells) follow the same status lifecycle but can't change the product, plan, or pricing model of the original offer.
- **As of April 2025,** GCP supports multiple active flat-fee offers for the same buyer.

### Cross-cloud status comparison

Use this table to quickly compare where a deal stands across all three marketplaces.

| Lifecycle stage         | AWS                       | Azure                     | GCP                             |
| ----------------------- | ------------------------- | ------------------------- | ------------------------------- |
| Being created           | `Draft`                   | `Draft`                   | `Draft`                         |
| Publishing              | — (immediate)             | `In Progress`             | `Pending Google Approval`       |
| Awaiting buyer          | `Active`                  | `Pending Acceptance`      | `Created` / `Pending Acceptance` |
| Buyer agreed            | `Accepted`                | `Accepted`                | `Needs Your Approval`           |
| Fully active            | `Agreement active`        | `Subscribed` / `Purchased` | `Active`                        |
| Not accepted in time    | `Expired`                 | `Expired`                 | `Offer Expired`                 |
| Contract ended          | `Agreement ended`         | `Ended`                   | `Order Expired`                 |
| Seller withdrew         | `Cancelled` (pre-accept)  | `Withdrawn`               | `Cancelled`                     |
