Use the API to purchase a spend-based commitment

This document describes how to purchase a spend-based commitment by using the Cloud Commerce Consumer Procurement API for Cloud Marketplace purchases.

This API only supports purchasing spend-based commitments, not resource-based commitments.

Before you begin

Identify the Offer you want to purchase

To purchase a spend-based commitment, use an Offer name which indicates the product you're purchasing and the discount term.

The new CUD model introduces new Offer names for existing CUD products. The following table provides the Offer names both before and after migration to the new spend-based CUD model. You must use the Offer name that matches your Cloud Billing account's model.

The following updated Offers are available for purchase:

Product Term Offer name after migration Offer name before migration
AlloyDB for PostgreSQL 1 year services/alloydb.googleapis.com/standardOffers/ff04ec3e-278c-4ec8-8278-12f875a8cea2 services/alloydb.googleapis.com/standardOffers/adbca020-a973-48c9-b9b6-f5d70527790c
AlloyDB for PostgreSQL 3 years services/alloydb.googleapis.com/standardOffers/9522b4d8-bff7-4141-81d6-b71d9113c69a services/alloydb.googleapis.com/standardOffers/56e5948f-f1ed-45ce-84d6-a8408092e7d5
Backup and DR (Oracle) 1 year services/backupdr.googleapis.com/standardOffers/16e6132e-8a72-4a7f-8941-bf52246afc82 services/backupdr.googleapis.com/standardOffers/5b446c4d-ce38-4d1a-8c76-e8b04ad50069
Backup and DR (Oracle) 3 years services/backupdr.googleapis.com/standardOffers/1e028b05-4344-4bca-87e7-235ee3536354 services/backupdr.googleapis.com/standardOffers/0dba7aa1-3215-4d44-9581-e1c34ca94471
BigQuery 1 year services/bigqueryreservation.googleapis.com/standardOffers/d73ae4d8-d096-4c9b-9c20-cd92c3c53724 services/bigqueryreservation.googleapis.com/standardOffers/6e72d4d4-5591-4c7f-aa9f-88d277d9280c
BigQuery 3 years services/bigqueryreservation.googleapis.com/standardOffers/f43d480d-3e77-4079-946c-e1b2ab640a8a services/bigqueryreservation.googleapis.com/standardOffers/ad5539c4-a0d9-4abd-82c9-1104a7c8ad64
Bigtable 1 year services/bigtable.googleapis.com/standardOffers/c0bf8ba5-65ee-4f7d-9e1e-3953433cf193 services/bigtable.googleapis.com/standardOffers/5a0a5567-1552-445e-9f1b-f1ac69fb0f39
Bigtable 3 years services/bigtable.googleapis.com/standardOffers/460fb2ef-456d-4263-a070-4f993fa37996 services/bigtable.googleapis.com/standardOffers/26e8485e-acef-4e73-9a13-f0b2109befff
Cloud Run 1 year services/run.googleapis.com/standardOffers/392802d4-e57b-40d3-9684-a1e8cdca6fb5 services/run.googleapis.com/standardOffers/55435965-baf5-485f-baea-3fde53566e5e
Cloud Run 3 years services/run.googleapis.com/standardOffers/88a5fc51-d63b-4865-bf3b-c49e05a8c5c0 services/run.googleapis.com/standardOffers/a8b22b6c-2992-48d3-9b73-98fc7a47d61c
Compute Engine flexible commitment 1 year services/compute.googleapis.com/standardOffers/1b2601a4-9d76-462d-bd5b-5b835d245f93 services/compute.googleapis.com/standardOffers/ffe0f6a3-2f98-437e-8d49-fc443a05d3c2
Compute Engine flexible commitment 3 years services/compute.googleapis.com/standardOffers/61612674-a9a9-4687-8449-baca71fbd0d1 services/compute.googleapis.com/standardOffers/062a285d-8989-4ce7-8f9a-bed8d183236f
Google Kubernetes Engine 1 year services/container.googleapis.com/standardOffers/2f48e468-a86a-452d-88df-edacd94a3c44 services/container.googleapis.com/standardOffers/ae2672e6-47a8-41dc-9448-6956d7f4fbc1
Google Kubernetes Engine 3 years services/container.googleapis.com/standardOffers/89027902-6f83-40aa-8861-7c2446b11015 services/container.googleapis.com/standardOffers/fcf378c1-fbe0-4aaa-b05e-9597f8b45578
Dataflow 1 year services/dataflow.googleapis.com/standardOffers/127d79e4-1d52-48b0-9f31-8ba02586ff95 services/dataflow.googleapis.com/standardOffers/42ae4415-0361-404f-8bc5-1e7c041c2d82
Dataflow 3 years services/dataflow.googleapis.com/standardOffers/03f4d3b1-44b8-4e88-9e75-b1d4e2d04573 services/dataflow.googleapis.com/standardOffers/cac998b8-3d49-4672-ae5b-e5b3c56e05f2
Firestore 1 year services/firestore.googleapis.com/standardOffers/de6aa077-3170-4250-89b6-0ccd470f9e21 services/firestore.googleapis.com/standardOffers/f8485012-b340-4562-8302-7e27d48f8cfd
Firestore 3 years services/firestore.googleapis.com/standardOffers/e8f59240-c088-4a22-87c3-e58722cca300 services/firestore.googleapis.com/standardOffers/0b48b55a-1fa6-48bc-a3de-2d88f0b99e15
Managed Service for Apache Kafka 1 year services/managedkafka.googleapis.com/standardOffers/647db981-009c-4e95-b62e-6aff19384956 services/managedkafka.googleapis.com/standardOffers/e1636f7d-1a29-4d53-a89e-c1f60e8dadcf
Managed Service for Apache Kafka 3 years services/managedkafka.googleapis.com/standardOffers/9a7ed994-d3df-4680-b4e6-7c3d932add66 services/managedkafka.googleapis.com/standardOffers/31d79333-0c0e-4208-9b20-c6e4f27e5d1d
Memorystore for Redis 1 year services/redis.googleapis.com/standardOffers/8e0da7cb-196b-4351-bc32-6a6ba94f1456 services/redis.googleapis.com/standardOffers/fe93270a-f338-4a76-b303-c323608a9d37
Memorystore 3 years services/redis.googleapis.com/standardOffers/2a3729ac-1e38-4a34-bc96-bd988028351f services/redis.googleapis.com/standardOffers/8f20579e-7630-4592-8fa6-0d7d3b749354
Spanner 1 year services/spanner.googleapis.com/standardOffers/359db5c2-8c2c-49e3-a21d-26176c4cd403 services/spanner.googleapis.com/standardOffers/29829e5f-681c-4810-a471-8e4611a8042b
Spanner 3 years services/spanner.googleapis.com/standardOffers/a6a32e10-1d76-4df8-8485-eee10d08a1cf services/spanner.googleapis.com/standardOffers/709f6c69-8a49-4032-97f7-ce21fe340603
Cloud SQL 1 year services/cloudsql.googleapis.com/standardOffers/d31cf078-36a2-4a8a-a2e6-b23caec0e7a3 services/cloudsql.googleapis.com/standardOffers/266e6a8c-2a0d-4b92-af9c-5795760f1fc9
Cloud SQL 3 years services/cloudsql.googleapis.com/standardOffers/48960309-1646-4fa2-9bf8-d7e72090d2b8 services/cloudsql.googleapis.com/standardOffers/4998bf0a-51dd-4ce0-8405-aa529dd86d33

