Gestionar los derechos de Google Workspace y Google Chrome

En esta página se describe cómo gestionar los derechos de los clientes de los productos de Google Workspace y Google Chrome.

Requisito previo

Antes de continuar, determina si tu cuenta de distribuidor tiene una sola cuenta de facturación de Google Workspace o varias. Para obtener más información sobre este tema, consulta la guía de inicio para varias cuentas de facturación de Google Workspace.

Crear derecho

Antes de empezar

Para continuar, debes configurar Customer.

Para crear un derecho, siga estos pasos:

  1. Con el nombre del cliente, llama a listPurchasableSkus para obtener una lista de PurchasableSkus

    ListPurchasableSkusRequest
    {
      "customer": "accounts/123/customers/abc",
      "createEntitlementPurchase": {
        "product": "products/-"
      }
    }
    ListPurchasableSkusResponse
    {
      "purchasableSkus": [
        {
          "sku": {
            "name": "products/product_id/skus/sku_id1",
            "product": {
              "name": "products/product_id",
            }
          }
        },
        {
          "sku": {
            "name": "products/product_id/skus/sku_id2",
            "product": {
              "name": "products/product_id",
            },
          }
        }
      ]
    }
    
  2. Con el PurchasableSku seleccionado, usa el método queryEligibleBillingAccounts para encontrar un conjunto de BillingAccount de Google Workspace que se pueda usar para pagar el derecho.

    1. Si quieres pagar en una moneda específica, selecciona una cuenta de facturación con esa moneda.
    QueryEligibleBillingAccountsRequest
    {
      "customer": "accounts/123/customers/abc",
      "skus": ["products/product_id/skus/sku_id1"]
    }
    QueryEligibleBillingAccountsResponse
    {
      "skuPurchaseGroups": [
        {
          "skus": [
            "products/product_id/skus/sku_id1"
          ],
          "billingAccountPurchaseInfos": [
            {
              "billingAccount": {
                "name": "accounts/123/billingAccounts/billing_account_id1",
                "displayName": "Google_Workspace_USD_US_1",
                "currencyCode": "USD",
                "regionCode": "US"
              }
            },
            {
              "billingAccount": {
                "name": "accounts/123/billingAccounts/billing_account_id2",
                "displayName": "Google_Workspace_CAD_CA_1",
                "currencyCode": "CAD",
                "regionCode": "CA"
              }
            }
          ]
        }
      ]
    }
    
  3. Con los valores de PurchasableSku y BillingAccount seleccionados, usa el método listPurchasableOffers para encontrar el valor de PurchasableOffer disponible.

    ListPurchasableOffersRequest
    {
      "customer": "accounts/123/customers/abc",
      "createEntitlementPurchase": {
        "sku": "products/product_id/skus/sku_id1",
        "billingAccount": "accounts/123/billingAccounts/billing_account_id2"
      }
    }
    ListPurchasableOffersResponse
    {
      "purchasableOffers": [
        {
          "offer": {
            "name": "accounts/123/offers/offer_id1",
          },
          "sku": {
            "name": "products/product_id/skus/sku_id1",
          },
          "plan": {
            "paymentPlan": "FLEXIBLE",
            "paymentCycle": {
              "duration": 1,
              "periodType": "MONTH"
            }
          },
          "priceReferenceId": "price_reference_id_123"
        }
      ],
    }
    
  4. En este punto, deberías tener la BillingAccount que pagará el Entitlement y el PurchasableOffer. Empieza a crear el derecho con el método create.

    1. Crea un objeto Entitlement y rellena los campos offer, billingAccount y cualquier otro parámetro obligatorio. Rellene el ID de referencia de precio en el derecho cuando esté presente en PurchasableOffer para asegurarse de que el nuevo derecho tenga el precio indicado anteriormente. Sin este ID de referencia de precio, no se garantiza que el descuento y el precio vigente devueltos por ListPurchasableOffersResponse sean los mismos en esta llamada CreateEntitlement. Si rellenas este ID de referencia de precio, se asegurará de que el precio coincida en este nuevo derecho.
    CreateEntitlementRequest
    {
      "parent": "accounts/123/customers/abc",
      "entitlement": {
        "offer": "accounts/123/offers/offer_id1",
        "maxUnits": 100,
        "billingAccount": "accounts/123/billingAccounts/billing_account_id2",
        "priceReferenceId": "price_reference_id_123"
      }
    }
    CreateEntitlementResponse
    {
      "name": "operations/operation_id1"
    }
    

