Passer à un nouvel abonnement commercial

S’applique à : Espace partenaires | Espace partenaires géré par 21Vianet | Espace partenaires pour Microsoft Cloud pour le gouvernement des États-Unis

Rôles appropriés

  • Agent administrateur

Ces méthodes prennent en charge les abonnements traditionnels et de nouvelles sources commerciales.

Remarque

Les nouvelles expériences commerciales pour les services basés sur des licences incluent de nombreuses nouvelles fonctionnalités et sont disponibles pour toutes les fournisseur de solutions Cloud (csp). Pour plus d’informations, consultez vue d’ensemble des nouvelles expériences commerciales.

Utilisé pour mettre à niveau le nouvel abonnement commercial d’un client vers un abonnement cible ou convertir une version d’évaluation NCE en abonnement payant. Pour effectuer la transition d’un abonnement, deux demandes d’API doivent être effectuées. Commencez par GET eligible transitions pour obtenir les SKU disponibles pour la mise à niveau. Ensuite, effectuez une requête POST sur transition pour exécuter la transition.

Obtenir les éligibilités de transition

Retourne la liste des transitions éligibles pour un client, un abonnement et un type demandé donnés. Retourne également l’éligibilité à la mise à niveau de l’abonnement de destination. Les éligibilités de transition peuvent inclure des offres qui se trouvent dans l’état EndofSaleWithConversions.

Prérequis

  • Informations d’identification, comme décrites dans l’authentification du Partner Center. Ce scénario prend en charge l’authentification avec les identifiants de l’application seule ainsi qu’avec ceux combinés de l’application et de l’utilisateur.

  • Un identifiant client (customer-tenant-id). Si vous ne connaissez pas l’ID du client, vous pouvez le rechercher dans Partner Center en sélectionnant l’espace de travail Clients, puis le client dans la liste des clients, puis Compte. Sur la page Compte du client, recherchez l’ID Microsoft dans la section Informations sur le compte client. L’ID Microsoft est identique à l’ID client (customer-tenant-id).

  • Identifiant d’abonnement pour l’abonnement initial.

Rôles GDAP

Vous aurez besoin d’au moins l’un des rôles GDAP suivants :

  • Lecteur de répertoire
  • Global Reader

Remarque

Bien que cette API soit disponible pour le mode hérité et NCE, GDAP n’est requis que pour le mode hérité.

Demande REST

Syntaxe de la requête

