청구서 발행 및 조정 API v2(베타)

적용 대상: 파트너 센터 | 21Vianet에서 운영되는 파트너 센터 | Microsoft Cloud for US Government 파트너 센터

이러한 API를 사용하여 청구 및 청구되지 않은 일일 등급 사용량 현황 데이터를 비동기적으로 가져옵니다.

참고 항목

청구된 일일 등급 사용량에 대한 이 API는 2024년 6월 30일 이후에 작동이 중지됩니다. 사용할 버전과 시기를 결정하려면 다음 세부 정보를 참조하세요.

  • v2 GA로 전환하지 않는 한 2024년 6월 30일까지 이 API를 사용하여 2022년 9월부터 2024년 6월까지 청구 기간 동안 생성된 청구서에 대한 일일 등급 사용량 품목을 청구합니다.
  • 2024년 6월 30일 이후에는 API v2 GA만 사용하여 2022년 9월부터 청구 기간 동안 생성된 청구서에 대해 청구되는 일일 등급 사용량 품목을 가져옵니다.

청구되지 않은 일일 등급 사용량에 대한 이 API는 2024년 6월 30일 이후에 작동이 중지됩니다. 사용할 버전과 시기를 결정하려면 다음 세부 정보를 참조하세요.

  • v2 GA로 전환하지 않는 한 2024 년 6월 30일까지 이 API를 사용하여 현재 및 이전 청구 기간에 대한 청구되지 않은 일일 등급 사용량 품목을 가져옵니다.
  • 2024년 6월 30일 이후 API v2 GA만 사용하여 현재 및 이전 청구에 대해 청구되지 않은 일일 정격 사용량 품목을 가져옵니다.

새 v2 GA API로 마이그레이션 준비를 시작하려면 다음 링크를 참조하세요.

청구 및 청구되지 않은 일일 등급 사용량 조정 API v2(GA)

참고 항목

API 또는 파트너 센터 포털을 통해 매일 청구되지 않은 사용량 현황 데이터를 검색할 수 있습니다. 데이터를 사용할 수 있게 되는 데 최대 24시간이 걸릴 수 있습니다. 그러나 위치 및 미터가 사용량을 보고하는 시기에 따라 추가 지연이 있을 수 있습니다.

경우에 따라 이전 달의 청구된 사용량 현황 데이터가 배달될 때까지 가장 최근의 청구되지 않은 사용량 현황 데이터가 표시되지 않을 수 있습니다. 이는 청구된 사용량 현황 데이터가 합의된 시간 내에 전달되도록 하기 위해 수행됩니다. 청구된 사용량 현황 데이터를 받으면 월 시작부터 업데이트된 모든 청구되지 않은 사용 현황 데이터를 검색할 수 있습니다.

Important

일일 등급 사용량 데이터에는 다음 제품에 대한 요금이 포함되지 않습니다.

  • Azure 예약
  • Azure 절약 플랜
  • Office
  • Dynamics
  • Microsoft Power Apps
  • 영구 소프트웨어
  • 소프트웨어 구독
  • 타사 SaaS 제품

API 개요

비동기 API는 관리 가능한 청크에서 청구 및 조정 데이터에 빠르게 액세스하는 새로운 방법입니다. 기본 시간 동안 열린 연결을 획득하고 수백만 개의 트랜잭션을 반복적으로 반복할 필요가 없습니다.

Microsoft는 청구 및 조정 API가 결과를 비동기적으로 제공하도록 최적화하기 위해 발레 키비동기 요청-회신 패턴을 사용했습니다. API 응답은 모든 특성 또는 하위 집합을 사용하여 조정 데이터에 액세스하는 토큰을 제공합니다.

세 가지 새로운 단계(API 엔드포인트)를 사용하여 사용량 현황 데이터를 비동기적으로 다운로드할 수 있습니다. 자세한 내용은 다음을 참조하세요.

사용량 줄 항목 엔드포인트

이 API를 사용하여 청구되거나 청구되지 않은 소비 품목에 액세스합니다. 202 HTTP 상태 및 URL이 있는 위치 헤더를 반환합니다. 이 헤더는 매니페스트 URL을 사용하여 성공 상태 받을 때까지 정기적으로 폴링해야 합니다.

엔드포인트 상태 작업

성공 상태 받을 때까지 이 API를 정기적으로 폴링합니다. 요청된 데이터를 사용할 수 없는 경우 API 응답에는 다른 요청을 보내기 전에 대기해야 하는 시간을 나타내는 Retry-After 헤더가 포함됩니다.

매니페스트 엔드포인트

