新しいコマース サブスクリプションを移行する

適用対象: パートナー センター |21Vianet が運営するパートナー センター |Microsoft Cloud for US Government のパートナー センター

適切な役割

  • 管理エージェント

これらの方法では、従来のコマース ソース サブスクリプションと新しいコマース ソース サブスクリプションの両方がサポートされます。

ライセンス ベースのサービスの新しいコマース エクスペリエンスには、多くの新機能が含まれており、すべてのクラウド ソリューション プロバイダー (CSP) が利用できます。 詳細については、新しいコマース エクスペリエンスの概要を参照してください。

顧客の新しいコマース サブスクリプションをターゲット サブスクリプションにアップグレードしたり、NCE 試用版を有料サブスクリプションに変換したりするために使用されます。 サブスクリプションを移行するには、2 つの API 要求を行う必要があります。 まずGET eligible transitionsを実行して、アップグレード可能な SKU を取得します。 次に、遷移を実行するには、POST transition を実行します。

移行の資格を取得する

特定の顧客、サブスクリプション、および要求された種類の対象となる移行の一覧を返します。 また、移行先サブスクリプションがアップグレードの対象かどうかも返します。 移行対象には、EndofSaleWithConversions 状態のオファーが含まれる場合があります。

前提条件

  • Partner Center の認証で説明されている資格情報。 このシナリオでは、スタンドアロン アプリとアプリ + ユーザーの両方の資格情報を使った認証がサポートされています。

  • 顧客 ID(customer-tenant-id)。 顧客の ID がわからない場合は、パートナー センター[顧客] ワークスペースを選び、顧客一覧から顧客を選び、[アカウント] を選んで調べることができます。 顧客の [アカウント] ページの [顧客のアカウント情報] セクションで Microsoft ID を探します。 Microsoft ID は、顧客 ID(customer-tenant-id)と同じです。

  • 初期サブスクリプションのサブスクリプション ID。

GDAP ロール

以下の GDAP ロールのうち少なくとも 1 つが必要です。

  • ディレクトリ閲覧者
  • グローバル リーダー

この API はレガシと NCE で使用できます。GDAP はレガシでのみ必要です。

REST リクエスト

要求の構文

方法 要求 URI
GET {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType={immediate, scheduled} HTTP/1.1

URI パラメーター

次のクエリ パラメーターを使用して、適格な遷移を返します。

名前 タイプ 必須 説明
customer-tenant-id guid 顧客のテナントに対応する GUID。
subscription-id guid 初期サブスクリプションに対応する GUID。
eligibilityType string N 遷移を実行するタイミングについて説明します。は、即時またはスケジュールできます。 既定値は Immediate です。

リクエストヘッダー

詳細については、Partner Center REST ヘッダーを参照してください。

要求本文

なし

要求の例

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

REST 応答

成功した場合、このメソッドは、応答本文で特定のサブスクリプションの適格な遷移の一覧を返します。

応答の成功とエラーのコード

各応答には、成功または失敗とより多くのデバッグ情報を示す HTTP 状態コードが付属しています。 ネットワーク トレース ツールを使用して、このコード、エラーの種類、およびその他のパラメーターを読み取ります。 完全な一覧については、エラー コードを参照してください。

適格性エラー

エラーの説明と意味。

エラーの説明 意味
サブスクリプションを移行できません。 ソース サブスクリプションはアクティブではありません。 元のサブステータスがアクティブではない
サブスクリプションを移行できません。 ソース サブスクリプションはまだプロビジョニングされていません。 元のサブ FulfillmentState が成功しない
移行の種類に互換性がありません- AzureAD サブスクリプションのマッピングが必要です。 GetSubscriptionUpgradeConflicts の呼び出し時に発生する LegacyCannotConvertSubscriptionId エラー
移行の種類に互換性がありません。ライセンス転送のサブスクリプションが競合しています。 Microsoft Entra サービスに別のサブスクリプションのサブスクリプション ID がある場合は、競合リストに追加します (従来または最新の購入フローで行われた購入を含む)

サブスクリプションの適格性エラー

移行先サブスクリプションをアップグレードする資格がない場合は、次のいずれかの理由が返されます。

ソース サブスクリプションが試用版の場合、または eligibilityType が Scheduled として指定されている場合、空のリストが返されます。 既存のサブスクリプションに移行できるのは、スケジュールされた変更ではなく、即時 ("中間" とも呼ばれます) の移行のみです。

エラーの説明 エラー コード
サブスクリプションがアクティブではありません。 SubscriptionNotActive = 1
サブスクリプションはキャンセル期間内です。 SubscriptionInCancellationWindow = 2
サブスクリプション期間がソース サブスクリプションの期間より短くなっています。 SubscriptionTermDurationShorterThanSourceTermDuration = 3
サブスクリプション有効期限がソース サブスクリプション有効期限より前になっています。 サブスクリプション有効期限がソース サブスクリプション有効期限より前になっています。 = 4

応答の例

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"
  }
}