The following Offers are unaffected by the new CUD model and available for purchase:

Product Term Offer name
Backup for GKE 1 year services/gkebackup.googleapis.com/standardOffers/89852607-f073-4696-94cc-de7ed85f27c7
Backup for GKE 3 years services/gkebackup.googleapis.com/standardOffers/25d2877b-2868-4312-b54e-880896a119c5
Backup and DR (VMWare) 1 year services/backupdr.googleapis.com/standardOffers/30c7e770-724f-4a7d-8369-b726a397b53a
Backup and DR (VMWare) 3 years services/backupdr.googleapis.com/standardOffers/6748e93c-4114-4fa2-bf3e-cb4d3534bb48
NetApp Volumes 1 year services/netapp.googleapis.com/standardOffers/90520cfa-14b6-42ae-92b9-129671bf2aca
NetApp Volumes 3 years services/netapp.googleapis.com/standardOffers/c852fef8-e699-4524-90f4-e7b89edeb33c

Identify the Offer parameters

Commitments have two parameters:

  • Commitment amount (hourly_commit): The credit applied to your Cloud Billing account each hour after you purchase this commitment.

  • Region (region): The region for which this commitment's benefits apply.

When you purchase a commitment, you must specify both parameters.

Purchase the Offer

To purchase an Offer, call billingAccounts.orders.place, and supply the following parameters:

  • The hourly_commit indicating the dollar value of the commitment.

  • The region to purchase the commitment for.

To place an order, run the following command:

curl 'https://cloudcommerceconsumerprocurement.googleapis.com/v1alpha1/billingAccounts/BILLING_ACCOUNT_ID/orders:place' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ACCESS_TOKEN' \
    --header 'X-Goog-User-Project: CONSUMER_PROJECT_ID' \
    -d '@-' <<EOF
    {
    "displayName": "DISPLAY_NAME",
    "lineItemInfo": [{
        "parameters": [{
        "name": "hourly_commit",
        "value": {
            "doubleValue": HOURLY_COMMIT
        }
        }, {
        "name": "region",
        "value": {
            "stringValue": "REGION"
        }
        }],
        "offer": "OFFER_NAME"
    }]
    }
EOF

This returns the name of a long-running operation:

{
    "name": "OPERATION_NAME"
}

To verify that the returned long-running operation completed successfully, run the following command:

curl 'https://cloudcommerceconsumerprocurement.googleapis.com/v1alpha1/OPERATION_NAME' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ACCESS_TOKEN' \
    --header 'X-Goog-User-Project: CONSUMER_PROJECT_ID'

The long-running operation should complete in less than one second.

View your Order

You can view the current state of a commitment directly in Google Cloud console, or by calling billingAccounts.orders.get. The name field of the created Order specifies the Order name.

cURL

To view an order, run the following command:

curl 'https://cloudcommerceconsumerprocurement.googleapis.com/v1alpha1/ORDER_NAME' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ACCESS_TOKEN' \
    --header 'X-Goog-User-Project: CONSUMER_PROJECT_ID'

Console

  1. In the Google Cloud console, go to your Cloud Billing account.

    Go to your Cloud Billing account

  2. Select Committed use discounts (CUDs) from the sidebar.

  3. Your purchased commitments are displayed.