개요 화면의 ‘사용량과 요금 정의’는 미터를 하나 만들면 완료로 표시되지만, 단가가 없으면 청구 예정액은 0원입니다. 미터마다 단가를 등록했는지 ‘요금 설계’ 화면에서 확인하세요.
단가 등록하기
POST /v1/billable-metrics/{code}/price-rates로 등록합니다. 필요 권한은 admin입니다(화면과 API, 권한).
- 콘솔
- API
1
미터와 적용 대상을 고른다
왼쪽 메뉴 ‘요금 설계’ 화면에서 ‘적용 월’과 ‘적용 대상’을 고르고 ‘조건 적용’을 누릅니다. ‘적용 대상’이 ‘모든 고객 공통’이면 공통 단가, 고객을 고르면 그 고객의 고객 단가를 등록합니다. ‘무엇을 과금하나요’ 목록에서 미터를 고릅니다.
2
단가 버전을 입력한다
‘단가 버전 등록’을 누르고 ‘적용 시작 월’, ‘적용 종료 월 (선택)’, 차원 키마다 값과 값 종류를 넣습니다. ‘계산 방식’에서 ‘단일 단가’, ‘누진 구간’, ‘총량 구간’ 가운데 하나를 고릅니다.
3
단가나 구간을 넣고 저장한다
단일 단가는 ‘과금 수량 1당 단가 (원)‘을, 구간 방식은 구간마다 ‘끝 수량’과 단가를 넣습니다. 마지막 구간은 ‘상한 없음’으로 고정되고 ‘구간 추가’로 구간을 늘립니다. ‘이 단가 버전 저장’을 누릅니다.
단가 모델
어느 모델이든 미터에서unit_size와 반올림을 적용한 청구 수량에 단가를 곱합니다. 구간의 끝 수량도 이 청구 수량 기준입니다. 금액은 인보이스 라인마다 10원 미만을 버립니다(예정액, 확정액, 수납액).
아래 예시는 차원 키가 없는 미터(dimension_values {})에 두 구간 [{"up_to": 100, "unit_price": 10}, {"up_to": null, "unit_price": 8}]을 쓴다고 봅니다.
- per_unit
- graduated
- volume
청구 수량 전체에 한 단가를 곱합니다. 콘솔 표기는 ‘단일 단가’입니다.청구 수량이 1203이면 1203 x 2.5 = 3,007.5원이고 10원 미만을 버려 3,000원입니다. 라인 하나가
요청 본문
line_type per_unit으로 나옵니다.구간 규칙
tiers는 1개 이상 100개 이하입니다.- 구간은
up_to가 커지는 순서로 씁니다. 각up_to는 0보다 크고 앞 구간보다 커야 합니다. - 마지막 구간은
up_to를null로 두거나 생략합니다. 마지막이 아닌 구간에는up_to가 꼭 있어야 합니다. - 끝 수량
up_to는 그 구간에 포함됩니다. 수량이 정확히 100이면up_to100인 구간에 듭니다. - 구간 단가
unit_price는 0 이상입니다.
graduated에 unit_price를 넣음) 400 validation_error이고 errors의 field는 model입니다. 구간 수, up_to, 구간 단가의 값 범위가 틀려도 400 validation_error이며 errors에 해당 필드가 나옵니다.
숫자로 끝까지 따라가는 예시(구간 단가, 최소 사용료, 기본료, 세액)는 금액 계산 따라가기에 있습니다. 월 기본료와 최소 사용료는 기본료와 최소 사용료에서 다룹니다.
월 단위 버전
단가는 “미터, 조합, 적용 대상(공통 또는 고객), 시작 월”마다 하나의 버전입니다. 청구 월은 KST 기준 달력 월입니다(시간 규칙).1
그 달에 적용되는 버전을 고른다
어떤 달을 계산할 때, 같은 미터와 조합과 적용 대상의 버전 가운데 그 달에 적용되는 것(시작 월이 그 달이거나 그 전이고, 종료 월이 그 달보다 뒤이거나 없음)을 모읍니다.
2
시작 월이 가장 늦은 버전을 쓴다
그 가운데
effective_from이 가장 늦은 버전 하나만 씁니다. 그래서 다음 달부터 단가를 바꾸려면 이전 버전을 끝내지 않고 effective_from을 다음 달로 한 새 버전만 등록하면 됩니다.2026-11부터 500원 버전과 2026-12부터 400원 버전이 있으면 2026-11은 500원, 2026-12부터는 400원입니다. effective_until을 둔 버전은 종료 월부터 쓰지 않고, 그 달에 적용되는 다른 버전이 있으면 그 가운데 시작 월이 가장 늦은 것을 씁니다. 보관은 다릅니다. 이미 적용 중인 가장 늦은 버전을 보관하면 다음 달부터 이전 버전으로 돌아가지 않습니다. 단가 적용을 멈추는 방법과 보관한 뒤 쓰이는 단가는 바꾸기, 보관, 복원을 보세요.
같은 자리에 다시 등록하면 덮어쓴다
미터, 조합, 적용 대상,effective_from이 모두 같은 버전을 다시 등록하면 새 버전을 만들지 않고 기존 버전을 덮어씁니다. 응답은 여전히 201입니다. model, unit_price, tiers, effective_until이 모두 요청 값으로 바뀌므로, 기존 버전에 종료 월이 있었는데 이번 요청에서 effective_until을 빼면 종료 월이 사라집니다.
지난달은 바꿀 수 없다
effective_from이 이번 달(KST)보다 앞이면 409 price_rate_history_immutable입니다. 단가는 이번 달 이후에만 넣을 수 있으므로, 달이 바뀐 뒤에는 지난달 단가를 새로 넣거나 고칠 수 없습니다. 기준 시각은 시간 규칙을 보세요.
고객 단가
customer_id를 넣으면 그 고객에게만 쓰는 단가입니다. 같은 조합에 그 고객의 단가가 그 달에 있으면 고객 단가를, 없으면 공통 단가를 씁니다. 고객 단가도 공통 단가와 같은 월 버전 규칙을 따릅니다.
curl
- 고객 단가는 조합을 대신하지 않습니다. 그 고객에게
lumen-fast고객 단가만 있으면lumen-pro사용량에는lumen-pro공통 단가를 쓰고, 그것도 없으면 청구되지 않습니다. customer_id는 MeterEngine 고객 id(UUID)입니다(고객 등록과 ID 대응). 없는 고객이면 404customer_not_found, 보관한 고객이면 409customer_archived입니다.
단가 이력 조회
GET /v1/billable-metrics/{code}/price-rates는 그 미터의 단가 버전을 시작 월이 늦은 순서로 돌려줍니다. 필요 권한은 read입니다. 이 업무 환경에 없는 customer_id를 넣으면 404 customer_not_found입니다.
curl
200 응답
GET /v1/invoices/draft?month=YYYY-MM)으로 확인합니다.
단가 오류
다음 단계
기본료와 최소 사용료
월 기본료와 최소 사용료를 더하는 방법
금액 계산 따라가기
구간 단가부터 세액까지 숫자로 따라가기