메인 콘텐츠로 건너뛰기
MeterEngine에는 고객, 미터, 단가, 요금제를 영구 삭제하는 기능이 없습니다. 이 대상에 대한 API의 DELETE 요청과 콘솔의 ‘보관’은 모두 보관이고, 보관한 것도 기록으로 남아 목록에서 status=archived 또는 status=all로 조회됩니다. 보관과 복원에는 admin 권한이 필요합니다. 보관이 언제부터 효력을 내는지는 대상마다 다릅니다. “이번 달”과 “다음 달”은 한국 시간(KST) 기준입니다. 자세한 내용은 시간 규칙을 보세요.

보낸 이벤트와 확정한 인보이스

보관과 별개로 아래는 바꿀 수 없습니다.
  • 보낸 이벤트는 고치거나 지울 수 없습니다. 집계가 sum인 미터는 확정 전에 상계 이벤트로 바로잡을 수 있습니다. 방법은 사용량 이벤트 보내기를 보세요.
  • 확정한 인보이스는 되돌릴 수 없습니다. 미터, 단가, 요금제를 바꾸거나 보관해도 이미 확정한 인보이스의 금액과 라인은 그대로입니다. 자세한 내용은 확정 뒤 바뀌는 것과 안 바뀌는 것을 보세요.

고객

고객 보관은 요청한 순간부터 효력이 있습니다. 보관한 고객에 대해 아래 요청은 409 customer_archived로 거절됩니다.
  • 그 고객의 새 이벤트. 배치 요청에서는 그 원소만 거절됩니다. 거절된 이벤트는 ‘수집 거절’ 화면에 남습니다. 보관 전에 이미 저장된 transaction_id로 다시 보내면 거절하지 않고 중복(duplicate가 true)으로 답합니다.
  • 같은 external_id의 고객 등록
  • 고객 이름과 청구 이메일 수정
  • 그 고객의 고객 단가와 고객 요금제 등록
  • 그 고객의 카드 등록 링크 발급. 보관 전에 발급한 링크도 보관한 동안에는 열리지 않습니다.
보관해도 남는 것이 있습니다.
  • 보관 전에 받은 이벤트는 그 달 청구 예정액에 그대로 남고 확정할 때 청구됩니다. 보관은 청구를 멈추는 기능이 아닙니다.
  • 그 고객의 고객 단가와 고객 요금제는 보관 전에 받은 사용량에 계속 적용됩니다.
  • 지난 청구와 결제 기록은 그대로입니다.
보관한 동안 거절된 이벤트는 저장되지 않으므로 복원해도 살아나지 않습니다. 복원한 뒤 도입사 쪽에서 다시 보내야 합니다. 35일보다 오래된 이벤트는 거절되고, 지난달 사용량은 다음 달 1일 13:00 KST까지 받은 것만 청구됩니다. 고객을 잠시 멈출 때는 이 기한 안에 복원하고 다시 보내세요. 기한의 기준은 시간 규칙을 보세요.

미터

미터를 보관하면 이번 달 사용량은 끝까지 집계하고 다음 달부터 집계하지 않습니다.
  • 보관해도 이벤트와 단가는 남습니다. 미터 조회 응답의 inactive_from이 집계를 멈추는 달입니다.
  • 보관한 미터는 정의 수정과 단가 등록이 409 resource_archived로 거절됩니다. 복원한 뒤 합니다.
  • 보관한 미터의 code로 새 미터를 만들 수 없습니다(409 billable_metric_already_exists). 같은 code가 필요하면 그 미터를 복원해서 씁니다.
  • 보관한 미터의 이벤트를 세는 다른 미터가 없으면, 다음 달부터 그 type의 이벤트는 어느 미터에도 집계되지 않고 청구에서 빠집니다. 확인 방법은 이벤트가 청구에 안 보일 때를 보세요.
복원은 소급하지 않습니다. 복원하면 다음 달부터 다시 집계합니다. 응답의 active_from이 다시 집계를 시작하는 달입니다. 보관한 달 안에 복원하면 끊기는 달이 없습니다. 다음 달 이후에 복원하면 보관 효력이 시작된 달부터 복원한 달까지의 이벤트는 복원 뒤에도 청구되지 않습니다. 이벤트가 들어온 미터는 계산 기준을 바꿀 수 없으므로, 계산 기준을 바꾸려면 새 미터를 만들고 옛 미터를 보관합니다. 순서와 겹치는 달의 주의점은 미터 설계를 보세요.

단가