Cambiar el plan de pagos de los derechos de Google Workspace

Antes de empezar

Los derechos de Google Workspace con un pago gratuito o de prueba plan no tienen una cuenta de facturación de Google Workspace. Para cambiar el plan de pagos de un derecho a un plan de pagos de pago, hay que seguir un par de pasos adicionales para seleccionar una cuenta de facturación de Google Workspace.

Para cambiar el plan de pagos de los derechos de Google Workspace, sigue estos pasos:

Los dos primeros pasos solo son obligatorios si el derecho tiene un plan de pago gratuito o de prueba.

  1. Con la Oferta, utiliza el método lookupOffer para encontrar información sobre Sku en la Oferta.

    LookupOfferRequest
    {
      "entitlement": "accounts/123/customers/abc/entitlements/entitlement_id1"
    }
    LookupOffer respones
    {
      "name": "accounts/123/offers/offer_id1",
      "sku": {
        "name": "products/product_id/skus/sku_id1",
       }
    }
    
  2. Con Customer y Sku, usa el método queryEligibleBillingAccounts para encontrar un conjunto de BillingAccount que se pueda usar para pagar este Entitlement. Si quieres pagar en una moneda específica, selecciona una cuenta de facturación con esa moneda.

     QueryEligibleBillingAccountsRequest
     {
       "customer": "accounts/123/customers/abc",
       "skus": ["products/product_id/skus/sku_id1"]
     }
     QueryEligibleBillingAccountsResponse
     {
       "skuPurchaseGroups": [
         {
           "skus": [
             "products/product_id/skus/sku_id1"
           ],
           "billingAccountPurchaseInfos": [
             {
               "billingAccount": {
                 "name": "accounts/123/billingAccounts/billing_account_id1",
                 "displayName": "Google_Workspace_USD_US_1",
                 "currencyCode": "USD",
                 "regionCode": "US"
               }
             },
             {
               "billingAccount": {
                 "name": "accounts/123/billingAccounts/billing_account_id2",
                 "displayName": "Google_Workspace_CAD_CA_1",
                 "currencyCode": "CAD",
                 "regionCode": "CA"
               }
             }
           ]
         }
       ]
     }
     ```
    
  3. Con Entitlement y BillingAccount, usa el método listPurchasableOffers para encontrar cualquier PurchasableOffer. No es necesario indicar BillingAccount si el derecho ya tiene un plan de pago. En ese caso, se usará el BillingAccount que ya exista. Para cambiar el plan de pagos, el campo purchase_option debe ser changeOfferPurchase.

    ListPurchasableOffersRequest
    {
      "customer": "accounts/123/customers/abc",
      "changeOfferPurchase": {
        "entitlement": "accounts/123/customers/abc/entitlements/entitlement_id1",
        "billingAccount": "accounts/123/billingAccounts/billing_account_id2"
      }
    }
    ListPurchasableOffersResponse
    {
      "purchasableOffers": [
        {
          "offer": {
            "name": "accounts/123/offers/offer_id1",
          },
          "sku": {
            "name": "products/product_id/skus/sku_id1",
          },
          "plan": {
            "paymentPlan": "FLEXIBLE",
            "paymentCycle": {
              "duration": 1,
              "periodType": "MONTH"
            }
          },
          "priceReferenceId": "price_reference_id_123"
        }
      ],
    }
    
  4. En este punto, deberías tener los objetos Entitlement, Offer y BillingAccount. Empieza a cambiar el plan de pagos con el método changeOffer. Rellena el ID de referencia de precio en el derecho cuando esté presente en PurchasableOffer para asegurarte de que el nuevo derecho tenga el precio indicado anteriormente. Sin este ID de referencia de precio, no se garantiza que el descuento y el precio efectivo devueltos por ListPurchasableOffersResponse sean los mismos en esta llamada ChangeOffer. Si rellena este ID de referencia de precio, se asegurará de que el precio coincida en este nuevo derecho.

    ChangeOfferRequest
    {
      "name": "accounts/abc/customers/123/entitlements/entitlement_id1",
      "offer": "accounts/abc/offers/offer_id1",
      "billing_account": "accounts/abc/billingAccounts/billing_account_id2",
      "parameters": [{
        "name": "max_units",
        "value": {
          "int64Value": "100"
        }
      }],
      "priceReferenceId": "price_reference_id_123"
    }
    ChangeOfferResponse
    {
      "name": "operations/operation_id1"
    }
    

Cambiar a una edición superior o inferior de Google Workspace

Para cambiar a una edición superior o inferior de Google Workspace, sigue estos pasos:

  1. Con el derecho, llama al método listPurchasableSkus para obtener una lista de PurchasableSkus que se puedan usar para cambiar a un plan superior o inferior.

    ListPurchasableSkusRequest
    {
      "customer": "accounts/123/customers/abc",
      "changeOfferPurchase": {
        "entitlement": "accounts/123/customers/abc/entitlements/entitlement_id1",
        "changeType": "UPGRADE"
      }
    }
    ListPurchasableSkusResponse
    {
      "purchasableSkus": [
        {
          "sku": {
            "name": "products/product_id/skus/sku_id1",
            "product": {
              "name": "products/product_id",
            }
          }
        },
        {
          "sku": {
            "name": "products/product_id/skus/sku_id2",
            "product": {
              "name": "products/product_id",
            },
          }
        }
      ]
    }
    
  2. Con PurchasableSku, usa el método queryEligibleBillingAccounts para buscar un conjunto de BillingAccounts que se puedan usar para pagar el derecho.

    1. Si quieres pagar en una moneda específica, selecciona una cuenta de facturación con esa moneda.
     QueryEligibleBillingAccountsRequest
     {
       "customer": "accounts/123/customers/abc",
       "skus": ["products/product_id/skus/sku_id1"]
     }
     QueryEligibleBillingAccountsResponse
     {
       "skuPurchaseGroups": [
         {
           "skus": [
             "products/product_id/skus/sku_id1"
           ],
           "billingAccountPurchaseInfos": [
             {
               "billingAccount": {
                 "name": "accounts/123/billingAccounts/billing_account_id1",
                 "displayName": "Google_Workspace_USD_US_1",
                 "currencyCode": "USD",
                 "regionCode": "US"
               }
             },
             {
               "billingAccount": {
                 "name": "accounts/123/billingAccounts/billing_account_id2",
                 "displayName": "Google_Workspace_CAD_CA_1",
                 "currencyCode": "CAD",
                 "regionCode": "CA"
               }
             }
           ]
         }
       ]
     }
     ```
    
  3. Con Entitlement y BillingAccount, usa el método listPurchasableOffers para encontrar cualquier PurchasableOffer.

      ListPurchasableOffersRequest
      {
        "customer": "accounts/123/customers/abc",
        "changeOfferPurchase": {
          "entitlement": "accounts/123/customers/abc/entitlements/entitlement_id1",
          "billingAccount": "accounts/123/billingAccounts/billing_account_id2"
        }
      }
      ListPurchasableOffersResponse
      {
        "purchasableOffers": [
          {
            "offer": {
              "name": "accounts/123/offers/offer_id1",
            },
            "sku": {
              "name": "products/product_id/skus/sku_id1",
            },
            "plan": {
              "paymentPlan": "FLEXIBLE",
              "paymentCycle": {
                "duration": 1,
                "periodType": "MONTH"
              }
            },
            "priceReferenceId": "price_reference_id_123"
          }
        ],
      }
      ```
    
  4. En este punto, deberías tener los objetos Entitlement, PurchasableOffer y BillingAccount. Empieza a cambiar a una versión superior o inferior con el método changeOffer.

    1. Crea un objeto Entitlement y rellena los campos name, offer, billingAccount y los parámetros obligatorios. Rellene el ID de referencia de precio en el derecho cuando esté presente en PurchasableOffer para asegurarse de que el nuevo derecho tenga el precio indicado anteriormente. Sin este ID de referencia de precio, no se garantiza que el descuento y el precio efectivo devueltos por ListPurchasableOffersResponse sean los mismos en esta llamada ChangeOffer. Si se rellena este ID de referencia de precio, se garantiza que el precio coincida con el de este nuevo derecho.
       ChangeOfferRequest
       {
         "name": "accounts/abc/customers/123/entitlements/entitlement_id1",
         "offer": "accounts/abc/offers/offer_id1",
         "billing_account": "accounts/abc/billingAccounts/billing_account_id2",
         "parameters": [{
           "name": "max_units",
           "value": {
             "int64Value": "100"
           }
         }],
         "priceReferenceId": "price_reference_id_123"
       }
       ChangeOfferResponse
       {
         "name": "operations/operation_id1"
       }
       ```
    

