Glowb Dev Docs
Admin APIAdmin Finance API

첫 행 잔액 지정 (기초 잔액 보정)

원장 첫 행의 balance_after 를 정해 원장 도입 이전 이월분을 바로잡습니다.

첫 행 잔액 지정

원장 첫 행의 balanceAfter 를 지정한 값으로 두고, 그 기준으로 전체를 다시 굴립니다.

왜 필요한가

원장은 나중에 도입됐습니다. 그 이전의 충전·차감은 행이 없고 결과만 기업 잔액에 남아 있습니다. 이 "원장에 행으로 없는 돈"이 이월분입니다.

이월분은 저장된 값이 아닙니다. 첫 행에서 매번 거꾸로 계산해 씁니다.

이월분 = 첫 행.balanceAfter - 첫 행.amount
행타입amountbalanceAfter
1CREDIT_ADD+50,000150,000
2CAMPAIGN_DEPOSIT-30,000120,000
3CREDIT_ADD+20,000140,000

150,000 - 50,000 = 100,000 이 이월분입니다. 그래서 이월분을 바로잡는 손잡이가 첫 행의 balanceAfter 하나뿐입니다.

중간 행의 balanceAfter 는 지정할 수 없습니다. 앞 행에서 계산돼 나오는 값이라 손으로 정할 대상이 아닙니다. 중간 행을 고치려면 금액 자체를 수정하세요.

HTTP 요청

PUT /ai/admin/finance/ledger/business/{businessAccountId}/first-row-balance?apply=false
Authorization: Bearer {access_token}
Content-Type: application/json
{ "balanceAfter": 150000 }
파라미터위치타입필수기본값설명
businessAccountIdpathLong예—기업 계정 id
balanceAfterbodyInteger예—첫 행의 balanceAfter 로 둘 값. 음수 가능
applyqueryboolean아니오falsetrue 여야 실제로 저장
adminIdqueryString아니오—처리자 ID

apply 를 빠뜨리면 아무것도 저장되지 않습니다. 화면에서는 "값 입력 → 미리보기 → 결과 확인 → 적용" 순으로 붙여주세요.

동작

첫 행은 occurredAt 이 가장 이른 행이고, 같은 시각이면 id 가 작은 쪽입니다. 소프트 삭제된 행은 첫 행 판정에서 빠집니다.

지정한 값으로 이월분을 다시 정한 뒤 첫 행부터 끝까지 다시 굴립니다. 응답 형태는 원장 전체 재계산과 동일하며, openingBalance 로 새로 정해진 이월분을, openingOverridden: true 로 덮어썼음을 알려줍니다.

위 표에서 balanceAfter: 150000 이면 이월분이 100,000, balanceAfter: 50000 이면 이월분이 0 이 됩니다.

응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "첫 행 잔액 반영 미리보기",
  "data": {
    "businessAccountId": 418,
    "openingBalance": 100000,
    "firstTxId": 451,
    "openingOverridden": true,
    "applied": false,
    "scannedCount": 168,
    "mismatchedCount": 12,
    "remainCreditBefore": 140000,
    "remainCreditAfter": 240000,
    "skippedEmptyLedger": false,
    "diffs": [],
    "diffsTruncated": 0
  }
}

필드 설명은 원장 전체 재계산 문서와 같습니다.

에러

상태 코드설명
400원장에 행이 없어 첫 행을 정할 수 없음
404기업을 찾을 수 없음

현재 첫 행보다 더 오래된 행을 새로 넣으면 첫 행이 바뀝니다. 그러면 이월분도 새 첫 행 기준으로 다시 역산되므로 값이 달라집니다. 응답의 firstTxId 로 첫 행이 무엇인지 확인하세요.

API 테스트

On this page