NHN Cloud > Public API User Guide > Partner Management API Guide
An endpoint information for calling partner management API.
This API can only be called by partners or users authorized by partners, and cannot be used by general users.
| Region | Endpoint |
|---|---|
| Global | https://core.api.nhncloudservice.com/ |
Partner Management API uses User Access Key tokens for authentication and authorization when making API calls. The User Access Key token is a temporary, Bearer-type access token issued from a User Access Key. For more information on issuing and using User Access Key tokens, please refer to the User Access Key Token.
| Header name | Description |
|---|---|
| x-nhn-authorization | Refer to the token for API authentication |
All APIs have the following common response structure:
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
{
"header": {
"isSuccessful": false,
"resultCode": 400,
"resultMessage": "Invalid parameter"
}
}
| Name | Type | Description |
|---|---|---|
| header.isSuccessful | Boolean | Success |
| header.resultCode | Integer | Result code (for success) |
| header.resultMessage | String | Result message |
API Response Field Extensibility
API Responses may contain additional fields not specified below. Be careful that new fields are added and no error occurs.
Provide the partner user's billing amount, usage fee per organization, usage fee per service, and surcharge information.
Verify Partner Agreement
Verify that the partner and partner user entered into a partnership agreement in the specified month.
Notice
The month of use must be entered in yyyy-MM format.
Partner.Payment.Get
GET /v1/billing/partners/{partnerId}/payments/{month}
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| month | Path | String | Y | Month of use (yyyy-MM format) |
| partnerUserUuid | Query | String | Y | Partner user UUID |
| lang | Header | String | N | Language setting (default: ko_KR, selectable value: ko_KR, ja_JP, en_US) |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"payment": {
"charge": 100000,
"totalAmount": 110000,
"taxAmount": 10000,
"currency": "원",
"orgList": [
{
"orgName": "테스트 조직",
"charge": 100000
}
],
"usageSummaryList": [
{
"categoryMain": "COMPUTE",
"categorySub": "INSTANCE",
"counterName": "c2.small",
"displayName": "c2.small 인스턴스",
"displayOrder": 1,
"price": 50000,
"usage": 100.0
}
],
"extraSummaryList": [
{
"description": "프로젝트 할증",
"extraPrice": 5000
}
]
}
}
| Name | Type | Description |
|---|---|---|
| payment | PartnerUserOrgUsage | Payment info |
PartnerUserOrgUsage
| Name | Type | Description |
|---|---|---|
| charge | Long | Usage Amount + Project Surcharge Amount |
| totalAmount | Long | Charge Amount (Usage Amount + VAT) |
| taxAmount | Long | VAT |
| currency | String | Currency Returned in the appropriate language based on lang |
| orgList | List<GetPartnerUserOrgUsages> | Usage List by Organization |
| usageSummaryList | List<UsageSummary> | Usage Summary List |
| extraSummaryList | List<ProjectExtra> | Project Surcharge Summary List |
GetPartnerUserOrgUsages
| Name | Type | Description |
|---|---|---|
| orgName | String | Organization name |
| charge | Long | Amount used by organization |
UsageSummary
| Name | Type | Description |
|---|---|---|
| categoryMain | String | Main category |
| categorySub | String | Sub category |
| counterName | String | Counter name |
| displayName | String | Billing unit display name (by locale) |
| displayOrder | Integer | Display order |
| price | Long | Amount used (contracted amount not provided as it is for partners) |
| productUiId | String | Homepage service UI ID |
| usage | BigDecimal | Usage amount |
ProjectExtra
| Name | Type | Description |
|---|---|---|
| description | String | Surcharge description |
| extraPrice | Long | Project surcharge |
Retrieve the list of organization users of the partner.
Verify Partner Agreement
Verify that the partner and partner user entered into a partnership agreement in the specified month.
Partner.Organization.List
GET /v1/billing/partners/{partnerId}/payments/{month}/organizations
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| month | Path | String | Y | Usage period (yyyy-MM format) |
| partnerUserUuid | Query | String | Y | Partner User UUID |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"organizations": [
{
"orgId": "org123",
"orgName": "테스트 조직",
"orgStatusCode": "STABLE",
"orgCreationType": "USER",
"cloudType": "PUBLIC"
}
]
}
| Name | Type | Description |
|---|---|---|
| organizations | List<OrganizationProtocol> | Organization List |
OrganizationProtocol
| Name | Type | Description |
|---|---|---|
| orgId | String | Organization ID |
| orgName | String | Organization name |
| orgStatusCode | String | Organization status (STABLE: normal status, CLOSED: deleted status) |
| orgCreationType | String | Organization creation type (USER: organization created by customer, SYSTEM: organization created by system) |
| cloudType | String | Cloud type |
Retrieve the details of the specific organization's amount used, discount, and surcharge amounts.
Verify Partner Agreement
Verify that the partner and partner user in question had a partner agreement in the specified month, and that the owner of the organization in question was a partner user in that month.
Partner.Organization.Usage.Get
GET /v1/billing/partners/{partnerId}/payments/{month}/organizations/{orgId}/usage
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| month | Path | String | Y | Usage month (yyyy-MM format) |
| orgId | Path | String | Y | organization ID |
| lang | Header | String | N | Language Settings (default: ko_KR, setable value: ko_KR, ja_JP, en_US) |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"org": {
"orgId": "org123",
"orgName": "테스트 조직",
"totalAmount": 95000,
"usagePrice": 100000,
"contractUsagePrice": 95000,
"contractDiscountPrice": 5000,
"contractExtraPrice": 0,
"totalCredit": 0,
"country": "KR",
"creditUsages": [
{
"balanceTypeCode": "FREE_CREDIT",
"balanceTypeName": "무료 크레딧",
"i18nBalanceTypeNameMap": {
"ko_KR": "무료 크레딧",
"en_US": "Free Credit"
},
"usageAmount": 5000
}
],
"projectDiscount": {
"totalAdjustment": 5000,
"details": [
{
"projectId": "project123",
"projectName": "테스트 프로젝트",
"adjustment": 5000,
"adjustmentTypeCode": "CONTRACT_DISCOUNT",
"description": "약정 할인"
}
]
},
"projectExtra": {
"totalAdjustment": 0,
"details": []
},
"projects": [
{
"projectId": "project123",
"projectName": "테스트 프로젝트",
"totalAmount": 95000,
"usagePrice": 100000,
"contractUsagePrice": 95000
}
]
}
}
| Name | Type | Description |
|---|---|---|
| org | Organization | Organization information |
Organization
| Name | Type | Description |
|---|---|---|
| orgId | String | Organization ID |
| orgName | String | Organization name |
| totalAmount | Long | Organization final amount |
| usagePrice | Long | Usage amount |
| contractUsagePrice | Long | Total usage amount with contract discounts/surcharges applied |
| contractDiscountPrice | Long | Amount discounted by contract |
| contractExtraPrice | Long | Amount surcharged by contract |
| totalCredit | Long | Credit final amount |
| country | String | Country code |
| creditUsages | List<CreditUsageProtocol> | Credit usage amount |
| projectDiscount | PaymentStatementProjectAdjustment | List of discount details by project |
| projectExtra | PaymentStatementProjectAdjustment | List of surcharge details by project |
| projects | List<Project> | Project List |
CreditUsageProtocol
| Name | Type | Description |
|---|---|---|
| balanceTypeCode | String | Campaign type |
| balanceTypeName | String | Campaign type name |
| i18nBalanceTypeNameMap | Map<String, String> | Campaign type name multilingual code |
| usageAmount | Long | Credit usage amount |
PaymentStatementProjectAdjustment
| Name | Type | Description |
|---|---|---|
| totalAdjustment | Long | Total discount amount |
| details | List<PaymentStatementProjectAdjustmentDetail> | Details |
PaymentStatementProjectAdjustmentDetail
| Name | Type | Description |
|---|---|---|
| projectId | String | Project ID |
| projectName | String | Project name |
| adjustment | Long | Discount/surcharge amount |
| adjustmentTypeCode | String | Discount/surcharge type - CONTRACT_EXTRA: Contract surcharge - CONTRACT_PENALTY: Contract penalty - CONTRACT_DISCOUNT: Contract discount - CONTRACT_PAYBACK: Partner payback - STATIC_EXTRA: Fixed amount surcharge - PERCENT_DISCOUNT: Percentage discount - COUPON: Coupon - STATIC_DISCOUNT: Fixed amount discount - CUTOFF: Truncate less than 500 won |
| description | String | Discount/surcharge details |
Project
| Name | Type | Description |
|---|---|---|
| projectId | String | Project ID |
| projectName | String | Project name |
| totalAmount | Long | Project final amount |
| usagePrice | Long | Project usage amount total |
| contractUsagePrice | Long | Usage amount total with commitment-based discount/commitment underutilization charge applied |
Retrieves a list of projects of partner users.
Verify Partner Agreement
Verify that the partner and partner user entered into a partnership agreement in the specified month.
Partner.Project.List
GET /v1/billing/partners/{partnerId}/payments/{month}/projects
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| month | Path | String | Y | Usage period (yyyy-MM format) |
| partnerUserUuid | Query | String | Y | Partner User UUID |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"projects": [
{
"orgId": "org123",
"orgName": "테스트 조직",
"orgCreationType": "USER",
"orgStatusCode": "STABLE",
"projectId": "project123",
"projectName": "테스트 프로젝트",
"projectCreationType": "USER",
"projectStatusCode": "STABLE"
}
]
}
| Name | Type | Description |
|---|---|---|
| projects | List<ProjectProtocol> | Project List |
ProjectProtocol
| Name | Type | Description |
| --- | --- |
| orgId | String | Organization ID |
| orgName | String | Organization Name |
| orgCreationType | String | Organization Creation Type
- USER: Customer-created organization
- SYSTEM: system-created organization (primarily used in membership marketplaces) |
| orgStatusCode | String | Organization Status
- STABLE: normal status
- CLOSED: Deleted status |
| projectId | String | Project ID |
| projectName | String | Project Name |
| projectCreationType | String | Project Creation Type
- USER: Customer-created project
- SYSTEM: System-created project (primarily used in organization services and membership marketplaces) |
| projectStatusCode | String | Project Status
- STABLE: normal status
- CLOSED: Deleted status |
Retrieve the detailed usage of a specific project.
Caution
Optimize performance by using paging appropriately when querying usage.
Verify Partner Agreement
Verify that the partner and partner user in question had a partner agreement in the specified month, and that the owner of the organization to which the project belongs was a partner user in that month.
Partner.Project.Usage.Get
GET /v1/billing/partners/{partnerId}/payments/{month}/projects/{projectId}/usage
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| month | Path | String | Y | Month of use (yyyy-MM format) |
| projectId | Path | String | Y | Project ID |
| lang | Header | String | N | Language setting (default: ko_KR, configurable values: ko_KR, ja_JP, en_US) |
| usageSchemaTypeCode | Query | String | N | Include usage Decide whether to use the existing usage inquiry method or the new grouping method (Default: NO_GROUP) - NO_GROUP: usage is displayed as is, without being grouped. - GROUP_BY_PARENT_RESOURCE: grouping is done by parent resource, but specific usage is not provided. The totalItems returned allows you to check how many parent resources exist. - GROUP_BY_PARENT_RESOURCE_INCLUDE_USAGES: after grouping parent resources separately, which parent resource is grouped as and how it is used in detail |
| categoryMain | Query | String | N | Main category If usageSchemaTypeCode is NO_GROUP, it cannot be used |
| regionTypeCode | Query | String | N | Region type code (up to 20 characters) If usageSchemaTypeCode is NO_GROUP, it cannot be used |
| page | Query | Integer | N | Selected page (default: 1, minimum: 1) if usageSchemaTypeCode is NO_GROUP, it is unavailable |
| limit | Query | Integer | N | Number of items to be displayed on the page, if not entered, full view ((default: 0, minimum: 0) Not available when usageSchemaTypeCode is NO_GROUP |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"project": {
"projectId": "project123",
"projectName": "테스트 프로젝트",
"totalAmount": 50000,
"usagePrice": 45000,
"contractUsagePrice": 43000,
"contractDiscountPrice": 2000,
"contractExtraPrice": 0,
"totalCredit": 5000,
"country": "KR",
"creditUsages": [
{
"balanceTypeCode": "FREE_CREDIT",
"balanceTypeName": "무료 크레딧",
"usageAmount": 5000
}
],
"projectDiscount": {
"totalAdjustment": 2000,
"details": [
{
"projectId": "project123",
"projectName": "테스트 프로젝트",
"adjustment": 2000,
"adjustmentTypeCode": "CONTRACT_DISCOUNT",
"description": "약정 할인"
}
]
},
"projectExtra": {
"totalAdjustment": 0,
"details": []
},
"usageGroups": [
{
"categoryMain": "COMPUTE",
"stationId": "KR1",
"stationName": "한국(판교) 리전",
"regionTypeCode": "KR",
"needType": false,
"totalItems": 1,
"totalPrice": 45000,
"usagePrice": 45000,
"usageResourceGroups": [
{
"parentResourceId": "parent-resource-123",
"parentResourceName": "부모 리소스",
"usages": [
{
"categoryMain": "COMPUTE",
"categorySub": "INSTANCE",
"contractId": "contract123",
"contractPrice": 23000,
"contractUnitPrice": 958.33,
"counterName": "c2.small",
"displayNameEn": "c2.small Instance",
"displayNameJa": "c2.small インスタンス",
"displayNameKo": "c2.small 인스턴스",
"displayNameZh": "c2.small 实例",
"displayOrder": 1,
"parentResourceId": "parent-resource-123",
"parentResourceName": "부모 리소스",
"price": 24000,
"productUiId": "compute-instance",
"projectId": "project123",
"projectName": "테스트 프로젝트",
"rangeFrom": 0,
"regionTypeCode": "KR",
"resourceId": "resource123",
"resourceName": "test-instance",
"seq": 1,
"stationId": "KR1",
"stationName": "한국(판교) 리전",
"unit": 1,
"unitName": "hours",
"unitPrice": 1000.0,
"usage": 24.0,
"useFixPrice": false
}
]
}
],
"usages": [
{
"counterName": "c2.small",
"counterType": "DELTA",
"productId": "compute",
"projectId": "project123",
"resourceId": "instance-123",
"resourceName": "test-instance",
"parentResourceId": null,
"usage": 24.0,
"usedTime": "2024-01-01T00:00:00Z"
}
]
}
]
}
}
| Name | Type | Description |
|---|---|---|
| project | Project | Project Information |
Project
| Name | Type | Description |
|---|---|---|
| projectId | String | Project ID |
| projectName | String | Project Name |
| totalAmount | Long | Project Final Amount |
| usagePrice | Long | Usage Amount |
| contractUsagePrice | Long | Total usage amount with contract discounts/surcharges applied |
| contractDiscountPrice | Long | Amount discounted by contract |
| contractExtraPrice | Long | Amount surcharged by contract |
| totalCredit | Long | Final credit amount |
| country | String | Country Code |
| creditUsages | List<CreditUsageProtocol> | Credit Usage Amount |
| projectDiscount | PaymentStatementProjectAdjustment | Project-specific discount details |
| projectExtra | PaymentStatementProjectAdjustment | Project-specific surcharge details |
| usageGroups | List<UsageGroup> | Usage Group List |
CreditUsageProtocol
| Name | Type | Description |
|---|---|---|
| balanceTypeCode | String | Campaign type (balance type) |
| balanceTypeName | String | Campaign type name (balance type name) |
| i18nBalanceTypeNameMap | Map<String, String> | Campaign type name multilingual code |
| usageAmount | Long | Credit amount used |
PaymentStatementProjectAdjustment
| Name | Type | Description |
|---|---|---|
| totalAdjustment | Long | Total discount/surcharge amount |
| details | List<PaymentStatementProjectAdjustmentDetail> | Details |
PaymentStatementProjectAdjustmentDetail
| Name | Type | Description |
|---|---|---|
| projectId | String | Project ID |
| projectName | String | Project name |
| adjustment | Long | Discount/surcharge amount |
| adjustmentTypeCode | String | Discount/surcharge type - CONTRACT_EXTRA: contract surcharge - CONTRACT_PENALTY: contract penalty - CONTRACT_DISCOUNT: contract discount - CONTRACT_PAYBACK: partner payback - STATIC_EXTRA: fixed amount surcharge - PERCENT_DISCOUNT: percentage discount - COUPON: coupon - STATIC_DISCOUNT: fixed amount discount - CUTOFF: truncate less than 500 won |
| description | String | Discount/surcharge details |
UsageGroup
| Name | Type | Description |
|---|---|---|
| categoryMain | String | Main category |
| stationId | String | Station ID |
| stationName | String | Station name |
| regionTypeCode | String | Region |
| needType | Boolean | Whether to display the category column |
| totalItems | Integer | Total number of usages by UsageGroup |
| totalPrice | Long | Total usage amount with commitment-based discount applied |
| usagePrice | Long | Total usage amount |
| usageResourceGroups | List<UsageGroup.UsageResourceGroup> | Grouped usage list |
| usages | List<Usage> | Detailed usage list |
UsageGroup.UsageResourceGroup
| Name | Type | Description |
|---|---|---|
| parentResourceId | String | Parent resource ID for identification |
| parentResourceName | String | Parent resource Name for identification |
| usages | List | Detailed Usage |
Usage
| Name | Type | Description |
|---|---|---|
| categoryMain | String | Main category |
| categorySub | String | Sub category |
| contractId | String | Agreement ID |
| contractPrice | Long | Usage amount calculated by commitment |
| contractUnitPrice | BigDecimal | Commitment use discount |
| counterName | String | Counter Name |
| displayNameEn | String | Billing unit display name (en) |
| displayNameJa | String | Billing unit display name (ja) |
| displayNameKo | String | Billing unit display name (ko) |
| displayNameZh | String | Billing unit display name (zh) |
| displayOrder | Long | Display order |
| parentResourceId | String | Parent resource ID |
| parentResourceName | String | Parent resource name |
| price | Long | Usage amount |
| productUiId | String | Homepage service UI ID |
| projectId | String | Project ID |
| projectName | String | Project name |
| rangeFrom | BigDecimal | Starting range |
| regionTypeCode | String | Region |
| resourceId | String | Resource ID |
| resourceName | String | Resource name |
| seq | Long | seq |
| stationId | String | Station ID |
| stationName | String | Station name |
| unit | Long | Charging unit |
| unitName | String | Unit name |
| unitPrice | BigDecimal | Price per unit |
| usage | BigDecimal | Usage |
| useFixPrice | Boolean | Fixed price |
Usage
| Name | Type | Description |
|---|---|---|
| counterName | String | Counter name |
| counterType | String | Counter type |
| productId | String | Service ID |
| projectId | String | Project ID |
| resourceId | String | Resource ID |
| resourceName | String | Resource name |
| parentResourceId | String | Parent resource ID |
| usage | BigDecimal | Usage amount |
| usedTime | String | Usage time |
Retrieve the partner's full bill.
Verify Partner Agreement
Verify that the partner in question had a valid partner agreement in the specified month.
Partner.Statement.Get
GET /v1/billing/partners/{partnerId}/payments/{month}/statements
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| month | Path | String | Y | Month of use (yyyy-MM format) |
| lang | Header | String | N | Language setting (default: ko_KR, configurable values: ko_KR, ja_JP, en_US) |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paymentStatements": [
{
"uuid": "user123",
"autoPaymentTypeCode": "CREDIT_CARD",
"isAutoPayment": true,
"paymentInfo": "536148******1588",
"statements": [
{
"paymentGroupId": "group123",
"month": "2024-01-01T00:00:00Z",
"charge": 100000,
"supplyAmount": 90909,
"taxAmount": 9091,
"totalAmount": 110000,
"totalCredit": 10000,
"totalDiscount": 5000,
"totalExtra": 0,
"freeCredit": 5000,
"freeCreditAll": 3000,
"freeCreditLimit": 2000,
"paidCredit": 5000,
"paidCreditAll": 3000,
"paidCreditLimit": 2000,
"paymentStatusCode": "PAID",
"country": "KR",
"cutoff": 0,
"lateFee": 0,
"realSupplyAmount": 90909,
"realTaxAmount": 9091,
"receiptStatusCode": "EXIST",
"refundAccountRegisterStatusCode": "ALLOW",
"details": [
{
"billingGroupId": "billing123",
"billingGroupName": "기본 빌링 그룹",
"charge": 100000,
"contractDiscount": 5000,
"contractExtra": 0,
"totalAmount": 105000,
"totalCredit": 10000,
"totalDiscount": 5000,
"totalExtra": 0,
"creditUsages": [
{
"balanceTypeCode": "FREE_CREDIT",
"balanceTypeName": "무료 크레딧",
"i18nBalanceTypeNameMap": {
"ko_KR": "무료 크레딧"
},
"usageAmount": 5000
}
],
"orgList": [
{
"orgId": "org123",
"orgName": "테스트 조직",
"totalAmount": 105000
}
],
"usageGroups": [
{
"categoryMain": "Compute",
"needType": true,
"regionTypeCode": "KR1",
"stationId": "station1",
"stationName": "한국(판교) 리전",
"totalItems": 10,
"totalPrice": 100000,
"usagePrice": 105000,
"usageResourceGroups": [],
"usages": []
}
],
"billingGroupDiscount": {
"totalAdjustment": 2000,
"details": [
{
"adjustment": 2000,
"adjustmentTypeCode": "CONTRACT_DISCOUNT",
"description": "약정 할인"
}
]
},
"billingGroupExtra": {
"totalAdjustment": 0,
"details": []
},
"projectDiscount": {
"totalAdjustment": 3000,
"details": [
{
"projectId": "project123",
"projectName": "테스트 프로젝트",
"adjustment": 3000,
"adjustmentTypeCode": "CONTRACT_DISCOUNT",
"description": "프로젝트 약정 할인"
}
]
},
"projectExtra": {
"totalAdjustment": 0,
"details": []
}
}
]
}
]
}
]
}
| Name | Type | Description |
|---|---|---|
| paymentStatements | List<PaymentStatement> | List of bills |
PaymentStatement
| Name | Type | Description |
|---|---|---|
| uuid | String | Member UUID |
| autoPaymentTypeCode | String | Payment method - PAYCO_CREDIT_CARD: Payco credit card - CREDIT_CARD: credit card - INTER_CREDIT_CARD: international credit card - UNION_PAY: Union Pay - JAPAN_BILLING: Japanese billing - ACCOUNT_TRANSFER: account transfer - CREDIT_ALL: general credit - CREDIT_LIMIT: event credit - ESM: Internal cost - ONETIME_PAYMENT: One-time payment - TAX_BILL: Issue a tax bill - CONTRACT_BILL: Issue a tax bill (The amount of the bill may be adjusted through a separate contract) - NONE: none |
| isAutoPayment | Boolean | Whether automatic payment is enabled |
| paymentInfo | String | Payment method information |
| statements | List<PaymentStatement> | List of payment details by billing group |
PaymentStatement
| Name | Type | Description |
|---|---|---|
| paymentGroupId | String | Payment group ID |
| month | String | Month of use |
| charge | Long | Amount used |
| supplyAmount | Long | Supply amount |
| taxAmount | Long | VAT |
| totalAmount | Long | Final amount |
| totalCredit | Long | Total credit used |
| totalDiscount | Long | Discount amount |
| totalExtra | Long | Surcharge amount |
| freeCredit | Long | Free credit used |
| freeCreditAll | Long | Free all credit used |
| freeCreditLimit | Long | Free limited credit used |
| paidCredit | Long | Paid credit used |
| paidCreditAll | Long | Paid all credit used |
| paidCreditLimit | Long | Paid limited credit used |
| paymentStatusCode | String | Payment status - REGISTERED: register - READY: pending payment - PAID: paid - ERROR: operator Verification Required Status |
| country | String | Country Code |
| cutoff | Long | cutoff |
| lateFee | Long | Overdue Amount |
| realSupplyAmount | Long | Actual Supply Amount |
| realTaxAmount | Long | Actual VAT Paid |
| receiptStatusCode | String | Sales Voucher Status Code - NONE: sales have not yet been reported to the accounting team, so sales receipts cannot be viewed. - EXIST: after the final amount adjustment is completed, the sales report is sent to the accounting team, and the sales voucher can be viewed. |
| refundAccountRegisterStatusCode | String | Status of whether the refund account has been registered - ALLOW: Open status of refund account registration - DENY: Default, Close status of register refund accounts |
| details | List<PaymentStatementDetail> | List of details by billing group |
details
PaymentStatementDetail
| Name | Type | Description |
|---|---|---|
| billingGroupId | String | Billing group ID |
| billingGroupName | String | Billing group name |
| charge | Long | Amount used |
| contractDiscount | Long | Commitment-based discount amount |
| contractExtra | Long | Commitment underutilization charge amount |
| totalAmount | Long | Final amount |
| totalCredit | Long | Total credit usage amount |
| totalDiscount | Long | Discount amount |
| totalExtra | Long | Surcharge amount |
| creditUsages | List<CreditUsageProtocol> | Credit usage amount |
| orgList | List<Organization> | List of organizations |
| usageGroups | List<UsageGroup> | List of usage groups |
| billingGroupDiscount | PaymentStatementBillingGroupAdjustment | Billing group discount details |
| billingGroupExtra | PaymentStatementBillingGroupAdjustment | Billing group surcharge details |
| projectDiscount | PaymentStatementProjectAdjustment | Project-specific discount details |
| projectExtra | PaymentStatementProjectAdjustment | Project-specific surcharge details |
CreditUsageProtocol
| Name | Type | Description |
|---|---|---|
| balanceTypeCode | String | Campaign type (balance type) |
| balanceTypeName | String | Campaign type name (balance type name) |
| i18nBalanceTypeNameMap | Map<String, String> | Campaign type name multilingual code |
| usageAmount | Long | Credit amount used |
Organization
| Name | Type | Description |
|---|---|---|
| orgId | String | Organization ID |
| orgName | String | Organization name |
| totalAmount | Long | Organization total amount |
UsageGroup
| Name | Type | Description |
|---|---|---|
| categoryMain | String | Main category |
| needType | Boolean | Whether to display the category column |
| regionTypeCode | String | Region |
| stationId | String | Station ID |
| stationName | String | Station name |
| totalItems | Integer | Total number of usages by UsageGroup |
| totalPrice | Long | Total usage amount with commitment-based discount discount applied |
| usagePrice | Long | Total usage amount |
| usageResourceGroups | List<UsageGroup.UsageResourceGroup> | Grouped usage list |
| usages | List<Usage> | Detailed usage list |
PaymentStatementBillingGroupAdjustment
| Name | Type | Description |
|---|---|---|
| totalAdjustment | Long | Discount/surcharge amount |
| details | List<PaymentStatementAdjustment> | Details |
PaymentStatementAdjustment
| Name | Type | Description |
|---|---|---|
| adjustment | Long | Discount/surcharge amount |
| adjustmentTypeCode | String | Discount/surcharge type - CONTRACT_EXTRA: Contract surcharge - CONTRACT_PENALTY: Contract penalty - CONTRACT_DISCOUNT: Contract discount - CONTRACT_PAYBACK: Partner payback - STATIC_EXTRA: Fixed amount surcharge - PERCENT_DISCOUNT: Percentage discount - COUPON: Coupon - STATIC_DISCOUNT: Fixed amount discount - CUTOFF: Truncate less than 500 won |
| description | String | Discount/surcharge details |
PaymentStatementProjectAdjustment
| Name | Type | Description |
|---|---|---|
| totalAdjustment | Long | Total Discount/Surcharge |
| details | List<PaymentStatementProjectAdjustmentDetail> | Details |
PaymentStatementProjectAdjustmentDetail
| Name | Type | Description |
|---|---|---|
| projectId | String | Project ID |
| projectName | String | Project name |
| adjustment | Long | Discount/surcharge amount |
| adjustmentTypeCode | String | Discount/surcharge type - CONTRACT_EXTRA: Contract surcharge - CONTRACT_PENALTY: Contract penalty - CONTRACT_DISCOUNT: Contract discount - CONTRACT_PAYBACK: Partner payback - STATIC_EXTRA: Fixed amount surcharge - PERCENT_DISCOUNT: Percentage discount - COUPON: Coupon - STATIC_DISCOUNT: Fixed amount discount - CUTOFF: Truncate less than 500 won |
| description | String | Discount/surcharge details |
Retrieve metering information for their services by a solution partner.
Verify Solution Partner
Only solution partners or users authorized by a solution partner can call this feature.
Partner.Meter.List
GET /v1/billing/partners/{partnerId}/products/{productId}/meters
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| productId | Path | String | Y | Service ID |
| from | Query | String | Y | Query start time (ISO 8601 format, inclusive) |
| to | Query | String | Y | Query end time (ISO 8601 format, exclusive) |
| counterName | Query | String | Y | Counter name |
| appKey | Query | String | N | Product App Key |
| meterTimeTypeCode | Query | String | N | Meter time type code - INSERT_TIME: based on metering insertion time - USED_TIME: based on metering insertion time |
| page | Query | Integer | Y | Selected page (minimum: 1) |
| limit | Query | Integer | Y | number of items to be displayed on the page (minimum: 1, max: 2,000) |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"meterList": [
{
"appKey": "app123",
"counterName": "api.calls",
"counterType": "DELTA",
"counterUnit": "CALLS",
"counterVolume": 1000.0,
"productId": "product123",
"resourceId": "resource123",
"resourceName": "api-service",
"timestamp": "2024-01-01T00:00:00Z",
"insertTime": "2024-01-01T00:01:00Z"
}
],
"totalItems": 1
}
| Name | Type | Description |
|---|---|---|
| meterList | List<MeterProtocol> | Metering list |
| totalItems | Integer | Total number of items |
MeterProtocol
| Name | Type | Description |
|---|---|---|
| appKey | String | Service app key |
| counterName | String | Counter name |
| counterType | String | Counter type - DELTA: Incremental value - GAUGE: Current value - HOURLY_LATEST: Latest hourly value - DAILY_MAX: Daily maximum value - MONTHLY_MAX: Monthly maximum value - STATUS: Status value |
| counterUnit | String | Counter unit |
| counterValue | String | Usage status (only used when counterType is STATUS) |
| counterVolume | BigDecimal | Counter volume |
| gmid | String | Global metering ID |
| insertTime | String | Metering insert time |
| orgId | String | Organization ID |
| parentResourceId | String | Parent resource ID |
| productId | String | Service ID |
| projectId | String | Project ID |
| resourceId | String | Resource ID |
| resourceName | String | Resource name |
| source | String | IP or hostname where metering occurred |
| stationId | String | Station ID |
| timestamp | String | Metering occurrence time |
Deletes metering data for a service owned by the solution partner.
Deletions will not be reflected in invoices that have already been created. Partners are strictly limited to managing their own services and cannot delete metering data for services owned by others.
This is an asynchronous operation due to the potential processing time. After calling the Delete API, use the returned asyncJobId to poll the job status and verify completion.
Verify Solution Partner
Only Solution Partners or users authorized by a Solution Partner can call this.
Partner.Meter.Delete
DELETE /v1/billing/partners/{partnerId}/products/{productId}/meters
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| productId | Path | String | Y | Service ID |
{
"from": "2023-12-01T10:00:00Z",
"to": "2023-12-02T10:00:00Z",
"appKey": "string",
"counterNames": [
"string"
]
}
| Name | Type | Required | Description |
|---|---|---|---|
| from | String | Y | Query start time (ISO 8601 format, inclusive) |
| to | String | Y | Query end time (ISO 8601 format, exclusive) |
| appKey | String | N | Product App Key Either the app key or counter name must be present |
| counterNames | List<String> | N | List of counter names to delete Either the app key or counter name must be present |
{
"asyncJobId": "string",
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "string"
}
}
| Name | Type | Description |
|---|---|---|
| asyncJobId | String | ID of the asynchronous job being executed |
Verifies that the deletion is complete.
It is recommended to wait at least 5 seconds before the first verification call, as immediate requests may fail due to processing time.
We suggest polling every 5 seconds thereafter to check the status.
Verify Soltion Partner
Access is restricted to Solution Partners and their authorized users.
Cautions for Deleting Metering Configurations
Once a deletion is confirmed, the deletion job is removed. This endpoint can only be called once; subsequent attempts will return a 16500 error.
Partner.Meter.Delete
GET /v1/billing/partners/{partnerId}/meters/jobs/{async-job-id}
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| asyncJobId | Path | String | Y | ID of the asynchronous job executed |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "string"
},
"statusCode": "IN_PROGRESS"
}
| Name | Type | Description |
|---|---|---|
| statusCode | String | Deletion status (IN_PROGRESS: deletion in progress, ERROR: an error occurred during deletion, SUCCESS: deleted successfully) |
A partner creates the organization of the partner user.
Verify Partner Agreement
Verify if the partner and partner user had a partner contract relationship in the month in which the API was called.
Partner.Organization.Create
POST /v1/partners/{partnerId}/partner-users/{partnerUserUuid}/organizations
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| partnerUserUuid | Path | String | Y | Partner user UUID |
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| orgName | String | Y | Organization name (up to 120 characters) |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"orgId": "org-12345",
"orgName": "새로운 조직",
"ownerId": "owner-uuid-12345",
"regDateTime": "2024-01-15T10:30:00Z"
}
| Name | Type | Description |
|---|---|---|
| orgId | String | Generated organization ID |
| orgName | String | Organization name |
| ownerId | String | Organization Owner UUID |
| regDateTime | String | Registration date and time (ISO 8601 format) |
The partner deletes the organization of the partner user.
Verify Partner Agreement
Verify whether the partner and partner user had a partner contract relationship in the month the API was called, and whether the target of the deletion is the partner user's organization.
Partner.Organization.Delete
DELETE /v1/partners/{partnerId}/partner-users/{partnerUserUuid}/organizations/{orgId}
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| partnerUserUuid | Path | String | Y | Partner User UUID |
| orgId | Path | String | Y | Organization ID to delete |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
Retrieve details of a partner user's daily usage fees.
Verify Partner Agreement
Checks whether the partner is the owner of a given project or organization, or has a partner agreement with the owner on the date being queried.
Query Scope Restrictions
Partner.Daily.Usage.List
GET /v1/billing/partners/{partnerId}/daily-usage-prices
| Name | Category | Type | Required | Description |
| --- | --- | --- | --- |
| partnerId | Path | String | Y | Partner ID |
| projectId | Query | String | N | Project ID
Cannot be set simultaneously with orgId |
| orgId | Query | String | N | Organization ID
Cannot be set simultaneously with projectId |
| counterName | Query | String | N | Counter name |
| date | Query | String | Y | View date (yyyy-MM-dd format) |
| page | Query | Integer | N | Selected page (minimum: 1) |
| limit | Query | Integer | N | Number of items to display on the page (minimum: 1, maximum: 2,000) |
This API does not require a request body.
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"projectDailyUsagePrices": [
{
"basicPrice": 0,
"billingGroupId": "billing123",
"contractId": "contract123",
"contractPrice": 0,
"counterName": "c2.small",
"deltaBasicPrice": 0,
"deltaContractPrice": 0,
"deltaUsage": 0,
"metadata": {},
"orgId": "org123",
"parentResourceId": "parent-resource-123",
"parentResourceName": "parent resource",
"paymentGroupId": "payment123",
"priceInformation": [
{}
],
"projectId": "project123",
"resourceId": "resource123",
"resourceName": "test-resource",
"usage": 0,
"usedDate": "2024-01-01",
"uuid": "user123"
}
],
"totalItems": 1
}
| Name | Type | Description |
|---|---|---|
| projectDailyUsagePrices | List<DailyUsagePrice> | List of daily usage prices |
| totalItems | Integer | Number of results retrieved |
DailyUsagePrice
| Name | Type | Description |
|---|---|---|
| basicPrice | Long | Pay-as-you-go price |
| billingGroupId | String | Billing group ID |
| contractId | String | Agreement ID |
| contractPrice | Long | Agreement price |
| counterName | String | Counter name |
| deltaBasicPrice | Long | Daily Pay-as-you-go price |
| deltaContractPrice | Long | Daily Agreement price |
| deltaUsage | BigDecimal | Daily usage |
| metadata | Map<String, Object> | Metadata |
| orgId | String | Organization ID |
| parentResourceId | String | Parent Resource ID |
| parentResourceName | String | Parent Resource Name |
| paymentGroupId | String | Payment Group ID |
| priceInformation | List<Map<String, Object>> | Unit Price Information |
| projectId | String | Project ID |
| resourceId | String | Resource ID |
| resourceName | String | Resource Name |
| usage | BigDecimal | Usage |
| usedDate | String | Usage Date |
| uuid | String | Member UUID |
Retrieve resource usage prices categorized by tag.
Verify Partner Agreement
Checks whether the partner is the owner of the given project or organization, or has a partner agreement with the owner on the date of the query.
Query Scope Restrictions
Partner.Daily.Usage.List
POST /v1/billing/partners/{partnerId}/resource-usage-prices-by-tag
| Name | Category | Type | Required | Description | | --- | --- | --- | --- | | partnerId | Path | String | Y | Partner ID | | page | Query | Integer | N | Selected page (minimum: 1) | | limit | Query | Integer | N | Number of items to display on the page (minimum: 1, maximum: 2,000) |
{
"date": "2024-01-01",
"groupIds": [
"group123"
],
"orgId": "org123",
"projectId": "project123",
"searchType": "RESOURCE",
"tagIds": [
1001
]
}
| Name | Type | Required | Description |
|---|---|---|---|
| date | String | Y | Query start date (in yyyy-MM-dd format) |
| groupIds | List<String> | N | List of group IDs Either tagIds or groupIds is required |
| orgId | String | N | Organization ID Either projectId or orgId is required |
| projectId | String | N | Project ID Either projectId or orgId is required |
| searchType | String | Y | Query type - RESOURCE: By resource - DAILY: By day |
| tagIds | List<Long> | N | List of tag IDs Either tagIds or groupIds is required |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"resourceUsagePrices": [
{
"basicPrice": 100000,
"billingGroupId": "billing123",
"billingGroupName": "basic billing group",
"categoryMain": "COMPUTE",
"categorySub": "INSTANCE",
"contractId": "contract123",
"contractPrice": 95000,
"counterName": "c2.small",
"country": "KR",
"displayOrder": "1",
"orgId": "org123",
"orgName": "test organization",
"parentResourceId": "parent-resource-123",
"paymentGroupId": "payment123",
"priceInformation": "unit price info",
"priceInformations": [
{
"basicUnitPrice": 1000.0,
"contractUnitPrice": 950.0,
"displayName": {
"displayNameEn": "c2.small Instance",
"displayNameJa": "c2.small インスタンス",
"displayNameKo": "c2.small 인스턴스",
"displayNameZh": "c2.small 实例"
},
"rangeFrom": 0,
"slidingCalculationTypeCode": "NONE",
"unit": 1,
"unitName": "hours"
}
],
"productId": "compute",
"productUiId": "compute-instance",
"projectId": "project123",
"projectName": "test project",
"regionTypeCode": "KR",
"resourceId": "resource123",
"usage": 100.0,
"useFixPriceYn": "N",
"usedDate": "2024-01-01"
}
],
"totalItems": 1,
"totalPrice": 95000
}
| Name | Type | Description |
|---|---|---|
| resourceUsagePrices | List<ResourceUsagePrice> | List of resource usage prices |
| totalItems | Integer | Number of results retrieved |
| totalPrice | Long | Total usage price |
ResourceUsagePrice
| Name | Type | Description |
|---|---|---|
| basicPrice | Long | Pay-as-you-go price |
| billingGroupId | String | Billing group ID |
| billingGroupName | String | Billing group name |
| categoryMain | String | Main category |
| categorySub | String | Subcategory |
| contractId | String | Agreement ID |
| contractPrice | Long | Agreement price |
| counterName | String | Counter name |
| country | String | Service country |
| displayOrder | String | Bill Display Order |
| orgId | String | Organization ID |
| orgName | String | Organization Name |
| parentResourceId | String | Parent Resource ID |
| paymentGroupId | String | Payment Group ID |
| priceInformation | String | Unit Price Information |
| priceInformations | List<PriceInfo> | Unit Price Information (Details) |
| productId | String | Service ID |
| productUiId | String | Homepage Service UI ID |
| projectId | String | Project ID |
| projectName | String | Project Name |
| regionTypeCode | String | Region Type Code |
| resourceId | String | Resource ID |
| usage | BigDecimal | Usage |
| useFixPriceYn | String | Whether to use a flat rate |
| usedDate | String | Usage Date |
PriceInfo
| Name | Type | Description |
|---|---|---|
| basicUnitPrice | BigDecimal | Metered Unit Price |
| contractUnitPrice | BigDecimal | Contracted Unit Price |
| displayName | DisplayName | Bill Display Name |
| rangeFrom | BigDecimal | Starting Range |
| slidingCalculationTypeCode | String | Sliding Calculation Type - NONE: None - SECTION_SUM: Section Sum - SECTION_SELECTED: Section Selection |
| unit | Long | Unit |
| unitName | String | Unit Name |
DisplayName
| Name | Type | Description |
|---|---|---|
| displayNameEn | String | Bill Display Name (English) |
| displayNameJa | String | Bill Display Name (Japanese) |
| displayNameKo | String | Bill Display Name (Korean) |
| displayNameZh | String | Invoice Exposure Name (Chinese) |
Retrieve the metering information.
Partner.Meter.List
POST /v1/billing/partners/{partnerId}/meters/search
| Name | Category | Type | Required | Description |
|---|---|---|---|---|
| partnerId | Path | String | Y | Partner ID |
| page | Query | Integer | N | Selected page (minimum: 1) |
| limit | Query | Integer | N | Number of items to display on the page (minimum: 1, maximum: 2,000) |
{
"from": "2023-12-01T10:00:00Z",
"to": "2023-12-02T10:00:00Z",
"appKeys": [
"string"
],
"counterNames": [
"string"
],
"meterTimeTypeCode": "INSERT_TIME"
}
| Name | Type | Required | Description |
|---|---|---|---|
| from | String | Y | Query start time (ISO 8601 format, inclusive) |
| to | String | Y | Query end time (ISO 8601 format, exclusive) |
| appKeys | List<String> | N | List of app keys |
| counterNames | List<String> | N | List of counter names |
| meterTimeTypeCode | String | N | Meter time type code Determines whether to search by used time or by the time the request was inserted for from and to (USED_TIME: used time (default), INSERT_TIME: inserted time) |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "string"
},
"meterList": [
{
"appKey": "string",
"counterName": "string",
"counterType": "DELTA",
"counterUnit": "string",
"counterValue": "string",
"counterVolume": 0,
"insertTime": "2023-12-01T10:00:00Z",
"orgId": "string",
"parentResourceId": "string",
"productId": "string",
"projectId": "string",
"resourceId": "string",
"resourceName": "string",
"stationId": "string",
"timestamp": "2023-12-01T10:00:00Z"
}
],
"totalItems": 0
}
| Name | Type | Description |
|---|---|---|
| meterList | List<MeterProtocol> | Metering List |
| totalItems | Integer | Total Count |
MeterProtocol
| Name | Type | Description |
|---|---|---|
| appKey | String | App Key |
| counterName | String | Counter Name |
| counterType | String | Counter Type - DELTA: incremental value - GAUGE: current value - HOURLY_LATEST: latest hourly value - DAILY_MAX: maximum daily value - MONTHLY_MAX: maximum monthly value - STATUS: status value |
| counterUnit | String | Usage Unit (KB, HOUR, etc.) |
| counterValue | String | Usage Status Used only when counter type is STATUS |
| counterVolume | BigDecimal | Usage |
| insertTime | String | Time spent from service to billing system |
| orgId | String | Organization ID |
| parentResourceId | String | Parent resource ID |
| productId | String | Service ID |
| projectId | String | Project ID |
| resourceId | String | Resource ID |
| resourceName | String | Resource name |
| stationId | String | Station ID |
| timestamp | String | Usage time |
| resultCode | Description | Action |
|---|---|---|
| -14 | Request from an IP address not allowed in a country | Request from an allowed country, or check the IP restriction policy for each country |
| -8 | Request IP address not allowed or IP verification failed due to organization IP ACL policy | Check if the IP address is registered in the organization IP ACL, and if the request is from an allowed IP range |
| -7 | Permission denied | Contact your system administrator as you are not authorized to perform the action |
| -6 | An error occurs when the caller's authorization for the called API fails, or partner authorization verification fails | Check if the caller has permission to make API calls and, if necessary, contact your system administrator to request permission. Check the calling account permissions and request scope partner ID |
| -5 | Permission denied - Not the owner or the actual owner of the organization being deleted is different from the requesting partner user | Verify that the requester is the owner of the organization and that the target organization is owned by the partner user |
| -4 | Permission denied - Not a member | Verify that the requester is a member of the partner organization, obtain the appropriate permissions, and retry |
| -2 | Error when parameters are invalid | Check the format and values of the request parameters and retry with the correct values |
| 404 | Occurs when calling a non-existent API | Check the HTTP method and URI of the calling API |
| 500 | Abnormal system error | Contact your system administrator |
| 501 | Invalid date format | The date parameter was provided in the correct format |
| 502 | Invalid parameter | Check the values and formats of the request parameters |
| 503 | Service unavailable or query period rules violated | The service is temporarily unavailable. Retry later or comply with the query period rules |
| 504 | JSON parsing failure | Check the JSON format of the request body |
| 505 | Validation failure | Check the field validation in the request |
| 1,000 | Error when parameters are incorrect | Check the format and values of the request parameters and retry with the correct values |
| 1,200 | API call failed | Retry later or check the system status |
| 10,005 | Error when request parameters are incorrect | Check the required and configurable values for the request parameters |
| 11,010 | Insufficient permissions to view usage | Check and grant permissions for services/counters/organizations |
| 11,012 | No access to the organization | Grant the user access to the organization |
| 11,013 | The member is not a partner user, or the specified partner ID does not match the partner user UUID | Check whether the member was a partner user during the specified period and reset the partnership. Verify that the partner user is authorized and linked to the partner. |
| 12,000 | Project not found | Verify that the requested project ID exists and retry with the correct project ID. |
| 12,100 | Error when a project member does not exist. | Use an existing project member UUID. |
| 16500 | Asynchronous Job Not Found | The specified Asynchronous ID is invalid or does not exist. Verify that you have entered the correct Async ID |
| 17,001 | App key not found | Verify that the app key was issued correctly and reissue it if necessary. |
| 17,003 | No association between the app key and project/service. | Associate the app key with the correct project/service. |
| 17,501 | Organization not found | Verify that the organization ID exists. |
| 18,001 | Project not found | Verify that the project ID exists. |
| 22,001 | No partner default group. | Verify the partner default group settings. |
| 22,002 | No partner payment group. | Verify the partner payment group settings. |
| 22,003 | Partner adjustment range error. Verify that the partner adjustment value is within the allowable range | |
| 22,004 | Not a solution partner service | Verify that the requested service is a solution partner service |
| 22,005 | Not a solution partner | Verify that the partner qualifies as a solution partner |
| 22,007 | The partner does not have permission to access the resource | Verify that the target resource belongs to you or that you have the necessary access rights |
| 22,008 | The request was made with an incorrect AppKey | Check if the AppKey associated with the service is valid and correctly entered |
| 22,009 | The requested counter name is not recognized | Verify the counter name for the service and try again |
| 22,021 | An error occurs when the number of organizations created exceeds the limit set for the organization owner account when creating an organization | 1) Delete unused organizations to secure the number of organizations that can be created. 2) Adjust the maximum number of organization creations through the system administrator |
| 22,023 | Organization creation is restricted due to exceeding the MSP partner limit | Adjust the MSP partner limit or organize the organization |
| 23,005 | An error occurs when an organization corresponding to the organization ID does not exist | Contact the system administrator |
| 24,000 | API integration failure | Contact the system administrator |
| 24,001 | App key validation failure | Check the app key validity |
| 24,002 | Member information validation failure | Check member information |
| 24,005 | No project members | Check if the member belongs to a project |
| 24,007 | No project | Check the project ID or contact the system administrator |
| 25,001 | No country-specific tax policy | Contact the system administrator |
| 70,013 | An error occurs when a service in use exists | Disable the service in use |
| 70,032 | Organization creation blocked due to non-payment sanctions | Request to resolve non-payment and lift sanctions, then retry |
| 80,400 | Invalid request | Check request parameter format and required values |
| 80,401 | Authentication failure | Check authentication token validity and login status |
| 80,500 | Server error | Check server logs and contact your system administrator |