切り替え可能な日付の応答の例

チームを含む一部の 3 年間の SKU では、ヨーロッパのパートナーはチームなしで SKU に移行できます。 これらの切り替えは、「移行資格の結果」および「許可された日付」に定義されている応当日にのみ行われます。

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" 
            } 
        }] 
} 

移行後

特定の顧客とサブスクリプションの移行要求を投稿します。 初期状態を含む切り替えを返します。

前提条件

  • Partner Center の認証で説明されている資格情報。 このシナリオでは、スタンドアロン アプリとアプリ + ユーザーの両方の資格情報を使った認証がサポートされています。

  • 顧客 ID(customer-tenant-id)。 顧客の ID がわからない場合は、パートナー センター[顧客] ワークスペースを選び、顧客一覧から顧客を選び、[アカウント] を選んで調べることができます。 顧客の [アカウント] ページの [顧客のアカウント情報] セクションで Microsoft ID を探します。 Microsoft ID は、顧客 ID(customer-tenant-id)と同じです。

  • 初期サブスクリプションのサブスクリプション ID。

GDAP ロール

以下の GDAP ロールのうち少なくとも 1 つが必要です。

  • ディレクトリ リーダーまたはグローバル リーダー (移行のみ)
  • ディレクトリ ライター (ライセンス転送による移行)

この API はレガシと NCE で使用できます。GDAP はレガシでのみ必要です。

REST リクエスト

要求の構文

方法 要求 URI
投稿 {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitions HTTP/1.1

URI パラメーター

遷移を実行するには、次のクエリ パラメーターを使用します。

名前 タイプ 必須 説明
customer-tenant-id guid 顧客のテナントに対応する GUID。
subscription-id guid 初期サブスクリプションに対応する GUID。

リクエストヘッダー

詳細については、Partner Center REST ヘッダーを参照してください。

要求本文

この表は、リクエスト本文内の Transition プロパティについて説明しています。

プロパティ タイプ 必須 説明
fromCatalogItemId 文字列 いいえ 切り替えの対象となるカタログ アイテム。
fromSubscriptionId 文字列 いいえ 移行元のサブスクリプション ID。
toCatalogItemId 文字列 はい 移行先のカタログ項目。
toSubscriptionId 文字列 いいえ 移行先のサブスクリプション ID。
数量 整数 はい 移行対象のライセンス数。
termDuration 文字列 いいえ サブスクリプションの期間を指定します。
billingCycle 文字列 いいえ サブスクリプションの支払いサイクルを指定します。
transitionType 文字列 はい 遷移の種類。 指定可能な値 - transition_onlytransition_with_license_transfer

要求の例

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"
}

REST 応答

成功した場合、このメソッドはその初期ステータスの Transition リソースを返します。

応答の成功とエラーのコード

各応答には、成功または失敗とより多くのデバッグ情報を示す HTTP 状態コードが付属しています。 ネットワーク トレース ツールを使用して、このコード、エラーの種類、およびその他のパラメーターを読み取ります。 完全な一覧については、エラー コードを参照してください。

応答の例

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" 
    }
}