다음을 통해 공유


Microsoft 상업용 Marketplace의 SaaS 처리 작업 API v2

이 문서에서는 SaaS 처리 작업 API 버전 2에 대해 설명합니다.

작업은 ChangePlan, ChangeQuantity 및 복구 작업의 일부로 웹후크를 통해 들어오는 모든 요청에 응답하는 데 유용합니다. 이렇게 하면 아래 API를 사용하여 성공 또는 실패로 웹후크 작업을 패치하여 요청을 수락하거나 거부할 수 있습니다.

이는 ACK가 필요한 ChangePlan, ChangeQuantity 및 복구와 같은 웹후크 이벤트에만 적용됩니다. ISV(독립 소프트웨어 공급업체)는 알림 전용 이벤트이므로 갱신, 일시 중단 및 구독 취소 이벤트에 대한 조치가 필요하지 않습니다.

미해결 작업 나열

지정된 SaaS 구독에 대한 보류 중인 작업 목록을 가져옵니다. 게시자는 작업 패치 API를 호출하여 반환된 작업을 승인해야 합니다.

Get https://marketplaceapi.microsoft.com/api/saas/subscriptions/<subscriptionId>/operations?api-version=<ApiVersion>

쿼리 매개 변수:

매개 변수
ApiVersion 2018-08-31을 사용합니다.
subscriptionId 구매한 SaaS 구독의 고유 식별자입니다. 이 ID는 확인 API를 사용하여 상업용 Marketplace 권한 부여 토큰을 확인한 후에 가져옵니다.

요청 헤더:

매개 변수
content-type application/json
x-ms-requestid 클라이언트의 요청을 추적하기 위한 고유 문자열 값(GUID)입니다. 이 값이 제공되지 않으면 응답 헤더에 값이 생성되고 제공됩니다.
x-ms-correlationid 클라이언트의 작업에 대한 고유한 문자열 값입니다. 이 매개 변수는 클라이언트 작업의 모든 이벤트를 서버 쪽의 이벤트와 상호 연결합니다. 이 값이 제공되지 않으면 응답 헤더에 값이 생성되고 제공됩니다.
authorization 형식은 "Bearer <access_token>" Microsoft Entra 앱을 기반으로 토큰 가져오기에 설명된 대로 게시자가 토큰 값을 검색하는 경우입니다.

응답 코드:

코드: 200 지정된 SaaS 구독에서 보류 중인 작업을 반환합니다.

응답 페이로드 예제:

{
  "operations": [
    {
      "id": "<guid>", //Operation ID, should be provided in the operations patch API call
      "activityId": "<guid>", //not relevant
      "subscriptionId": "<guid>", // subscriptionId of the SaaS subscription that is being reinstated
      "offerId": "offer1", // purchased offer ID
      "publisherId": "contoso",
      "planId": "silver", // purchased plan ID
      "quantity": 20, // purchased amount of seats, will be empty is not relevant
      "action": "Reinstate",
      "timeStamp": "2018-12-01T00:00:00", // UTC
      "status": "InProgress" // the only status that can be returned in this case
    }
  ]
}

보류 중인 작업이 없는 경우 빈 json을 반환합니다.

코드: 400 잘못된 요청: 유효성 검사 실패.

코드: 403 사용할 수 없음. 권한 부여 토큰이 잘못되었거나 만료되었거나 제공되지 않았습니다. 요청이 권한 부여 토큰을 만드는 데 사용된 것과 다른 Microsoft Entra 앱 ID로 게시된 제품에 대한 SaaS 구독에 액세스하려고 시도합니다.

이 오류는 종종 SaaS 등록을 제대로 수행하지 않았을 때 발생하는 증상입니다.

코드: 404를 찾을 수 없음. SaaS 구독을 subscriptionId 찾을 수 없습니다.

코드: 500 내부 서버 오류. API 호출을 다시 시도합니다. 오류가 지속되면 Microsoft 지원에 문의하세요.

작업 상태 가져오기

이 API를 통해 게시자는 지정된 비동기 작업(Unsubscribe, ChangePlan 또는 ChangeQuantity)의 상태를 추적할 수 있습니다.

이 API 호출의 operationId 경우 Operation-Location에서 반환된 값, 보류 중인 Operations API 호출 가져오기 또는 <id> 웹후크 호출에서 받은 매개 변수 값에서 검색할 수 있습니다.

Get https://marketplaceapi.microsoft.com/api/saas/subscriptions/<subscriptionId>/operations/<operationId>?api-version=<ApiVersion>

쿼리 매개 변수:

매개 변수
ApiVersion 2018-08-31을 사용합니다.
subscriptionId 구매한 SaaS 구독의 고유 식별자입니다. 이 ID는 확인 API를 사용하여 상업용 Marketplace 권한 부여 토큰을 확인한 후에 가져옵니다.
operationId 검색되는 작업의 고유 식별자입니다.

요청 헤더:

매개 변수
content-type application/json
x-ms-requestid 클라이언트의 요청을 추적하기 위한 고유 문자열 값(GUID)입니다. 이 값이 제공되지 않으면 응답 헤더에 값이 생성되고 제공됩니다.
x-ms-correlationid 클라이언트의 작업에 대한 고유한 문자열 값입니다. 이 매개 변수는 클라이언트 작업의 모든 이벤트를 서버 쪽의 이벤트와 상호 연결합니다. 이 값이 제공되지 않으면 응답 헤더에 값이 생성되고 제공됩니다.
authorization 이 API 호출을 만드는 게시자를 식별하는 고유한 액세스 토큰입니다. 형식은 "Bearer <access_token>" Microsoft Entra 앱을 기반으로 토큰 가져오기에 설명된 대로 게시자가 토큰 값을 검색하는 경우입니다.