이 엔드포인트는 실제 청구 데이터를 다운로드할 수 있는 스토리지 폴더를 제공합니다. 응답은 파일을 분할하거나 분할하여 처리량 및 I/O 병렬 처리를 최적화합니다.

시퀀스 다이어그램

아래 다이어그램은 조정 데이터를 다운로드하는 데 필요한 단계를 보여 줍니다.

조정 데이터를 다운로드하는 데 필요한 단계를 보여 주는 다이어그램

사용자 작업 순서

아래 단계에 따라 조정 데이터를 검색합니다.

1단계: 요청 제출

API 엔드포인트에 POST 요청을 제출합니다.

청구되지 않은 사용 현황 품목 가져오기

현재 또는 지난 달의 청구되지 않은 사용 현황 품목을 가져옵니다.

API 요청

POST https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/unbilledusage?fragment={fragment}&period={period}?currencyCode={currencyCode}

요청 매개 변수

이름 In Required Type 설명
fragment 쿼리 False 문자열 전체 응답에 대해 "전체"를 선택하거나 특성 하위 집합에 대해 "기본"을 선택합니다. 기본값은 "full"입니다. 이 문서의 특성 목록을 참조하세요.
기간 쿼리 True 문자열 "현재" 또는 "마지막"을 사용하여 현재 또는 지난 달의 사용량을 가져옵니다. "last" 값은 기존 V1 API의 "이전"과 동일합니다.
currencyCode 쿼리 True 문자열 파트너 청구 통화 코드입니다.

사용되지 않는 요청 매개 변수

최신 API 버전에는 다음 URI 매개 변수가 필요하지 않습니다.

이름 설명
Provider 해당 없음. (모든 Azure 플랜 사용량을 반환하며 기존 V1 API의 "일회성"과 동일합니다.)
hasPartnerEarnedCredit 해당 없음. (PEC에 관계없이 모든 데이터를 반환합니다.)
크기 해당 없음.
Offset 해당 없음.
seekOperation 해당 없음.

요청 헤더

문서의 API 에 대한 요청 헤더 목록을 참조하세요.

요청 본문

해당 없음.

API 응답

HTTP/1.1 202 Accepted Operation-Location: https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/811bb8f0-8aca-4807-897c-c15ce50820d6

API는 HTTP 상태 202를 반환합니다. 요청에 따라 API는 다른 표준 상태 반환할 수 있습니다.

이름 설명
202 수락됨 요청이 수락되었습니다. 요청 상태 대한 작업 위치 헤더 URL을 쿼리합니다.

청구된 사용량 품목 가져오기

닫힌 청구 기간에 대한 청구 등급 사용량 품목을 가져옵니다.

API 요청

POST https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billedusage/invoices/{invoiceId}?fragment={fragment}

요청 매개 변수

이름 In Required Type 설명
invoiceId Path True 문자열 파트너 센터 청구서 번호입니다.
조각 쿼리 False 문자열 전체 응답에 대해 "전체"를 선택하거나 특성 하위 집합에 대해 "기본"을 선택합니다. 기본값은 "full"입니다. 이 문서의 특성 목록을 참조하세요.

사용되지 않는 요청 매개 변수

최신 API 버전에는 다음 URI 매개 변수가 필요하지 않습니다.

이름 설명
Provider 해당 없음. (모든 Azure 플랜 사용량을 반환하며 기존 V1 API의 "일회성"과 동일합니다.)
hasPartnerEarnedCredit 해당 없음. (PEC에 관계없이 모든 데이터를 반환합니다.)
크기 해당 없음.
Offset 해당 없음.
seekOperation 해당 없음.

요청 헤더

문서의 API 에 대한 요청 헤더 목록을 참조하세요.

요청 본문

해당 없음.

API 응답

HTTP/1.1 202 Accepted Operation-Location: https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4448-83b4-1e83ab1d4640

API는 "HTTP 202 수락됨"을 반환합니다. 요청에 따라 API는 다른 표준 상태 반환할 수 있습니다.

이름 설명
202 수락됨 요청이 수락되었습니다. 작업 위치 헤더 URL을 폴링하여 요청 상태 확인합니다.

2단계: 요청 상태 확인

터미널 상태 성공하거나 실패한 HTTP 200을 기다립니다. 매니페스트 URL은 성공 상태 "resourceLocation"이 됩니다.

작업 상태 가져오기

조정 데이터 요청의 상태 가져옵니다.

API 요청

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4448-83b4-1e63ab1d3640

요청 매개 변수

이름 In Required Type 설명
operationId Path True 문자열 작업 ID입니다.

요청 헤더

문서의 API 에 대한 요청 헤더 목록을 참조하세요.

요청 본문