Transferir derechos

En esta sección se explica cómo transferir derechos de clientes de Google Workspace y Chrome a su anterior partner.

Para obtener ayuda sobre cómo transferir clientes en Partner Sales Console, consulta nuestras guías sobre cómo transferir clientes a una cuenta de partner o a una cuenta de Google.

Los clientes de Google Workspace solo pueden comprar derechos a un partner o a un partner y a Google.

Durante la transferencia, los derechos se cancelan automáticamente antes de que se vuelvan a crear con el nuevo partner. Si un cliente tiene derechos de planes con compromiso, estos iniciarán un nuevo periodo de compromiso después de la transferencia.

Antes de empezar

Para gestionar los derechos de un cliente, necesitas un token de transferencia generado por el cliente. Ponte en contacto con el cliente y facilítale tu identificador público de partner para que pueda generar un token de transferencia. Una vez que haya creado un token, el cliente deberá enviártelo para completar el proceso. Estos tokens caducan 14 días después de su creación. También necesitas el dominio o el ID de Cloud Identity del cliente.

Cuando el cliente crea su token de transferencia, selecciona los derechos que quiere transferir a su nuevo distribuidor. Debes transferir todos los derechos seleccionados durante el proceso.

Para transferir derechos, sigue estos pasos:

Si solo tienes el dominio del cliente, puedes usar la API Cloud Channel para devolver su ID de Cloud Identity. Llama a checkCloudIdentityAccountsExist con el dominio del cliente y, si el dominio existe, la API devolverá el ID de Cloud Identity del cliente.

  1. Para iniciar la transferencia, usa el método customers.import para importar los datos del cliente.

    ImportCustomerRequest
    {
      "parent": "accounts/abc",
      "domain": "domain"
    }
    
  2. Con el ID de Cloud Identity del cliente, llama a listTransferableSkus para obtener una lista de los transferableSku Comprueba el transferEligibility de cada objeto para asegurarte de que puedes comprar el SKU asociado.

    ListTransferableSkusRequest
    {
      "parent": "accounts/abc",
      "cloudIdentityId": "cloud_identity_id"
    }
    ListTransferableSkusResponse
    {
      "transferableSku": [
        {
          "sku": {
               "name": "products/product_id/skus/voice_sku_id1",
          },
        },
        {
          "sku": {
               "name": "products/product_id/skus/google_workspace_sku_id2",
          },
        },
        {
          "sku": {
               "name": "products/product_id/skus/google_workspace_chrome_sku_id3",
          },
        }
      ],
    }
    
  3. Ahora que tienes una lista de TransferableSkus, debes determinar qué BillingAccount usar para pagar los derechos. Usa el método queryEligibleBillingAccounts para encontrar un conjunto de BillingAccount que se pueda usar en cada TransferableSku.

    1. Ten en cuenta que algunos TransferableSkus deben compartir la misma cuenta de facturación de Google Workspace, por lo que queryEligibleBillingAccounts devuelve un grupo de SKUs que te indica qué TransferableSkus deben usar la misma BillingAccount. Si hay varias cuentas de facturación de Google Workspace para un SKU concreto, puedes elegir una de ellas y usarla para todos los SKUs transferibles del grupo.
    QueryEligibleBillingAccountsRequest
    {
      "customer": "accounts/123/customers/abc",
      "skus": ["products/product_id/skus/voice_sku_id1","products/product_id/skus/google_workspace_sku_id2","google_workspace_chrome_sku_id3"]
    }
    QueryEligibleBillingAccountsResponse
     {
       "skuPurchaseGroups": [
         {
           "skus": [
             "products/product_id/skus/voice_sku_id1"
           ],
           "billingAccountPurchaseInfos": [
             {
               "billingAccount": {
                 "name": "accounts/123/billingAccounts/voice_billing_account_id1",
                 "displayName": "Google_Workspace_Voice_USD_US_1",
                 "currencyCode": "USD",
                 "regionCode": "US"
               }
             }
           ]
         },
         {
           "skus": [
             "products/product_id/skus/google_workspace_sku_id2","google_workspace_chrome_sku_id3"
           ],
           "billingAccountPurchaseInfos": [
             {
               "billingAccount": {
                 "name": "accounts/123/billingAccounts/gw_billing_account_id1",
                 "displayName": "Google_Workspace_USD_US_1",
                 "currencyCode": "USD",
                 "regionCode": "US"
               }
             },
             {
               "billingAccount": {
                 "name": "accounts/123/billingAccounts/gw_billing_account_id2",
                 "displayName": "Google_Workspace_CAD_CA_1",
                 "currencyCode": "CAD",
                 "regionCode": "CA"
               }
             }
           ]
         }
       ]
     }
     ```
    
  4. Para cada par TransferableSku y BillingAccount, usa el método listTransferableOffers para encontrar los TransferableOffers disponibles. En este punto, deberías tener la lista de tuplas del cliente que consta de TransferableSku, BillingAccounts y TransferableOffer.

    ListTransferableOffersRequest
    {
      "parent": "accounts/abc",
      "cloudIdentityId": "cloud_identity_id",
      "sku": "products/product_id/skus/voice_sku_id1",
      "billingAccount": "ccounts/123/billingAccounts/voice_billing_account_id1"
    }
    ListTransferableOffersResponse
       {
         "transferableOffers": [
           {
             "offer": {
               "name": "accounts/123/offers/voice_offer_id1",
             },
             "sku": {
               "name": "products/product_id/skus/voice_sku_id1",
             },
             "plan": {
               "paymentPlan": "FLEXIBLE",
               "paymentCycle": {
                 "duration": 1,
                 "periodType": "MONTH"
               }
             },
             "priceReferenceId": "price_reference_id_voice_offer_12"
           }
         ],
       }
    
  5. Por cada tupla, crea un objeto Entitlement correspondiente. Cada objeto Entitlement necesita un objeto Offer, un objeto BillingAccount y los parámetros obligatorios. Rellena el ID de referencia de precio en el derecho cuando esté presente en PurchasableOffer para asegurarte de que el nuevo derecho tenga el precio indicado anteriormente. Si no se incluye este ID de referencia de precio, no se garantiza que el descuento y el precio efectivo devueltos por ListPurchasableOffersResponse sean los mismos en esta llamada TransferEntitlements. Si rellenas este ID de referencia de precio, se asegurará de que el precio coincida en este nuevo derecho. Para realizar la transferencia, llama al método transferEntitlements.

    TransferEntitlementsRequest
    {
      "parent": "accounts/abc/customers/123",
      "entitlements": [
        { 
          "offer": "accounts/123/offers/voice_offer_id1",
          "maxUnits": 100,
          "billingAccount": "accounts/123/billingAccounts/voice_billing_account_id1",
          "priceReferenceId": "price_reference_id_voice_offer_12"
        },
        {
          "offer": "accounts/123/offers/gw_offer_id2",
          "maxUnits": 150,
          "billingAccount": "accounts/123/billingAccounts/gw_billing_account_id1"
        }
        {
          "offer": "accounts/123/offers/gw_chrome_offer_id3",
          "maxUnits": 200,
          "billingAccount": "accounts/123/billingAccounts/gw_billing_account_id1",
          "priceReferenceId": "price_reference_id_chrome_offer_34"
        }   
      ]
    }
    TransferEntitlementsResponse
    {
      "name": "operations/operation_id1"
    }