{
"code": "validation_error",
"message": "서버 내부 오류입니다",
"errors": [
{
"field": "event_type",
"message": "공백일 수 없습니다"
}
]
}
{
"code": "validation_error",
"message": "서버 내부 오류입니다",
"errors": [
{
"field": "event_type",
"message": "공백일 수 없습니다"
}
]
}
{
"code": "validation_error",
"message": "서버 내부 오류입니다",
"errors": [
{
"field": "event_type",
"message": "공백일 수 없습니다"
}
]
}
{
"code": "validation_error",
"message": "서버 내부 오류입니다",
"errors": [
{
"field": "event_type",
"message": "공백일 수 없습니다"
}
]
}
청구 예정액
청구 예정액 조회
아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다.
그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다.
조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다.
그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다.
금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다.
라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다.
단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다.
고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.
이 달을 다음에 자동 확정하는 시각(KST). 그 달의 확정 시각(다음 달 1일 14:00) 전이면 그 시각이다. 지났으면 요청한 환경에서 아직 다 훑지 않았거나 마지막 시도가 실패인 고객이 있을 때만 다음 정시고, 다 훑었고 실패도 없거나 첫 고객 등록 전의 달이면 null이다. 단가 없는 사용량으로 보류된 고객은 지난달 단가를 등록할 수 없어 다시 시도하지 않으므로 수동 확정으로 끝낸다. 꺼져 있으면 null
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"MeterEngine","description":"MeterEngine 도입사를 위한 연동 가이드와 API 참조","colors":{"primary":"#5746ad"},"api":{"playground":{"display":"interactive","proxy":true},"examples":{"languages":["bash","node"]}},"navbar":{"primary":{"type":"button","label":"콘솔 열기","href":"https://meterengine.com"}},"search":{"prompt":"가이드와 API 검색"},"seo":{"metatags":{"canonical":"https://docs.meterengine.com"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"ko","default":true,"href":""}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"meterengine","hasAudioNarration":false,"actualSubdomain":"meterengine","customDomains":[],"gitSource":{"type":"github","owner":"asm17-ms2","repo":"meterengine","deployBranch":"main","contentDirectory":"guide","isPrivate":false,"mountPath":"","label":"","_id":"6af407799a58d6755c1f99cb"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af41107e02ab65c314d17b4","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"ko","tag":"API 참조","count":84},{"language":"ko","tag":"엔드포인트","count":83},{"language":"ko","tag":"가이드","count":44},{"language":"ko","tag":"검색과 내보내기","count":15},{"language":"ko","tag":"웹훅","count":13},{"language":"ko","tag":"결제 연동","count":9},{"language":"ko","tag":"미터","count":7},{"language":"ko","tag":"고객","count":7},{"language":"ko","tag":"가격 설계","count":6},{"language":"ko","tag":"이벤트","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/draft-invoice-controller/청구-예정액-조회","slug":"/api-reference/draft-invoice-controller/청구-예정액-조회","pageMetadata":{"title":"청구 예정액 조회","description":"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다.\n그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다.\n조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다.\n그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다.\n금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다.\n라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다.\n단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다.\n고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\n","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/draft","href":"/api-reference/draft-invoice-controller/청구-예정액-조회","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다.\\n그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다.\\n조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다.\\n그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다.\\n금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다.\\n라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다.\\n단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다.\\n고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"청구 예정액 조회","description":"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다.\n그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다.\n조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다.\n그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다.\n금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다.\n라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다.\n단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다.\n고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\n","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/draft","href":"/api-reference/draft-invoice-controller/청구-예정액-조회","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다.\n그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다.\n조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다.\n그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다.\n금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다.\n라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다.\n단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다.\n고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\n","operationId":"previewDraftInvoice","parameters":["688fa8ad-731f-46b6-b84b-55e7c333b71b"],"responses":{"200":"6542780c-6113-4bbd-bb60-af4f241c3c0d","400":"da43a4d7-728a-41ba-8dbb-11bc02c50367","401":"3b87bc14-b328-45fc-be20-7445729f0910","403":"315e4da0-0939-4bf1-a60d-e11be6b6e625","429":"28588f3f-b053-42b9-8a08-d5bba3abbf4d"},"summary":"청구 예정액 조회","tags":["draft-invoice-controller"],"method":"get","type":"path","servers":["0cef6632-74ea-4650-a4d5-583aade483b9"],"security":["3fd7dd2d-a237-4414-93a2-e2f7671b6e98"],"path":"/v1/invoices/draft","baseUrlOptions":["https://meterengine.com"],"title":"청구 예정액 조회","codeSamples":[],"requestExampleLanguages":["bash","node"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"688fa8ad-731f-46b6-b84b-55e7c333b71b":{"description":"집계할 달(yyyy-MM, KST). 생략하면 이번 달이다.","example":"2026-08","in":"query","name":"month","required":false,"schema":{"type":"string","isRequired":false,"description":"집계할 달(yyyy-MM, KST). 생략하면 이번 달이다.","uniqueKey":"","typeLabel":"string"}}},"responses":{"6542780c-6113-4bbd-bb60-af4f241c3c0d":{"content":{"*/*":{"schema":{"type":"object","properties":{"auto_finalize_at":{"type":"string","format":"date-time","description":"이 달을 다음에 자동 확정하는 시각(KST). 그 달의 확정 시각(다음 달 1일 14:00) 전이면 그 시각이다. 지났으면 요청한 환경에서 아직 다 훑지 않았거나 마지막 시도가 실패인 고객이 있을 때만 다음 정시고, 다 훑었고 실패도 없거나 첫 고객 등록 전의 달이면 null이다. 단가 없는 사용량으로 보류된 고객은 지난달 단가를 등록할 수 없어 다시 시도하지 않으므로 수동 확정으로 끝낸다. 꺼져 있으면 null","uniqueKey":"auto_finalize_at","typeLabel":"string\u003cdate-time>"},"auto_finalize_enabled":{"type":"boolean","description":"인보이스 자동 확정이 켜져 있으면 true","uniqueKey":"auto_finalize_enabled","typeLabel":"boolean"},"auto_finalize_running":{"type":"boolean","description":"자동 확정이 지금 돌고 있고 요청한 환경에서 확정 시각이 지난 이 달을 아직 다 훑지 않았으면 true. 이번 실행이 이 달에 닿기 전에도 true다. 다 훑은 뒤 남은 고객은 보류나 실패라 false다. 자동 확정이 꺼져 있으면 false","uniqueKey":"auto_finalize_running","typeLabel":"boolean"},"calculated_at":{"type":"string","format":"date-time","uniqueKey":"calculated_at","typeLabel":"string\u003cdate-time>"},"customers":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"integer","format":"int64","uniqueKey":"customers.items.[INDEX].amount","typeLabel":"integer\u003cint64>"},"auto_finalize_held":{"type":"boolean","description":"자동 확정이 켜져 있고 금액이 0원이 아니면서 단가 없는 사용량이 있어 자동 확정이 이 고객을 보류하면 true. 검색의 미터 조건과 관계없이 고객의 모든 미터로 정한다","uniqueKey":"customers.items.[INDEX].auto_finalize_held","typeLabel":"boolean"},"customer_id":{"type":"string","format":"uuid","uniqueKey":"customers.items.[INDEX].customer_id","typeLabel":"string\u003cuuid>"},"customer_name":{"type":"string","uniqueKey":"customers.items.[INDEX].customer_name","typeLabel":"string"},"lines":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"integer","format":"int64","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].amount","typeLabel":"integer\u003cint64>"},"billable_metric_code":{"type":"string","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].billable_metric_code","typeLabel":"string"},"dimension_values":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].dimension_values.additionalProperties","typeLabel":"any"},"description":"미터의 dimension_properties마다 이벤트 properties에서 뽑은 값. 같은 조합의 단가를 곱한다. 미터에 dimension_properties가 없으면 빈 객체다","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].dimension_values","typeLabel":"object"},"line_type":{"type":"string","enum":["per_unit","volume","graduated_tier","base_fee","minimum_adjustment"],"uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].line_type","typeLabel":"enum\u003cstring>"},"quantity":{"type":"number","description":"표시용 수량. 금액 계산에는 quantity_numerator/quantity_denominator를 사용한다","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].quantity","typeLabel":"number"},"quantity_denominator":{"type":"number","description":"정확 청구 수량의 양수 분모. 분자/분모에 단가를 곱해 라인별 10원 미만을 버린다","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].quantity_denominator","typeLabel":"number"},"quantity_numerator":{"type":"number","description":"금액과 구간 판정에 사용한 정확 청구 수량의 분자","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].quantity_numerator","typeLabel":"number"},"target_property":{"type":"string","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].target_property","typeLabel":"string"},"tier_index":{"type":"integer","format":"int32","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].tier_index","typeLabel":"integer\u003cint32>"},"unit_price":{"type":"number","uniqueKey":"customers.items.[INDEX].lines.items.[INDEX].unit_price","typeLabel":"number"}},"uniqueKey":"customers.items.[INDEX].lines.items.[INDEX]","typeLabel":"object"},"uniqueKey":"customers.items.[INDEX].lines","typeLabel":"object[]"},"negative_usages":{"type":"array","description":"변환 전 집계량이 음수여서 금액을 0으로 보고 라인에서 뺀 조합의 사용량. 금액에 들지 않는다. 없으면 빈 배열이다","items":{"type":"object","properties":{"billable_metric_code":{"type":"string","uniqueKey":"customers.items.[INDEX].negative_usages.items.[INDEX].billable_metric_code","typeLabel":"string"},"dimension_values":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"customers.items.[INDEX].negative_usages.items.[INDEX].dimension_values.additionalProperties","typeLabel":"any"},"uniqueKey":"customers.items.[INDEX].negative_usages.items.[INDEX].dimension_values","typeLabel":"object"},"quantity":{"type":"number","uniqueKey":"customers.items.[INDEX].negative_usages.items.[INDEX].quantity","typeLabel":"number"},"target_property":{"type":"string","uniqueKey":"customers.items.[INDEX].negative_usages.items.[INDEX].target_property","typeLabel":"string"}},"uniqueKey":"customers.items.[INDEX].negative_usages.items.[INDEX]","typeLabel":"object"},"uniqueKey":"customers.items.[INDEX].negative_usages","typeLabel":"object[]"},"unpriced_usages":{"type":"array","description":"단가가 없어 라인에서 빠진 조합의 사용량. 금액에 들지 않는다. 수량이 0인 조합은 싣지 않고, 없으면 빈 배열이다","items":{"type":"object","properties":{"billable_metric_code":{"type":"string","uniqueKey":"customers.items.[INDEX].unpriced_usages.items.[INDEX].billable_metric_code","typeLabel":"string"},"dimension_values":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"customers.items.[INDEX].unpriced_usages.items.[INDEX].dimension_values.additionalProperties","typeLabel":"any"},"uniqueKey":"customers.items.[INDEX].unpriced_usages.items.[INDEX].dimension_values","typeLabel":"object"},"quantity":{"type":"number","uniqueKey":"customers.items.[INDEX].unpriced_usages.items.[INDEX].quantity","typeLabel":"number"},"target_property":{"type":"string","uniqueKey":"customers.items.[INDEX].unpriced_usages.items.[INDEX].target_property","typeLabel":"string"}},"uniqueKey":"customers.items.[INDEX].unpriced_usages.items.[INDEX]","typeLabel":"object"},"uniqueKey":"customers.items.[INDEX].unpriced_usages","typeLabel":"object[]"}},"uniqueKey":"customers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"customers","typeLabel":"object[]"},"month":{"type":"string","uniqueKey":"month","typeLabel":"string"},"total_amount":{"type":"integer","format":"int64","uniqueKey":"total_amount","typeLabel":"integer\u003cint64>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"auto_finalize_at":"2023-11-07T05:31:56Z","auto_finalize_enabled":true,"auto_finalize_running":true,"calculated_at":"2023-11-07T05:31:56Z","customers":[{"amount":123,"auto_finalize_held":true,"customer_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","customer_name":"\u003cstring>","lines":[{"amount":123,"billable_metric_code":"\u003cstring>","dimension_values":{},"line_type":"per_unit","quantity":123,"quantity_denominator":123,"quantity_numerator":123,"target_property":"\u003cstring>","tier_index":123,"unit_price":123}],"negative_usages":[{"billable_metric_code":"\u003cstring>","dimension_values":{},"quantity":123,"target_property":"\u003cstring>"}],"unpriced_usages":[{"billable_metric_code":"\u003cstring>","dimension_values":{},"quantity":123,"target_property":"\u003cstring>"}]}],"month":"\u003cstring>","total_amount":123}}},"exampleType":"generated"}},"description":"고객별 청구 예정액. 단가가 있는 조합의 사용량이 없는 고객은 lines가 빈 배열이다. 모든 고객이 확정됐으면 customers가 빈 배열이고 total_amount가 0이다","exampleType":"generated"},"da43a4d7-728a-41ba-8dbb-11bc02c50367":{"content":{"application/json":{"schema":{"type":"object","description":"오류 응답. code로 오류 종류를 구분하고, message는 code마다 하나인 한국어 문구다.","properties":{"code":{"type":"string","description":"오류 종류. 오류별 처리는 이 값으로 분기한다.","enum":["validation_error","malformed_request_body","invalid_billable_metric","invalid_price_rate","event_too_old","invalid_toss_payments_credential","payment_method_rejected","toss_payments_test_code_in_live_mode","invalid_webhook_url","invalid_webhook_event_type","authentication_required","invalid_credentials","permission_denied","organization_not_active","environment_mismatch","consent_required","customer_not_found","event_not_found","billable_metric_not_found","price_rate_not_found","invoice_not_found","invoice_view_link_not_found","endpoint_not_found","api_key_not_found","organization_not_found","user_account_not_found","payment_method_not_found","payment_method_registration_not_found","payment_attempt_not_found","toss_payments_credential_not_found","price_plan_not_found","webhook_endpoint_not_found","webhook_delivery_not_found","invitation_not_found","method_not_allowed","response_type_not_acceptable","resource_version_conflict","idempotency_conflict","customer_archived","resource_archived","environment_not_ready","archive_restoration_conflict","customer_has_events","customer_has_payment_attempts","billable_metric_has_events","billable_metric_has_price_rate","billable_metric_already_exists","billable_metric_event_type_target_property_already_exists","invoice_already_paid","payment_result_unconfirmed","payment_retry_unavailable","payment_retry_stale","invoice_amount_zero","email_already_exists","organization_status_transition_invalid","organization_member_already_exists","toss_payments_credential_missing","payment_method_missing","payment_mode_mismatch","payment_attempt_not_cancelable","payment_attempt_fully_canceled","payment_cancellation_amount_exceeded","payment_cancellation_in_progress","payment_cancellation_idempotency_conflict","webhook_delivery_not_retryable","price_rate_history_immutable","price_plan_history_immutable","webhook_endpoint_disabled","webhook_endpoint_limit_exceeded","invitation_unavailable","last_owner_required","owner_scopes_required","last_operator_required","api_key_unavailable","upload_size_exceeded","request_type_not_supported","rate_limit_exceeded","internal_server_error","request_timed_out","toss_payments_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"code마다 하나인 한국어 문구. 예고 없이 바뀔 수 있으니 분기에 쓰지 않는다.","example":"서버 내부 오류입니다","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"틀린 필드 목록. 400 응답에만 실린다.","items":{"type":"object","description":"틀린 필드 하나","properties":{"field":{"type":"string","description":"틀린 값을 보낸 자리의 이름. 요청에 쓴 이름과 같다.","example":"event_type","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"이 자리의 값이 거절된 이유.","example":"공백일 수 없습니다","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"validation_error","message":"서버 내부 오류입니다","errors":[{"field":"event_type","message":"공백일 수 없습니다"}]}}},"exampleType":"generated"}},"description":"code=validation_error: month가 yyyy-MM이 아니거나 0001-01부터 9999-12까지의 범위 밖이다","exampleType":"generated"},"3b87bc14-b328-45fc-be20-7445729f0910":{"content":{"application/json":{"schema":{"type":"object","description":"오류 응답. code로 오류 종류를 구분하고, message는 code마다 하나인 한국어 문구다.","properties":{"code":{"type":"string","description":"오류 종류. 오류별 처리는 이 값으로 분기한다.","enum":["validation_error","malformed_request_body","invalid_billable_metric","invalid_price_rate","event_too_old","invalid_toss_payments_credential","payment_method_rejected","toss_payments_test_code_in_live_mode","invalid_webhook_url","invalid_webhook_event_type","authentication_required","invalid_credentials","permission_denied","organization_not_active","environment_mismatch","consent_required","customer_not_found","event_not_found","billable_metric_not_found","price_rate_not_found","invoice_not_found","invoice_view_link_not_found","endpoint_not_found","api_key_not_found","organization_not_found","user_account_not_found","payment_method_not_found","payment_method_registration_not_found","payment_attempt_not_found","toss_payments_credential_not_found","price_plan_not_found","webhook_endpoint_not_found","webhook_delivery_not_found","invitation_not_found","method_not_allowed","response_type_not_acceptable","resource_version_conflict","idempotency_conflict","customer_archived","resource_archived","environment_not_ready","archive_restoration_conflict","customer_has_events","customer_has_payment_attempts","billable_metric_has_events","billable_metric_has_price_rate","billable_metric_already_exists","billable_metric_event_type_target_property_already_exists","invoice_already_paid","payment_result_unconfirmed","payment_retry_unavailable","payment_retry_stale","invoice_amount_zero","email_already_exists","organization_status_transition_invalid","organization_member_already_exists","toss_payments_credential_missing","payment_method_missing","payment_mode_mismatch","payment_attempt_not_cancelable","payment_attempt_fully_canceled","payment_cancellation_amount_exceeded","payment_cancellation_in_progress","payment_cancellation_idempotency_conflict","webhook_delivery_not_retryable","price_rate_history_immutable","price_plan_history_immutable","webhook_endpoint_disabled","webhook_endpoint_limit_exceeded","invitation_unavailable","last_owner_required","owner_scopes_required","last_operator_required","api_key_unavailable","upload_size_exceeded","request_type_not_supported","rate_limit_exceeded","internal_server_error","request_timed_out","toss_payments_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"code마다 하나인 한국어 문구. 예고 없이 바뀔 수 있으니 분기에 쓰지 않는다.","example":"서버 내부 오류입니다","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"틀린 필드 목록. 400 응답에만 실린다.","items":{"type":"object","description":"틀린 필드 하나","properties":{"field":{"type":"string","description":"틀린 값을 보낸 자리의 이름. 요청에 쓴 이름과 같다.","example":"event_type","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"이 자리의 값이 거절된 이유.","example":"공백일 수 없습니다","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"validation_error","message":"서버 내부 오류입니다","errors":[{"field":"event_type","message":"공백일 수 없습니다"}]}}},"exampleType":"generated"}},"description":"code=authentication_required: Authorization 헤더가 없다.\ncode=invalid_credentials: 키나 토큰의 형식이 틀렸거나, 모르는 값이거나, 폐기 또는 만료됐다.\n","exampleType":"generated"},"315e4da0-0939-4bf1-a60d-e11be6b6e625":{"content":{"application/json":{"schema":{"type":"object","description":"오류 응답. code로 오류 종류를 구분하고, message는 code마다 하나인 한국어 문구다.","properties":{"code":{"type":"string","description":"오류 종류. 오류별 처리는 이 값으로 분기한다.","enum":["validation_error","malformed_request_body","invalid_billable_metric","invalid_price_rate","event_too_old","invalid_toss_payments_credential","payment_method_rejected","toss_payments_test_code_in_live_mode","invalid_webhook_url","invalid_webhook_event_type","authentication_required","invalid_credentials","permission_denied","organization_not_active","environment_mismatch","consent_required","customer_not_found","event_not_found","billable_metric_not_found","price_rate_not_found","invoice_not_found","invoice_view_link_not_found","endpoint_not_found","api_key_not_found","organization_not_found","user_account_not_found","payment_method_not_found","payment_method_registration_not_found","payment_attempt_not_found","toss_payments_credential_not_found","price_plan_not_found","webhook_endpoint_not_found","webhook_delivery_not_found","invitation_not_found","method_not_allowed","response_type_not_acceptable","resource_version_conflict","idempotency_conflict","customer_archived","resource_archived","environment_not_ready","archive_restoration_conflict","customer_has_events","customer_has_payment_attempts","billable_metric_has_events","billable_metric_has_price_rate","billable_metric_already_exists","billable_metric_event_type_target_property_already_exists","invoice_already_paid","payment_result_unconfirmed","payment_retry_unavailable","payment_retry_stale","invoice_amount_zero","email_already_exists","organization_status_transition_invalid","organization_member_already_exists","toss_payments_credential_missing","payment_method_missing","payment_mode_mismatch","payment_attempt_not_cancelable","payment_attempt_fully_canceled","payment_cancellation_amount_exceeded","payment_cancellation_in_progress","payment_cancellation_idempotency_conflict","webhook_delivery_not_retryable","price_rate_history_immutable","price_plan_history_immutable","webhook_endpoint_disabled","webhook_endpoint_limit_exceeded","invitation_unavailable","last_owner_required","owner_scopes_required","last_operator_required","api_key_unavailable","upload_size_exceeded","request_type_not_supported","rate_limit_exceeded","internal_server_error","request_timed_out","toss_payments_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"code마다 하나인 한국어 문구. 예고 없이 바뀔 수 있으니 분기에 쓰지 않는다.","example":"서버 내부 오류입니다","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"틀린 필드 목록. 400 응답에만 실린다.","items":{"type":"object","description":"틀린 필드 하나","properties":{"field":{"type":"string","description":"틀린 값을 보낸 자리의 이름. 요청에 쓴 이름과 같다.","example":"event_type","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"이 자리의 값이 거절된 이유.","example":"공백일 수 없습니다","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"validation_error","message":"서버 내부 오류입니다","errors":[{"field":"event_type","message":"공백일 수 없습니다"}]}}},"exampleType":"generated"}},"description":"code=permission_denied: 키의 스코프나 계정의 역할로는 할 수 없는 요청이거나, 도입사가 정해지지 않은 로그인 세션이다.\ncode=organization_not_active: 도입사가 활성 상태가 아니다.\ncode=consent_required: 로그인 세션의 사용자가 필수 안내에 아직 동의하지 않았다. POST /v1/sessions/current/consents로 동의한다.\n","exampleType":"generated"},"28588f3f-b053-42b9-8a08-d5bba3abbf4d":{"content":{"application/json":{"schema":{"type":"object","description":"오류 응답. code로 오류 종류를 구분하고, message는 code마다 하나인 한국어 문구다.","properties":{"code":{"type":"string","description":"오류 종류. 오류별 처리는 이 값으로 분기한다.","enum":["validation_error","malformed_request_body","invalid_billable_metric","invalid_price_rate","event_too_old","invalid_toss_payments_credential","payment_method_rejected","toss_payments_test_code_in_live_mode","invalid_webhook_url","invalid_webhook_event_type","authentication_required","invalid_credentials","permission_denied","organization_not_active","environment_mismatch","consent_required","customer_not_found","event_not_found","billable_metric_not_found","price_rate_not_found","invoice_not_found","invoice_view_link_not_found","endpoint_not_found","api_key_not_found","organization_not_found","user_account_not_found","payment_method_not_found","payment_method_registration_not_found","payment_attempt_not_found","toss_payments_credential_not_found","price_plan_not_found","webhook_endpoint_not_found","webhook_delivery_not_found","invitation_not_found","method_not_allowed","response_type_not_acceptable","resource_version_conflict","idempotency_conflict","customer_archived","resource_archived","environment_not_ready","archive_restoration_conflict","customer_has_events","customer_has_payment_attempts","billable_metric_has_events","billable_metric_has_price_rate","billable_metric_already_exists","billable_metric_event_type_target_property_already_exists","invoice_already_paid","payment_result_unconfirmed","payment_retry_unavailable","payment_retry_stale","invoice_amount_zero","email_already_exists","organization_status_transition_invalid","organization_member_already_exists","toss_payments_credential_missing","payment_method_missing","payment_mode_mismatch","payment_attempt_not_cancelable","payment_attempt_fully_canceled","payment_cancellation_amount_exceeded","payment_cancellation_in_progress","payment_cancellation_idempotency_conflict","webhook_delivery_not_retryable","price_rate_history_immutable","price_plan_history_immutable","webhook_endpoint_disabled","webhook_endpoint_limit_exceeded","invitation_unavailable","last_owner_required","owner_scopes_required","last_operator_required","api_key_unavailable","upload_size_exceeded","request_type_not_supported","rate_limit_exceeded","internal_server_error","request_timed_out","toss_payments_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"code마다 하나인 한국어 문구. 예고 없이 바뀔 수 있으니 분기에 쓰지 않는다.","example":"서버 내부 오류입니다","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"틀린 필드 목록. 400 응답에만 실린다.","items":{"type":"object","description":"틀린 필드 하나","properties":{"field":{"type":"string","description":"틀린 값을 보낸 자리의 이름. 요청에 쓴 이름과 같다.","example":"event_type","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"이 자리의 값이 거절된 이유.","example":"공백일 수 없습니다","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"validation_error","message":"서버 내부 오류입니다","errors":[{"field":"event_type","message":"공백일 수 없습니다"}]}}},"exampleType":"generated"}},"description":"code=rate_limit_exceeded: 키의 분당 요청 한도를 넘었다. Retry-After 헤더의 초만큼 기다린 뒤 다시 보낸다.","headers":{"Retry-After":{"description":"다시 보내기 전에 기다릴 초","required":true,"schema":{"type":"integer","format":"int32"}}},"exampleType":"generated"}},"security":{"3fd7dd2d-a237-4414-93a2-e2f7671b6e98":{"bearerAuth":{"scheme":"bearer","type":"http","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"0cef6632-74ea-4650-a4d5-583aade483b9":{"description":"MeterEngine API","url":"https://meterengine.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"scheme":"bearer","type":"http","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml"},"subdomain":"meterengine","siteName":"MeterEngine","title":"청구 예정액 조회 - MeterEngine","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"ko":{"href":"/api-reference/draft-invoice-controller/청구-예정액-조회","matchLevel":0}}},"lastModified":"2026-11-11T06:13:34.773Z","originalFileLocation":"api-reference/draft-invoice-controller/청구-예정액-조회.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다. 그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다. 조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다. 그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다. 금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다. 라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다. 단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다. 고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"MeterEngine\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meterengine/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meterengine/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meterengine/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meterengine/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"청구 예정액 조회 - MeterEngine\">\u003cmeta data-mint-head property=\"og:description\" content=\"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다. 그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다. 조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다. 그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다. 금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다. 라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다. 단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다. 고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MeterEngine\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.meterengine.com/api-reference/draft-invoice-controller/청구-예정액-조회\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://meterengine.mintlify.site/_mintlify/api/og/v2?division=%EC%B2%AD%EA%B5%AC+%EC%98%88%EC%A0%95%EC%95%A1\u0026amp;title=%EC%B2%AD%EA%B5%AC+%EC%98%88%EC%A0%95%EC%95%A1+%EC%A1%B0%ED%9A%8C\u0026amp;description=%EC%95%84%EC%A7%81+%ED%99%95%EC%A0%95%ED%95%98%EC%A7%80+%EC%95%8A%EC%9D%80+%EA%B3%A0%EA%B0%9D%EC%9D%98+%EC%B2%AD%EA%B5%AC+%EC%98%88%EC%A0%95%EC%95%A1%EC%9D%84+%EB%AF%B8%ED%84%B0%EC%9D%98+%EC%86%8D%EC%84%B1+%EA%B0%92+%EC%A1%B0%ED%95%A9%EB%B3%84+%EC%82%AC%EC%9A%A9%EB%9F%89+x+%EA%B7%B8+%EC%A1%B0%ED%95%A9%EC%9D%98+%EB%8B%A8%EA%B0%80%EB%A1%9C+%EA%B3%84%EC%82%B0%ED%95%B4+%EB%8F%8C%EB%A0%A4%EC%A4%80%EB%8B%A4.%0A%EA%B7%B8+%EB%8B%AC%EC%9D%B4+%ED%99%95%EC%A0%95%EB%90%9C+%EA%B3%A0%EA%B0%9D%EC%9D%80+%EB%82%98%EC%98%A4%EC%A7%80+%EC%95%8A%EA%B3%A0+total_amount%EB%8A%94+%EB%82%A8%EC%9D%80+%EA%B3%A0%EA%B0%9D%EC%9D%98+%ED%95%A9%EC%9D%B4%EB%8B%A4.+%ED%99%95%EC%A0%95%EB%90%9C+%EA%B8%88%EC%95%A1%EC%9D%80+%EC%9D%B8%EB%B3%B4%EC%9D%B4%EC%8A%A4+%EB%AA%A9%EB%A1%9D+%EC%A1%B0%ED%9A%8C%EB%A1%9C+%EB%B3%B8%EB%8B%A4.%0A%EC%A1%B0%ED%9A%8C%ED%95%A0+%EB%95%8C%EB%A7%88%EB%8B%A4+%EA%B3%84%EC%82%B0%ED%95%98%EB%A9%B0+%EC%A0%80%EC%9E%A5%ED%95%98%EC%A7%80+%EC%95%8A%EB%8A%94%EB%8B%A4.+%EA%B8%B0%EA%B0%84%EC%9D%80+K\u0026amp;theme=23a62b0b000949226daf3b66\u0026amp;signature=cb625d9877e3f4dfcdbe1f6c9503d8fc98879a2e0c16474d19066535e343d3dc\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"청구 예정액 조회 - MeterEngine\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다. 그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다. 조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다. 그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다. 금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다. 라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다. 단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다. 고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://meterengine.mintlify.site/_mintlify/api/og/v2?division=%EC%B2%AD%EA%B5%AC+%EC%98%88%EC%A0%95%EC%95%A1\u0026amp;title=%EC%B2%AD%EA%B5%AC+%EC%98%88%EC%A0%95%EC%95%A1+%EC%A1%B0%ED%9A%8C\u0026amp;description=%EC%95%84%EC%A7%81+%ED%99%95%EC%A0%95%ED%95%98%EC%A7%80+%EC%95%8A%EC%9D%80+%EA%B3%A0%EA%B0%9D%EC%9D%98+%EC%B2%AD%EA%B5%AC+%EC%98%88%EC%A0%95%EC%95%A1%EC%9D%84+%EB%AF%B8%ED%84%B0%EC%9D%98+%EC%86%8D%EC%84%B1+%EA%B0%92+%EC%A1%B0%ED%95%A9%EB%B3%84+%EC%82%AC%EC%9A%A9%EB%9F%89+x+%EA%B7%B8+%EC%A1%B0%ED%95%A9%EC%9D%98+%EB%8B%A8%EA%B0%80%EB%A1%9C+%EA%B3%84%EC%82%B0%ED%95%B4+%EB%8F%8C%EB%A0%A4%EC%A4%80%EB%8B%A4.%0A%EA%B7%B8+%EB%8B%AC%EC%9D%B4+%ED%99%95%EC%A0%95%EB%90%9C+%EA%B3%A0%EA%B0%9D%EC%9D%80+%EB%82%98%EC%98%A4%EC%A7%80+%EC%95%8A%EA%B3%A0+total_amount%EB%8A%94+%EB%82%A8%EC%9D%80+%EA%B3%A0%EA%B0%9D%EC%9D%98+%ED%95%A9%EC%9D%B4%EB%8B%A4.+%ED%99%95%EC%A0%95%EB%90%9C+%EA%B8%88%EC%95%A1%EC%9D%80+%EC%9D%B8%EB%B3%B4%EC%9D%B4%EC%8A%A4+%EB%AA%A9%EB%A1%9D+%EC%A1%B0%ED%9A%8C%EB%A1%9C+%EB%B3%B8%EB%8B%A4.%0A%EC%A1%B0%ED%9A%8C%ED%95%A0+%EB%95%8C%EB%A7%88%EB%8B%A4+%EA%B3%84%EC%82%B0%ED%95%98%EB%A9%B0+%EC%A0%80%EC%9E%A5%ED%95%98%EC%A7%80+%EC%95%8A%EB%8A%94%EB%8B%A4.+%EA%B8%B0%EA%B0%84%EC%9D%80+K\u0026amp;theme=23a62b0b000949226daf3b66\u0026amp;signature=cb625d9877e3f4dfcdbe1f6c9503d8fc98879a2e0c16474d19066535e343d3dc\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/meterengine/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MeterEngine\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5746ad\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.meterengine.com/api-reference/draft-invoice-controller/청구-예정액-조회\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.meterengine.com/#organization\",\"name\":\"MeterEngine\",\"url\":\"https://docs.meterengine.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.meterengine.com#website\",\"name\":\"MeterEngine\",\"url\":\"https://docs.meterengine.com\",\"publisher\":{\"@id\":\"https://docs.meterengine.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.meterengine.com/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C#webpage\",\"url\":\"https://docs.meterengine.com/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C\",\"name\":\"청구 예정액 조회\",\"description\":\"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다. 그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다. 조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다. 그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다. 금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다. 라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다. 단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다. 고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\",\"dateModified\":\"2026-11-11T06:13:34.773Z\",\"isPartOf\":{\"@id\":\"https://docs.meterengine.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.meterengine.com/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.meterengine.com/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"엔드포인트\",\"item\":\"https://docs.meterengine.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"청구 예정액 조회\",\"item\":\"https://docs.meterengine.com/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.meterengine.com/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C#apireference\",\"headline\":\"청구 예정액 조회\",\"name\":\"청구 예정액 조회\",\"description\":\"아직 확정하지 않은 고객의 청구 예정액을 미터의 속성 값 조합별 사용량 x 그 조합의 단가로 계산해 돌려준다. 그 달이 확정된 고객은 나오지 않고 total_amount는 남은 고객의 합이다. 확정된 금액은 인보이스 목록 조회로 본다. 조회할 때마다 계산하며 저장하지 않는다. 기간은 KST 기준의 달이다. 그 달 이벤트 중 집계 마감 시각(다음 달 1일 13:00 KST) 전에 서버가 받은(received_at) 것만 집계한다. 마감 뒤에 받은 그 달 이벤트는 저장되지만 집계와 청구에 들지 않는다. 금액은 원 단위 정수다. 라인(고객 x 미터 x 조합)마다 10원 미만을 버린 뒤 합산한다. 10원이 안 되는 라인은 0원이다. 라인은 사용량이 있는 조합 가운데 같은 dimension_values의 단가가 있는 것만 나온다. 이벤트가 없는 고객은 lines가 빈 배열이다. 단가가 없는 조합은 라인과 금액에서 빠지고, 수량이 0이 아니면 그 고객의 unpriced_usages에 미터 code, target_property, 조합, 수량으로 나온다. 순서는 라인과 같다. 고객은 이름 오름차순, 라인은 미터 code 오름차순, 같은 미터 안에서는 dimension_values 오름차순이다.\",\"url\":\"https://docs.meterengine.com/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C\",\"mainEntityOfPage\":{\"@id\":\"https://docs.meterengine.com/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C#webpage\"},\"dateModified\":\"2026-11-11T06:13:34.773Z\",\"publisher\":{\"@id\":\"https://docs.meterengine.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.meterengine.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MeterEngine\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"MeterEngine\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/draft-invoice-controller/%EC%B2%AD%EA%B5%AC-%EC%98%88%EC%A0%95%EC%95%A1-%EC%A1%B0%ED%9A%8C.md","siteName":"MeterEngine","nav":{"global":null,"languages":[{"language":"ko","default":true,"tabs":[{"tab":"가이드","pages":[{"title":"가이드","href":""}]},{"tab":"API 참조","groups":[{"group":"소개","pages":[{"title":"API 참조 읽는 법","href":"/api-reference/introduction"}]},{"group":"엔드포인트","pages":[{"group":"API 키 (콘솔 전용)","pages":[]},{"group":"감사 기록 (콘솔 전용)","pages":[]},{"group":"미터별 단가 조회","pages":[{"title":"미터별 가격 목록 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metric-prices","href":"/api-reference/billable-metric-price-controller/미터별-가격-목록-조회"}]},{"group":"검색과 내보내기","pages":[{"title":"미터별 가격 검색 결과 CSV","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metric-prices/export","href":"/api-reference/workspace-query-controller/미터별-가격-검색-결과-csv"},{"title":"단가 버전이 시작된 월 목록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metric-prices/months","href":"/api-reference/workspace-query-controller/단가-버전이-시작된-월-목록"},{"title":"월별 가격 검색과 서버 페이지 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metric-prices/search","href":"/api-reference/workspace-query-controller/월별-가격-검색과-서버-페이지-조회"},{"title":"미터 검색 결과 CSV","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metrics/export","href":"/api-reference/workspace-query-controller/미터-검색-결과-csv"},{"title":"미터 검색과 서버 페이지 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metrics/search","href":"/api-reference/workspace-query-controller/미터-검색과-서버-페이지-조회"},{"title":"고객 검색 결과 CSV","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/customers/export","href":"/api-reference/workspace-query-controller/고객-검색-결과-csv"},{"title":"고객 검색과 서버 페이지 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/customers/search","href":"/api-reference/workspace-query-controller/고객-검색과-서버-페이지-조회"},{"title":"청구 예정액 검색 결과 CSV","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/draft/export","href":"/api-reference/workspace-query-controller/청구-예정액-검색-결과-csv"},{"title":"청구 예정액 검색과 페이지 독립 요약","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/draft/search","href":"/api-reference/workspace-query-controller/청구-예정액-검색과-페이지-독립-요약"},{"title":"인보이스 검색 결과 CSV","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/export","href":"/api-reference/workspace-query-controller/인보이스-검색-결과-csv"},{"title":"확정 인보이스가 있는 월 목록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/months","href":"/api-reference/workspace-query-controller/확정-인보이스가-있는-월-목록"},{"title":"인보이스와 결제 상태 검색","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/search","href":"/api-reference/workspace-query-controller/인보이스와-결제-상태-검색"},{"title":"고객별 사용량 검색 결과 CSV","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/usage/export","href":"/api-reference/workspace-query-controller/고객별-사용량-검색-결과-csv"},{"title":"이벤트가 있는 월 목록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/usage/months","href":"/api-reference/workspace-query-controller/이벤트가-있는-월-목록"},{"title":"고객 단위 사용량 검색과 서버 페이지 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/usage/search","href":"/api-reference/workspace-query-controller/고객-단위-사용량-검색과-서버-페이지-조회"}]},{"group":"미터","pages":[{"title":"미터 목록 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metrics","href":"/api-reference/billable-metric-controller/미터-목록-조회"},{"title":"집계 미터 등록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/billable-metrics","href":"/api-reference/billable-metric-controller/집계-미터-등록"},{"title":"미터 상세 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metrics/{code}","href":"/api-reference/billable-metric-controller/미터-상세-조회"},{"title":"집계 미터 수정","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml put /v1/billable-metrics/{code}","href":"/api-reference/billable-metric-controller/집계-미터-수정"},{"title":"미터 보관","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml delete /v1/billable-metrics/{code}","href":"/api-reference/billable-metric-controller/미터-보관"},{"title":"버전을 확인한 미터 수정","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml patch /v1/billable-metrics/{code}","href":"/api-reference/billable-metric-controller/버전을-확인한-미터-수정"},{"title":"미터 복원","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/billable-metrics/{code}/restorations","href":"/api-reference/billable-metric-controller/미터-복원"}]},{"group":"단가","pages":[{"title":"미터 단가 이력 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/billable-metrics/{code}/price-rates","href":"/api-reference/price-rate-controller/미터-단가-이력-조회"},{"title":"단가 등록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/billable-metrics/{code}/price-rates","href":"/api-reference/price-rate-controller/단가-등록"},{"title":"단가 조합 보관","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml delete /v1/billable-metrics/{code}/price-rates","href":"/api-reference/price-rate-controller/단가-조합-보관"},{"title":"단가 버전 보관","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml delete /v1/billable-metrics/{code}/price-rates/{id}","href":"/api-reference/price-rate-controller/단가-버전-보관"},{"title":"단가 버전 복원","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/billable-metrics/{code}/price-rates/{id}/restorations","href":"/api-reference/price-rate-controller/단가-버전-복원"}]},{"group":"고객","pages":[{"title":"고객 목록 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/customers","href":"/api-reference/customer-controller/고객-목록-조회"},{"title":"고객 등록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/customers","href":"/api-reference/customer-controller/고객-등록"},{"title":"고객 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/customers/{id}","href":"/api-reference/customer-controller/고객-조회"},{"title":"고객 수정","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml put /v1/customers/{id}","href":"/api-reference/customer-controller/고객-수정"},{"title":"고객 보관","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml delete /v1/customers/{id}","href":"/api-reference/customer-controller/고객-보관"},{"title":"버전을 확인한 고객 수정","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml patch /v1/customers/{id}","href":"/api-reference/customer-controller/버전을-확인한-고객-수정"},{"title":"고객 복원","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/customers/{id}/restorations","href":"/api-reference/customer-controller/고객-복원"}]},{"group":"결제 수단","pages":[{"title":"고객 카드 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/customers/{id}/payment-method","href":"/api-reference/payment-method-controller/고객-카드-조회"},{"title":"고객 카드 보관","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml delete /v1/customers/{id}/payment-method","href":"/api-reference/payment-method-controller/고객-카드-보관"},{"title":"고객 카드 목록 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/payment-methods","href":"/api-reference/payment-method-controller/고객-카드-목록-조회"}]},{"group":"카드 등록 링크","pages":[{"title":"카드 등록 링크 생성","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/customers/{id}/payment-method-registrations","href":"/api-reference/payment-method-registration-controller/카드-등록-링크-생성"}]},{"group":"개요","pages":[{"title":"월별 과금과 수납 현황 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/dashboard","href":"/api-reference/dashboard-controller/월별-과금과-수납-현황-조회"}]},{"group":"이벤트 일괄 전송","pages":[{"title":"사용량 이벤트 일괄 수집","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/event-batches","href":"/api-reference/event-batch-controller/사용량-이벤트-일괄-수집"}]},{"group":"이벤트 매핑 진단","pages":[{"title":"수집된 이벤트의 매핑 문제 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/event-issues/search","href":"/api-reference/event-issue-controller/수집된-이벤트의-매핑-문제-조회"}]},{"group":"수집 거절","pages":[{"title":"수집 업무 거절 메타데이터 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/event-rejections/search","href":"/api-reference/event-rejection-controller/수집-업무-거절-메타데이터-조회"}]},{"group":"이벤트","pages":[{"title":"사용량 이벤트 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/events","href":"/api-reference/event-controller/사용량-이벤트-조회"},{"title":"사용량 이벤트 수집","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/events","href":"/api-reference/event-controller/사용량-이벤트-수집"},{"title":"이벤트 단건 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/events/lookup","href":"/api-reference/event-controller/이벤트-단건-조회"},{"title":"이벤트가 있는 월 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/events/months","href":"/api-reference/event-controller/이벤트가-있는-월-조회"},{"title":"수집된 이벤트 유형 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/events/types","href":"/api-reference/event-controller/수집된-이벤트-유형-조회"}]},{"group":"이벤트 내보내기","pages":[{"title":"사용량 이벤트 CSV 내보내기","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/events/export","href":"/api-reference/event-export-controller/사용량-이벤트-csv-내보내기"}]},{"group":"수납 상태","pages":[{"title":"인보이스별 결제 상태 목록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoice-payments","href":"/api-reference/invoice-payment-controller/인보이스별-결제-상태-목록"}]},{"group":"인보이스","pages":[{"title":"인보이스 목록 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices","href":"/api-reference/invoice-controller/인보이스-목록-조회"},{"title":"인보이스 일괄 확정","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/invoices","href":"/api-reference/invoice-controller/인보이스-일괄-확정"},{"title":"인보이스 조회","description":"확정된 인보이스 하나를 돌려준다. 응답은 인보이스 목록 조회의 같은 인보이스 원소와 같다.\ncutoff_at과 finalized_at은 KST(+09:00)로 나온다.\n","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/{id}","href":"/api-reference/invoice-controller/인보이스-조회"}]},{"group":"청구 예정액","pages":[{"title":"청구 예정액 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/draft","href":"/api-reference/draft-invoice-controller/청구-예정액-조회"}]},{"group":"결제 요청","pages":[{"title":"인보이스 결제 시도 목록","description":"인보이스의 결제 시도를 모든 결제 모드에 걸쳐 요청 시각이 늦은 것부터 돌려준다.\nrequested_at과 completed_at은 KST(+09:00)로 나온다.\n","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/{id}/payment-attempts","href":"/api-reference/payment-attempt-controller/인보이스-결제-시도-목록"},{"title":"인보이스 결제 요청","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/invoices/{id}/payment-attempts","href":"/api-reference/payment-attempt-controller/인보이스-결제-요청"}]},{"group":"인보이스 조회 링크","pages":[{"title":"고객 인보이스 조회 링크 목록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/invoices/{id}/view-links","href":"/api-reference/invoice-view-link-controller/고객-인보이스-조회-링크-목록"},{"title":"고객 인보이스 조회 링크 발급","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/invoices/{id}/view-links","href":"/api-reference/invoice-view-link-controller/고객-인보이스-조회-링크-발급"},{"title":"고객 인보이스 조회 링크 폐기","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/invoices/{id}/view-links/{view_link_id}/revoke","href":"/api-reference/invoice-view-link-controller/고객-인보이스-조회-링크-폐기"}]},{"group":"도입사 정보","pages":[{"title":"현재 도입사 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/organization","href":"/api-reference/current-organization-controller/현재-도입사-조회"},{"title":"공급자 정보 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/organization/supplier","href":"/api-reference/current-organization-controller/공급자-정보-조회"},{"title":"공급자 정보 수정","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml put /v1/organization/supplier","href":"/api-reference/current-organization-controller/공급자-정보-수정"}]},{"group":"업무 환경","pages":[{"title":"도입사의 테스트와 실제 환경 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/organization/environments","href":"/api-reference/organization-environment-controller/도입사의-테스트와-실제-환경-조회"}]},{"group":"구성원과 초대 (콘솔 전용)","pages":[]},{"group":"결제 취소","pages":[{"title":"결제 취소 목록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/payment-attempts/{id}/cancellations","href":"/api-reference/payment-cancellation-controller/결제-취소-목록"},{"title":"결제 취소 요청","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/payment-attempts/{id}/cancellations","href":"/api-reference/payment-cancellation-controller/결제-취소-요청"}]},{"group":"대사 불일치","pages":[{"title":"결제 대사 불일치 목록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/payment-reconciliation-mismatches","href":"/api-reference/payment-reconciliation-mismatch-controller/결제-대사-불일치-목록"}]},{"group":"결제 설정","pages":[{"title":"결제 모드 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/payment-setting","href":"/api-reference/payment-setting-controller/결제-모드-조회"}]},{"group":"요금제","pages":[{"title":"요금제 이력 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/price-plans","href":"/api-reference/price-plan-controller/요금제-이력-조회"},{"title":"기본료와 최소 과금 요금제 등록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/price-plans","href":"/api-reference/price-plan-controller/기본료와-최소-과금-요금제-등록"},{"title":"요금제 버전 보관","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml delete /v1/price-plans/{id}","href":"/api-reference/price-plan-controller/요금제-버전-보관"},{"title":"요금제 버전 복원","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/price-plans/{id}/restorations","href":"/api-reference/price-plan-controller/요금제-버전-복원"}]},{"group":"토스페이먼츠 키","pages":[{"title":"토스페이먼츠 키 목록 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/toss-payments-credentials","href":"/api-reference/toss-payments-credential-controller/토스페이먼츠-키-목록-조회"}]},{"group":"토스페이먼츠 웹훅 수신","pages":[]},{"group":"청구 제외 사용량","pages":[{"title":"청구 제외와 정정 이벤트 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/unbilled-events","href":"/api-reference/unbilled-event-controller/청구-제외와-정정-이벤트-조회"}]},{"group":"사용량 집계","pages":[{"title":"고객별 월 사용량 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/usage","href":"/api-reference/billable-metric-usage-controller/고객별-월-사용량-조회"}]},{"group":"웹훅","pages":[{"title":"웹훅 엔드포인트 목록 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/webhook-endpoints","href":"/api-reference/webhook-endpoint-controller/웹훅-엔드포인트-목록-조회"},{"title":"웹훅 엔드포인트 등록","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/webhook-endpoints","href":"/api-reference/webhook-endpoint-controller/웹훅-엔드포인트-등록"},{"title":"웹훅 엔드포인트 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/webhook-endpoints/{id}","href":"/api-reference/webhook-endpoint-controller/웹훅-엔드포인트-조회"},{"title":"웹훅 엔드포인트 수정","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml put /v1/webhook-endpoints/{id}","href":"/api-reference/webhook-endpoint-controller/웹훅-엔드포인트-수정"},{"title":"웹훅 엔드포인트 보관","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml delete /v1/webhook-endpoints/{id}","href":"/api-reference/webhook-endpoint-controller/웹훅-엔드포인트-보관"},{"title":"웹훅 전송 기록 조회","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml get /v1/webhook-endpoints/{id}/deliveries","href":"/api-reference/webhook-endpoint-controller/웹훅-전송-기록-조회"},{"title":"실패한 웹훅 전송 재시도","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/webhook-endpoints/{id}/deliveries/{delivery_id}/retries","href":"/api-reference/webhook-endpoint-controller/실패한-웹훅-전송-재시도"},{"title":"웹훅 엔드포인트 복원","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/webhook-endpoints/{id}/restorations","href":"/api-reference/webhook-endpoint-controller/웹훅-엔드포인트-복원"},{"title":"웹훅 시험 이벤트 발행","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/asm17-ms2/meterengine/main/backend/openapi.yaml post /v1/webhook-endpoints/{id}/test-events","href":"/api-reference/webhook-endpoint-controller/웹훅-시험-이벤트-발행"}]}]}]}]}]},"basePath":"","title":"청구 예정액 조회 - MeterEngine","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}