해당 없음.

응답 상태

이 문서의 표준 HTTP 상태 외에도 API는 HTTP 상태 아래를 반환할 수 있습니다.

이름 설명
410 없음 각 작업 링크는 지정된 양의 서버 제어 시간 동안 활성화됩니다. 시간이 경과한 후 클라이언트는 새 요청을 제출해야 합니다.

응답 페이로드

API 응답 페이로드는 다음 특성을 반환합니다.

속성 선택 사항 설명
createdDateTime false 요청 시간입니다.
lastActionDateTime false 상태 변경 시간입니다.
resourceLocation true 매니페스트 페이로드 URI입니다.
status false 가능한 값 및 작업입니다.
클라이언트 작업
notstarted "Retry-After" 헤더에 지정된 시간을 기다린 후 상태 검사 또 다른 호출을 합니다.
실행 중 "Retry-After" 헤더에 지정된 시간을 기다린 후 상태 검사 또 다른 호출을 합니다.
성공 데이터가 준비되었음을 나타내는 최종 작업 상태입니다. resourceLocation에 지정된 URI를 사용하여 매니페스트 페이로드를 검색합니다.
실패 영구적 오류를 나타내는 터미널 상태입니다. 작업을 다시 시작합니다.

오류 특성의 경우:

속성 선택 사항 설명
error true 작업 상태 실패한 경우 json 형식으로 제공되는 오류 세부 정보입니다.
속성 선택 사항 설명
message false 오류를 자세히 설명합니다.
코드 false 발생한 오류의 종류를 나타냅니다.

API 요청

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4447-83b4-1e83ab1d3640

API 응답

응답은 데이터를 처리할 때 다시 시도하기 전에 10초 동안 대기하는 것을 제안합니다.

HTTP/1.1 200 OK  
Retry-After: 10  
{  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime":" 2022-06-1T10-01-05Z",  
"status": "running"  
}

API 요청

(이전 요청 후 10초)

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4447-83b4-1e83ab1d3640

API 응답

API는 "succeeded" 상태 및 "resourceLocation" URI를 반환합니다.

HTTP/1.1 200 OK  
Content-Type: application/json  
{  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime": "2022-06-1T10-01-13Z",  
"status": "succeeded",  
"resourceLocation": "https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingmanifests/e03e1882-ff59-4c09-882f-74e60b4d7743"  
}

3단계: 매니페스트 페이로드 가져오기

호출자는 조정 데이터가 Azure Blob에 저장되는 위치에 대해 자세히 알아보기 위해 매니페스트 URL에 GET 요청을 합니다.

매니페스트 가져오기

조정 데이터의 Azure 스토리지 위치에 대한 정보가 있는 매니페스트를 검색합니다.

API 요청

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingmanifests/{manifestId}

요청 매개 변수

이름 In Required Type 설명
manifestId Path True 문자열 매니페스트 ID입니다.

요청 헤더

이 문서의 [API에 대한 요청 헤더 목록]을 참조하세요.

요청 본문

해당 없음.

응답 상태

표준 HTTP 상태 외에도 API는 HTTP 상태 아래에 반환할 수 있습니다.

이름 설명
410 없음 각 매니페스트 링크는 지정된 양의 서버 제어 시간 동안 활성화됩니다. 시간이 경과한 후 클라이언트는 새 요청을 제출해야 합니다.

응답 페이로드

API 응답은 다음 특성을 반환합니다.

이름 설명
버전 매니페스트 스키마 버전입니다.
dataFormat 청구 데이터 파일 형식입니다. 가능한 값 compressedJSONLines: 각 Blob은 압축된 파일이며 파일의 데이터는 JSON 줄 형식입니다. 파일에 액세스하려면 파일의 압축을 해제합니다.
utcCreatedDateTime 매니페스트 파일 생성 시간입니다.
eTag 매니페스트 데이터 버전입니다. 청구 정보가 변경되어 새 eTag 값이 생성됩니다.
partnerTenantId 파트너 테넌트 ID입니다.
rootFolder 파일의 루트 디렉터리입니다.
rootFolderSAS 파일에 액세스하기 위한 SAS 토큰입니다.
partitionType 이 속성은 데이터를 나눕니다. 지정된 파티션에 지원되는 수보다 많은 수의 데이터가 "partitionValue"에 해당하는 여러 파일로 분할됩니다. 데이터는 기본적으로 파일의 줄 항목 수로 분할됩니다. 변경될 수 있으므로 코드에서 고정된 수의 줄 항목 또는 파일 크기를 설정하지 마세요.
blobCount 이 파트너 테넌트 ID의 총 파일 수입니다.
sizeInBytes 모든 파일의 총 바이트 수입니다.
blobs 파트너 테넌트 ID에 대한 모든 파일의 세부 정보가 있는 "Blob" 개체의 JSON 배열입니다.
Blob 개체
속성 Blob의 이름입니다.
sizeInBytes Blob 크기(바이트)입니다.
partitionValue 파일이 포함된 파티션입니다. 큰 파티션은 각각 동일한 "partitionValue"를 가진 여러 파일로 분할됩니다.