단가는 버전마다 보관합니다. 콘솔에서는 ‘요금 설계’ 화면의 ‘단가 변경 이력’에서 버전마다 ‘단가 버전 보관’, ‘단가 버전 복원’을 누릅니다. 보관한 버전은 응답의 archived_at에 보관 시각, archived_from에 멈추는 달이 들어갑니다.

보관한 뒤 어느 단가가 쓰이나

아래 예시는 이번 달이 11월일 때입니다. 수량은 매달 100입니다.
가장 늦은 버전을 보관하면 다음 달부터 그 조합에는 단가가 없습니다. 이전 버전으로 돌아가지 않습니다. 단가가 없는 조합의 사용량은 청구되지 않고 청구 예정액의 unpriced_usages에 나옵니다. 단가를 내리거나 바꾸려는 것이면 보관하지 말고 새 버전을 등록하세요.
  • 기한(effective_until)이 있는 버전을 보관하면 그 버전은 다음 달부터 원래 종료 월 전까지 멈추고, 종료 월부터는 그 전에 걸려 있던 버전이 다시 적용됩니다.
  • 고객 단가를 보관하면 다음 달부터 그 고객에게는 같은 조합의 공통 단가가 적용됩니다.
  • 아직 시작하지 않은 버전을 보관하면 시작 전에 취소되고 그 전 버전이 계속 적용됩니다.

조합의 공통 단가 한 번에 보관하기

dimension_values에 조합을 JSON 객체 문자열로 넣으면 그 조합의 공통 단가(customer_id 없음) 가운데 이번 달에 걸려 있는 버전(시작 월이 이번 달이거나 그 전이고 종료 월이 지나지 않은 버전)을 모두 보관합니다. 차원이 없는 미터는 {}입니다. 키 순서는 상관없습니다.
curl
  • 고객 단가와 아직 시작하지 않은 예약 버전은 보관하지 않습니다. 예약 버전은 예정대로 시작합니다.
  • 이번 달에 걸려 있는 공통 단가가 없으면 404 price_rate_not_found입니다.

요금제

요금제도 버전마다 보관하고 규칙은 단가와 같습니다. 콘솔에서는 ‘요금 설계’ 화면의 ‘요금제 변경 이력’에서 ‘요금제 버전 보관’, ‘요금제 버전 복원’을 누릅니다.
  • 가장 늦은 버전을 보관하면 다음 달부터 요금제가 없고 이전 버전으로 돌아가지 않습니다. 예를 들어 지난 버전 기본료 100원, 11월부터 기본료 200원 버전을 보관하면 11월은 200원, 12월부터는 기본료가 붙지 않습니다.
  • 기한 있는 버전을 보관하면 원래 종료 월부터 이전 버전이 다시 적용됩니다.
  • 고객 요금제를 보관해 그 고객에게 적용되는 고객 요금제가 없어지면 다음 달부터 공통 요금제가 적용됩니다.
요금제의 계산 규칙은 기본료와 최소 사용료를 보세요.

복원할 수 있는 경우

단가 버전과 요금제 버전은 아래 조건을 모두 만족할 때만 복원됩니다.
  1. 보관 효력이 아직 시작되지 않았습니다. 이번 달 적용 중인 버전은 보관한 그 달 안에만 복원할 수 있습니다. 시작 전 예약 버전은 시작 월 전까지 복원할 수 있습니다.
  2. 같은 대상(공통 또는 같은 고객), 같은 시작 월(단가는 같은 조합까지)의 보관하지 않은 버전이 없습니다.
어느 하나라도 어기면 409 archive_restoration_conflict입니다. 이때는 복원하지 말고 이번 달 이후로 새 버전을 등록합니다. 콘솔은 이런 버전에 ‘적용 중단이 시작됐거나 대체 버전이 있습니다. 새 버전을 등록하세요.‘를 보여 줍니다.
이번 달에 시작한 버전을 보관한 뒤 같은 시작 월로 새로 등록하면 409 archive_restoration_conflict로 거절됩니다. 보관한 버전이 이번 달에는 아직 적용되기 때문입니다. 값을 바꾸려면 그 버전을 먼저 복원한 뒤 같은 시작 월로 다시 등록해 덮어씁니다.

보관 대신 바꾸기

청구 금액을 바꾸려는 것이면 보관보다 새 버전 등록이 맞습니다. 월 버전의 규칙은 단가 모델과 버전을 보세요. 엔드포인트별 요청과 응답은 API 참조에 있습니다.