응답 코드:

코드: 200 지정된 SaaS 작업에 대한 세부 정보를 가져옵니다.

응답 페이로드 예제:

Response body:
{
  "id  ": "<guid>", //Operation ID, should be provided in the patch operation API call
  "activityId": "<guid>", //not relevant
  "subscriptionId": "<guid>", // subscriptionId of the SaaS subscription for which this operation is relevant
  "offerId": "offer1", // purchased offer ID
  "publisherId": "contoso",
  "planId": "silver", // purchased plan ID
  "quantity": 20, // purchased amount of seats
  "action": "ChangePlan", // Can be ChangePlan, ChangeQuantity or Reinstate
  "timeStamp": "2018-12-01T00:00:00", // UTC
  "status": "InProgress", // Possible values: NotStarted, InProgress, Failed, Succeeded, Conflict (new quantity / plan is the same as existing)
  "errorStatusCode": "",
  "errorMessage": ""
}

코드: 403 사용할 수 없음. 권한 부여 토큰이 잘못되었거나 만료되었거나 제공되지 않았습니다. 요청이 권한 부여 토큰을 만드는 데 사용된 것과 다른 Microsoft Entra 앱 ID로 게시된 제품에 대한 SaaS 구독에 액세스하려고 시도합니다.

이 오류는 종종 SaaS 등록을 제대로 수행하지 않았을 때 발생하는 증상입니다.

코드: 404를 찾을 수 없음.

  • 구독을 subscriptionId 찾을 수 없습니다.
  • operationId 작업을 찾을 수 없습니다.

코드: 500 내부 서버 오류. API 호출을 다시 시도합니다. 오류가 지속되면 Microsoft 지원에 문의하세요.

작업의 상태 업데이트합니다.

이 API를 사용하여 보류 중인 작업의 상태 업데이트하여 게시자 쪽에서 작업의 성공 또는 실패를 나타냅니다.

이 API 호출의 operationId 경우 Operation-Location에서 반환된 값, 보류 중인 Operations API 호출 가져오기 또는 <id> 웹후크 호출에서 받은 매개 변수 값에서 검색할 수 있습니다.

Patch https://marketplaceapi.microsoft.com/api/saas/subscriptions/<subscriptionId>/operations/<operationId>?api-version=<ApiVersion>

쿼리 매개 변수:

매개 변수
ApiVersion 2018-08-31을 사용합니다.
subscriptionId 구매한 SaaS 구독의 고유 식별자입니다. 이 ID는 확인 API를 사용하여 상업용 Marketplace 권한 부여 토큰을 확인한 후에 가져옵니다.
operationId 완료되는 작업의 고유 식별자입니다.

요청 헤더:

매개 변수
content-type application/json
x-ms-requestid 클라이언트의 요청을 추적하기 위한 고유 문자열 값(GUID)입니다. 이 값이 제공되지 않으면 응답 헤더에 값이 생성되고 제공됩니다.
x-ms-correlationid 클라이언트의 작업에 대한 고유한 문자열 값입니다. 이 매개 변수는 클라이언트 작업의 모든 이벤트를 서버 쪽의 이벤트와 상호 연결합니다. 이 값이 제공되지 않으면 응답 헤더에 값이 생성되고 제공됩니다.
authorization 이 API 호출을 수행하는 게시자를 식별하는 고유한 액세스 토큰입니다. 형식은 "Bearer <access_token>" Microsoft Entra 앱을 기반으로 토큰 가져오기에 설명된 대로 게시자가 토큰 값을 검색하는 경우입니다.

요청 페이로드 예제:

{
  "status": "Success" // Allowed Values: Success/Failure. Indicates the status of the operation on ISV side.
}

응답 코드:

코드: 200 파트너 쪽에서 작업이 완료되었음을 알리기 위한 호출입니다. 예를 들어 이 응답은 게시자 쪽에서 사용자 또는 계획의 변경이 완료되었음을 알릴 수 있습니다.

코드: 403

  • 금지됩니다. 권한 부여 토큰을 사용할 수 없거나, 유효하지 않거나, 만료되었습니다. 요청이 현재 게시자에 속하지 않는 구독에 액세스하려고 할 수 있습니다.
  • 금지됩니다. 권한 부여 토큰이 잘못되었거나 만료되었거나 제공되지 않았습니다. 요청이 권한 부여 토큰을 만드는 데 사용된 것과 다른 Microsoft Entra 앱 ID로 게시된 제품에 대한 SaaS 구독에 액세스하려고 시도합니다.

이 오류는 종종 SaaS 등록을 제대로 수행하지 않았을 때 발생하는 증상입니다.

코드: 404를 찾을 수 없음.

  • 구독을 subscriptionId 찾을 수 없습니다.
  • operationId 작업을 찾을 수 없습니다.

코드: 409 충돌. 예를 들어 최신 업데이트가 이미 수행되었습니다.

코드: 500 내부 서버 오류. API 호출을 다시 시도합니다. 오류가 지속되면 Microsoft 지원에 문의하세요.

다음 단계