Méthode URI de la requête
GET {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType={immediate, scheduled} HTTP/1.1

Paramètre d’URI

Utilisez les paramètres de requête suivants pour retourner des transitions éligibles.

Nom Type Obligatoire Description
customer-tenant-id guid Y Un GUID correspondant au tenant du client.
ID d’abonnement guid Y Un GUID correspondant à l’abonnement initial.
eligibilityType string N Décrit quand la transition doit être exécutée ; peut être immédiat ou planifié. La valeur par défaut est Immediate.

En-têtes de requête

Pour plus d’informations, consultez En-têtes REST du Centre de partenaires.

Corps de la requête

Aucune

Exemple de requête

GET https://api.partnercenter.microsoft.com/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType=immediate HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

Réponse REST

Si elle réussit, cette méthode retourne une liste des transitions éligibles pour l’abonnement donné dans le corps de la réponse.

Codes d’erreur et de réussite de la réponse

Chaque réponse est fournie avec un code d’état HTTP qui indique la réussite ou l’échec et plus d’informations de débogage. Utilisez un outil de suivi réseau pour lire ce code, le type d’erreur et d’autres paramètres. Pour la liste complète, consultez Codes d’erreur.

Erreurs d’éligibilité

Descriptions et signification des erreurs.

Description de l'erreur Sens
L’abonnement ne peut pas être transitionné : l’abonnement source n’est pas actif. Le statut secondaire d’origine n’est pas actif
L’abonnement ne peut pas être transféré : l’abonnement source n’est pas encore provisionné. Le sous-état FulfillmentState d’origine n’indique pas une réussite
Le type de transition n’est pas compatible - le mappage de l’abonnement AzureAD est requis. Erreur LegacyCannotConvertSubscriptionId lors de l’appel de GetSubscriptionUpgradeConflicts
Le type de transition n’est pas compatible : les abonnements en conflit pour le transfert de licence existent. Si un service Microsoft Entra possède des ID d’abonnement à partir d’un autre abonnement, ajoutez-le à la liste des conflits (y compris les achats effectués avec un flux d’achat hérité ou moderne)

Erreurs d’éligibilité de l’abonnement

Si un abonnement de destination ne peut pas faire l’objet d’une mise à niveau vers celui-ci, l’une des raisons suivantes est renvoyée.

Des listes vides sont renvoyées si l’abonnement source est un abonnement d’essai ou si eligibilityType est défini sur Scheduled. Vous ne pouvez passer qu’à un abonnement existant avec une transition immédiate (également appelée « midterm »), pas une modification planifiée.

Description de l'erreur Code d’erreur
L’abonnement n’est pas actif. SubscriptionNotActive = 1
L’abonnement est encore dans le délai de résiliation. SubscriptionInCancellationWindow = 2
La durée de l’abonnement est plus courte que la durée de l’abonnement source. SubscriptionTermDurationShorterThanSourceTermDuration = 3
La date de fin de l’abonnement est antérieure à la date de fin de l’abonnement source. La date de fin de l’abonnement est antérieure à la date de fin de l’abonnement source. = 4

Exemple de réponse

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{
  "totalCount": 2,
  "items": [
    {
      "operationId": "1caf8ec7-62cc-4ab5-b35d-572d2a62974c",
      "catalogItemId": "CFQ7TTC0KZCR:0001:CFQ7TTC0K71H",
      "title": "Microsoft 365 E5 Test Sku Title",
      "description": "Microsoft 365 E5 Test Sku Description",
      "quantity": 1,
      "subscriptionEligibilities": [
        {
          "isEligible": false,
          "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
          "subscriptionFriendlyName": "Microsoft 365 Business Premium",
          "subscriptionTermDuration": "P1M",
          "subscriptionBillingCycle": "monthly",
          "errors": [
            {
              "code": 3,
              "description": "The subscription's term duration is shorter than the source subscription's term duration."
            }
          ]
        },
        {
          "isEligible": true,
          "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
          "subscriptionFriendlyName": "Microsoft 365 Business Premium",
          "subscriptionTermDuration": "P1Y",
          "subscriptionBillingCycle": "monthly",
          "errors": []
        }
      ],
      "eligibilities": [
        {
          "isEligible": true,
          "transitionType": "transition_only",
          "errors": []
        },
        {
          "isEligible": false,
          "transitionType": "transition_with_license_transfer",
          "errors": [
            {
              "code": 3,
              "description": "Subscription cannot be transitioned because there are conflicting services."
            }
          ]
        }
      ],
      "attributes": {
        "objectType": "TransitionEligibility"
      }
    },
    {
      "operationId": "1caf8ec7-62cc-4ab5-b35d-572d2a62974c",
      "catalogItemId": "CFQ7TTC0L4M3:0001:CFQ7TTC0K78T",
      "title": "Business Premium Test Sku Title",
      "description": "Business Premium Test Sku Description",
      "quantity": 1,
      "eligibilities": [
        {
          "isEligible": false,
          "transitionType": "transition_with_license_transfer",
          "errors": [
            {
              "code": 3,
              "description": "Subscription cannot be transitioned because there are conflicting services."
            }
          ]
        }
      ],
      "attributes": {
        "objectType": "TransitionEligibility"
      }
    }
  ],
  "attributes": {
    "objectType": "Collection"
  }
}

Exemple de réponse pour les dates autorisées de transition

Certaines références SKU de trois ans avec des équipes permettent aux partenaires en Europe de transférer vers des références SKU sans équipes. Ces transitions ne peuvent se produire que sur les dates annversaires telles que définies dans le résultat elgibily de transition et les dates autorisées.

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{ 
    "totalCount": 1, 
    "items": [ 
        { 
            "catalogItemId": "CFQ7TTBZZR6H:001L:CFQ7TTC0K994", 
            "title": "Microsoft 365 E7 - 3 year", 
            "description": "Microsoft 365 E5, Microsoft 365 Copilot, Agent 365, and Entra Suite. This per-user licensed suite of products offers customers the latest, most advanced, productivity, security, and AI for user and user's agents.", 
            "quantity": 100, 
            "subscriptionEligibilities": [], 
            "transitionAllowedDates": ["2026-08-01T00:00:00Z", "2027-08-01T00:00:00Z"],  // This field will show up only if applicable 
            "eligibilities": [ 
                { 
                    "isEligible": true, 
                    "transitionType": "transition_only", 
                    "errors": [] 
                }, 
                { 
                    "isEligible": true, 
                    "transitionType": "transition_with_license_transfer", 
                    "errors": [] 
                } 
            ], 
            "attributes": { 
                "objectType": "TransitionEligibility" 
            } 
        }] 
} 

Après la transition

Publie une demande de transition pour un client et un abonnement donnés. Retourne la transition avec son état initial.

Prérequis

  • Informations d’identification, comme décrit dans Authentification de l’Espace partenaires. Ce scénario prend en charge l’authentification avec des informations d’identification d’application seule et d’application + utilisateur.

  • ID du client (customer-tenant-id). Si vous ne connaissez pas l’identifiant du client, vous pouvez le trouver dans Partner Center en sélectionnant l’espace de travail Customers, puis le client dans la liste des clients, puis Account. Sur la page Compte du client, recherchez l’ID Microsoft dans la section Informations sur le compte client. L’ID Microsoft est identique à l’ID client (customer-tenant-id).

  • Un identifiant pour l’abonnement initial.

Rôles GDAP

Vous aurez besoin d’au moins l’un des rôles GDAP suivants :

  • Lecteur d’annuaire ou Lecteur global (transition uniquement)
  • Enregistreur d’annuaires (transition avec transfert de licence)

Remarque

Bien que cette API soit disponible pour l’ancien modèle et NCE, GDAP n’est requis que pour l’ancien modèle.

Demande REST

Syntaxe de la requête

Méthode URI de la requête
POST {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitions HTTP/1.1

Paramètre d’URI

Utilisez les paramètres de requête suivants pour exécuter une transition.

Nom Type Obligatoire Description
customer-tenant-id guid Y Un GUID correspondant au tenant du client.
ID d’abonnement guid Y Un GUID correspondant à l’abonnement initial.

En-têtes de requête

Pour plus d’informations, consultez En-têtes REST de Partner Center.

Corps de la requête

Ce tableau décrit les propriétés de Transition dans le corps de la requête.

Propriété Type Obligatoire Description
fromCatalogItemId chaîne de caractères Non Élément de catalogue à partir duquel vous effectuez la transition.
fromSubscriptionId chaîne de caractères Non ID d’abonnement à partir duquel vous effectuez la transition.
toCatalogItemId chaîne de caractères Oui Élément de catalogue vers lequel vous effectuez la transition.
toSubscriptionId chaîne de caractères Non ID d’abonnement vers lequel vous effectuez la transition.
quantité entier Oui Le nombre de licences à transférer.
termDuration string Non Spécification de la durée de l’abonnement.
billingCycle string Non Spécification de la cycle de facturation de l’abonnement.
transitionType chaîne de caractères Oui Type de transition. Valeurs possibles - transition_only, transition_with_license_transfer.

Exemple de requête

POST https://api.partnercenter.microsoft.com/v1/customers/{customerId}/subscriptions/{subscriptionId}/transitions HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

{
    "fromCatalogItemId": "CFQ7TTC0LF8Q:0001:CFQ7TTC0K39X",
    "fromSubscriptionId": "e487e8dc-421e-4275-cb42-3c1c8daccf70",
    "toCatalogItemId": "CFQ7TTC0LF8R:0001:CFQ7TTC0KCSV",
    "toSubscriptionId": "0af52192-4a2a-4364-d25b-c8ecab3a5697",
    "quantity": 2,
    "termDuration": "P1M",
    "billingCycle": "Monthly",
    "transitionType": "transition_only"
}

Réponse REST

En cas de réussite, cette méthode renvoie une ressource Transition dans son état initial.

Codes d’erreur et de réussite de la réponse

Chaque réponse est fournie avec un code d’état HTTP qui indique la réussite ou l’échec et plus d’informations de débogage. Utilisez un outil de suivi réseau pour lire ce code, le type d’erreur et d’autres paramètres. Pour la liste complète, consultez Codes d’erreur.

Exemple de réponse

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{
    "fromCatalogItemId": "CFQ7TTC0LF8Q:0001:CFQ7TTC0K39X",
    "fromSubscriptionId": "e487e8dc-421e-4275-cb42-3c1c8daccf70",
    "toCatalogItemId": "CFQ7TTC0LF8R:0001:CFQ7TTC0KCSV",
    "toSubscriptionId": "0af52192-4a2a-4364-d25b-c8ecab3a5697",
    "quantity": 2,
    "termDuration": "P1M",
    "billingCycle": "Monthly",
    "transitionType": "transition_only"
    "Events": [
        {
            "name": "Conversion",
            "status": "Started ",
            "timestamp": "2021-01-08T18:01:14.7488618Z",
            "attributes":
            {
                "objectType": "TransitionEvent"
            }
        }
    ],
    "attributes":
    {
        "objectType": "Transition" 
    }
}