Manage Three-Year Commits

Three-Year Commit (3YC) is a loyalty program that allows customers to get a greater discount level and a price lock for three terms (the current and two additional terms). Customers commit to purchasing and maintaining a minimum quantity throughout the 3-year period.

Using the Preview Order API to determine the correct discount level is important. The Preview Order API uses the customer’s 3YC commitment and any accepted commitment requests to return the Offer ID with the best discount.

Extended compliance window for 3YC commitments

Effective Date: June 13, 2025

The compliance window for fulfilling the 3-Year Commitment (3YC) license requirements has been extended. Previously, customers had 7 days from the date of accepting a 3YC agreement to meet their license commitment. This window has now been extended to 30 days.

Term length calculation for VIP Marketplace 3YC agreements

Effective Date: June 1, 2025

The end date of a 3YC term depends on when the customer opts into the agreement relative to their annual renewal cycle:

This distinction ensures fair benefit distribution while aligning with the annual contract renewal process.

3YC Workflows

Customers can enroll in 3YC through one of three workflows. In all cases, customers must accept the commitment terms (minimum quantities and end date) in the Adobe Admin Console before receiving discounts.

  1. New Customer: Partners can set the requested minimum quantities during customer creation. Once the account becomes active, this triggers the 3YC customer acceptance workflow. API endpoints:

  2. Existing Customer: Partners can update existing customers (with or without an active 3YC) with new requested minimum quantities. This triggers the 3YC customer acceptance workflow once the update is processed. API endpoints:

  3. Existing VIP Customer: Existing VIP customers with active 3YC can be transferred to VIP Marketplace and retain their 3YC commitment terms, which can be retrieved using the GET Customer API. API endpoints:

3YC discount levels

The customer can be enrolled in 3YC for either licenses, consumables, or both. If enrolled in only one, there is no minimum quantity for the other type, and the customer gets no discount for that type.

Different volume discount levels are applicable based on the market segment.

For the GOV and COM market segments

Volume discounts apply only to qualifying licenses.

Discount Level
Minimum Number of Committed Licenses
12
10-49
13
50-99
14
100+

For the EDU market segment

Discount Level
Minimum Number of Committed Licenses
02
10-49
03
50-99
04
100+

For more information, refer to Volume Discounts.

Discount tier for consumables

Discount Tier
Minimum Number of Committed Transactions
TB
1,000–2,499
TC
2,500–4,999
TD
5,000–14,999
TE
15,000–49,999
TF
50,000–99,999
TG
100,000+

Note: When a 3-Year Commitment (3YC) contract expires after its designated end date, the volume discount levels are reset to the following defaults:

Arriving at partner price for 3YC customers

The diagram illustrates the decision-making process for determining partner pricing for 3YC customers.

Partner pricing for 3YC customers

The flow ensures accurate pricing by considering factors such as customer type, offer matches, and applicable discounts before arriving at the final price charged by Adobe.

Commitment request considerations

The following sections provide more details of the changes to the objects:

commitmentRequest object

Example 1: Sample request before placing the order or if the total order quantity is less than the Minimum Purchase Quanity (MPQ):

{
  "companyProfile": {
    "companyName": "Fairmont",
    "preferredLanguage": "en-US",
    "address": {
      "country": "US",
      "region": "CA",
      "city": "San Jose",
      "addressLine1": "200 Fairmont Ave",
      "addressLine2": "Apt 123",
      "postalCode": "95110-1234",
      "phoneNumber": "800-123-4567"
    },
    "contacts": []
  },
  "benefits": [
    {
      "type": "THREE_YEAR_COMMIT",
      "commitmentRequest": {
        "minimumQuantities": [
          {
            "offerType": "LICENSE",
            "quantity": 10
          },
          {
            "offerType": "CONSUMABLES",
            "quantity": 1000
          }
        ]
      }
    }
  ]
}

Example 2: Response where the net fulfilled order quantities is more than MPQ:


{
  "externalReferenceId": "18d9b63c-d81b-4e0a-b12c-9c3bc33f80d",
  "customerId": "P1005229864",
  "resellerId": "P1000086129",
  "status": "1000",
  "companyProfile": {
    ...
    ...
  },
  "discounts": [
    {
      "offerType": "LICENSE",
      "level": "14"
    }
  ],
  "tags": [],
  "cotermDate": "2026-07-07",
  "creationDate": "2025-07-07T04:58:17Z",
  "benefits": [
    {
      "type": "THREE_YEAR_COMMIT",
      "commitment": {
        "startDate": "2025-07-07",
        "endDate": "2028-07-05",
        "status": "COMMITTED",
        "minimumQuantities": [
          {
            "offerType": "LICENSE",
            "quantity": 100
          }
        ]
      },
      "commitmentRequest": null,
      "recommitmentRequest": null
    }
  ],
  "globalSalesEnabled": false,
  "links": {
    "self": {
      "uri": "/v3/customers/P1005229864",
      "method": "GET",
      "headers": []
    }
  }
}

Example 3: MPQ for Multiple offer types

If the total ordered quantity exceeds the MPQ for one offer type, for example, CONSUMABLES, while not exceeding the MPQ for another offer type (LICENSE), the system will behave as follows:

{
    "externalReferenceId": "14b783eb-ba91-4f3b-ba38-417e96c5c92",
    "customerId": "P1005229895",
    "resellerId": "P1000086129",
    "status": "1000",
    "companyProfile": {
        ...
        ...
    },
    "discounts": [
        {
            "offerType": "LICENSE",
            "level": "13"
        },
        {
            "offerType": "CONSUMABLES",
            "level": "TC"
        }
    ],
    "tags": [],
    "cotermDate": "2026-07-07",
    "creationDate": "2025-07-07T05:38:37Z",
    "benefits": [
        {
            "type": "THREE_YEAR_COMMIT",
            "commitment": {
                "startDate": "2025-07-07",
                "endDate": "2028-07-05",
                "status": "COMMITTED",
                "minimumQuantities": [
                    {
                        "offerType": "CONSUMABLES",
                        "quantity": 1000
                    }
                ]
            },
            "commitmentRequest": {
                "startDate": "2025-07-07",
                "endDate": "2028-07-05",
                "status": "ACCEPTED",
                "minimumQuantities": [
                    {
                        "offerType": "LICENSE",
                        "quantity": 100
                    }
                ]
            },
            "recommitmentRequest": null
        }
    ],
    "globalSalesEnabled": false,
    "links": {
        "self": {
            "uri": "/v3/customers/P1005229895",
            "method": "GET",
            "headers": []
        }
    }
}

Notes:

recommitmentRequest object

Sample request:

{
  "companyProfile": {
    "companyName": "Fairmont",
    "preferredLanguage": "en-US",
    "address": {
      "country": "US",
      "region": "CA",
      "city": "San Jose",
      "addressLine1": "200 Fairmont Ave",
      "addressLine2": "Apt 123",
      "postalCode": "95110-1234",
      "phoneNumber": "800-123-4567"
    },
    "contacts": []
  },
  "benefits": [
    {
      "type": "THREE_YEAR_COMMIT",
      "recommitmentRequest": {
        "minimumQuantities": [
          {
            "offerType": "LICENSE",
            "quantity": 10
          },
          {
            "offerType": "CONSUMABLES",
            "quantity": 1000
          }
        ]
      }
    }
  ]
}

3YC flow diagrams

The diagram below shows the lifecycle of the commitmentRequest object. The same lifecycle applies to the recommitmentRequest, except it cannot move to COMMITTED status until the current commitment ends.

3YC flow diagram