샘플 매니페스트 페이로드

{
"version": "1",
"dataFormat": "compressedJSONLines",
"utcCretedDateTime": "2022-04-29T22:40:57.1853571Z",
"eTag": "0x5B168C7B6E589D2",
"partnerTenantId": "14f593ad-1edc-474d-aaa0-83abbf9638da",
"rootFolder": "https://{billing.blob.core.windows.net}/{folder_path}",
"rootFolderSAS": "\*\*\*",
"partitionType": "ItemCount",
"blobCount": 3,
"sizeInBytes": 2000,
"blobs": [
  {
  "name": "{blobName1.json.gz}",
  "sizeinBytes": 500,
  "partitionValue": "1"
  },
  {
  "name": "{blobName2.json.gz}",
  "sizeinBytes": 1000,
  "partitionValue": "2"
  },
  {
  "name": "{blobName3.json.gz}",
  "sizeinBytes": 500,
  "partitionValue": "3"
  }
  ]
}

4단계: 스토리지 위치에서 사용량 조정 데이터 다운로드

"rootFolderSAS" 및 "rootFolder"에서 SAS 토큰 및 Blob Storage 위치를 가져오면 매니페스트 페이로드 API 응답이 속성됩니다. Azure Storage SDK/도구를 사용하여 Blob 파일을 다운로드하고 압축을 풉니다. JSON 줄 형식입니다.

표준 API 요청 헤더

모든 API는 다음 헤더를 허용합니다.

이름 Required Type 설명
Authorization True 문자열 권한 부여 전달자 토큰입니다.
ms-correlationid False 문자열 내부 요청 추적기입니다. 각 요청은 새 추적기(GUID)를 생성합니다.
ms-cv False 문자열 내부 요청 추적기입니다.
ms-requestid False 문자열 요청 idempotency ID입니다.

표준 API 응답 상태

다음은 API 응답의 HTTP 상태입니다.

이름 설명
400 잘못된 요청 누락되거나 잘못된 데이터가 있습니다. 오류 세부 정보는 응답 본문에 포함됩니다.
401 권한 없음 호출자는 인증되지 않으며 첫 번째 호출을 하기 전에 파트너 API 서비스를 사용하여 인증해야 합니다.
403 금지 호출자에게 요청을 할 권한이 없습니다.
500 내부 서버 오류 API 또는 해당 종속성 중 하나가 요청을 처리할 수 없습니다. 나중에 다시 시도하세요.
404 찾을 수 없음 입력 매개 변수와 함께 리소스를 사용할 수 없습니다.
410 없음 매니페스트 링크의 시간이 초과되거나 경과되었습니다. 새 요청을 제출합니다.

사용량 현황 데이터 특성

"full" 또는 "basic" 요청 매개 변수가 있는 청구되거나 청구되지 않은 사용량 API 응답은 다음 특성을 반환합니다.

Attribute "full" "basic"
PartnerId
PartnerName
고객 ID
CustomerName
CustomerDo기본Name 아니요
CustomerCountry 아니요
MpnId 아니요
Tier2MpnId 아니요
InvoiceNumber
ProductId
SkuId
AvailabilityId 아니요
SkuName
ProductName 아니요
PublisherName
PublisherId 아니요
SubscriptionDescription 아니요
SubscriptionId
ChargeStartDate
ChargeEndDate
UsageDate
MeterType 아니요
MeterCategory 아니요
MeterId 아니요
MeterSubCategory 아니요
MeterName 아니요
MeterRegion 아니요
단위
ResourceLocation 아니요
ConsumedService 아니요
ResourceGroup 아니요
ResourceURI
ChargeType
단가
수량
UnitType 아니요
BillingPreTaxTotal
BillingCurrency
PricingPreTaxTotal
PricingCurrency
ServiceInfo1 아니요
ServiceInfo2 아니요
태그 아니요
AdditionalInfo 아니요
EffectiveUnitPrice
PCToBCExchangeRate
EntitlementId
EntitlementDescription 아니요
PartnerEarnedCreditPercentage 아니요
CreditPercentage
CreditType
BenefitOrderID
BenefitID 아니요
BenefitType