Skip to content

매출·매입에서 회계까지 백엔드 경계

불변식

  1. 거래, 증빙, 채권·채무, 수납·지급, 전표는 별도 원자와 상태를 가진다.
  2. 증빙 수집 또는 계정 분류가 거래·수납·지급·전표를 자동 확정하지 않는다.
  3. 업무 모듈은 전표 후보를 만들 수 있으나 전기·취소·마감은 회계 권한과 감사 이력이 필요하다.
  4. 증빙 기반 매출−매입은 손익이 아니다. 원가, 감가상각, 급여, 미수·미지급, 기간귀속과 결산 조정이 반영된 원장만 재무제표의 근거가 된다.
  5. 예상 부가세는 수집 증빙 세액 매출 A−매입 B의 참고값이다. 불공제, 예정고지, 의제매입, 안분과 신고 조정 전에는 확정 세액이 아니다.

권장 상태 모델

  • Trade.status: draft / confirmed / cancelled
  • Evidence.match_status: unmatched / matched / exception
  • Receivable|Payable.status: open / partial / settled / reversed
  • Receipt|Payment.status: pending / approved / applied / reversed
  • JournalCandidate.status: pending_review / accepted / rejected
  • JournalEntry.status: draft / posted / reversed

각 전이는 idempotency key, actor, timestamp, reason과 source reference를 남긴다. 역거래는 원자를 덮어쓰지 않고 reversal로 기록한다.

바로빌 수집 상태

configured, adapter_ready, last_sync_succeeded를 한 boolean으로 합치지 않는다. 회사·서비스별로 다음을 별도 저장한다.

  • 계약/인증 상태와 만료
  • 어댑터 배포 버전
  • 마지막 시도·성공 시각
  • 성공·실패·중복·제외 건수
  • 재시도 가능한 오류 코드와 trace id

(source, external_key) unique로 중복을 막고, 원문은 불변으로 보존하며 분류·매칭만 변경한다. TheBill 일괄 정산금은 기존 개별 수납과 분리해 정산 대사 대상으로 유지한다.

Prototype 범위

현재 프런트는 시나리오 데이터와 repository seam으로 흐름을 검증한다. 운영 Supabase 전표·마감, 바로빌 API와 신고 연계는 구현되지 않았으며 이 문서가 외부 API 변경을 승인하지 않는다.