정산 개요
Adit 캠페인의 정산 방식과 절차를 안내드립니다.
정산 시점
정산 레코드는 캠페인이 "업로드 완료(UPLOADED)" 상태가 되면 자동으로 생성됩니다.
정산 방식
| 방식 | 코드 | 설명 | 수수료 | 원천징수 |
|---|---|---|---|---|
| Adit 정산 | ADIT_SETTLEMENT | 대행사가 중개 | 있음 (기본 20%) | 개인사업자만 3.3% |
| 매체사 직정산 | DIRECT_INVOICE | 파트너↔광고주 직접 | 없음 (0%) | 없음 (0%) |
정산 유형 변경: 어드민이 정산 유형을 ADIT_SETTLEMENT ↔ DIRECT_INVOICE로 변경할 수 있습니다. 변경 시 수수료/원천징수가 재계산되며 정산 상태가 SETTLEMENT_PENDING으로 초기화됩니다.
Adit 정산 플로우
캠페인 업로드 완료 → 정산 요청 → 입금 → 지급 순서로 진행됩니다.
┌─────────────────────────────────────────────────────────────────┐
│ │
│ 시스템 대행사 광고주 │
│ │
│ ⓪ 업로드 완료 시 │
│ → Settlement 자동 생성 │
│ → AdvertiserInvoice 생성 ────────────────────→ │
│ → Bolta 정발행 자동 요청 (세금계산서) │
│ │
│ 파트너 │
│ │
│ ① 정산 요청 ──────────→ │
│ (법인: Bolta 역발행 자동) │
│ │
│ ② 입금 ──────────→ │
│ ③ 입금 확인 │
│ │
│ ④ 세금계산서 요청 ←──── │
│ │
│ ⑤ 세금계산서 발행 ──────→ │
│ (Bolta 역발행 or 직접) │
│ │
│ ⑥ 정산금 수령 ←────────── │
│ (원천징수 차감 후) │
│ │
└─────────────────────────────────────────────────────────────────┘단계별 상세
| 단계 | 담당 | 액션 | 정산 상태 |
|---|---|---|---|
| 0 | 시스템 | 업로드 완료 → Settlement/AdvertiserInvoice 자동 생성 + Bolta 정발행 | SETTLEMENT_PENDING |
| 1 | 파트너 | 정산 요청 (법인: Bolta 역발행 자동 요청) | → AWAITING_ADVERTISER_PAYMENT |
| 2 | 광고주 | 입금 | - |
| 3 | 어드민 | 입금 확인, 결제 확인 | → ADVERTISER_PAID |
| 4 | 어드민 | 파트너에게 세금계산서 요청 | → PARTNER_PAYOUT_PROCESSING |
| 5 | 파트너 | 세금계산서 발행 | - |
| 6 | 어드민 | 정산금 송금, 완료 처리 | → SETTLEMENT_COMPLETED |
매체사 직정산 플로우
파트너가 광고주에게 직접 청구합니다.
┌─────────────────────────────────────────────────────────────────┐
│ │
│ 파트너 광고주 │
│ │
│ ① 정산 요청 ──────────────────────────────────→ │
│ (계좌 정보 안내) │
│ │
│ ② 세금계산서 발행 ────────────────────────────→ │
│ │
│ ③ 입금 ──────────→ │
│ │
│ ④ 입금 확인 처리 │
│ (파트너가 직접!) │
│ │
└─────────────────────────────────────────────────────────────────┘단계별 상세
| 단계 | 담당 | 액션 | 정산 상태 |
|---|---|---|---|
| 1 | 파트너 | 정산 요청 | → AWAITING_ADVERTISER_PAYMENT |
| 2 | 파트너 | 광고주에게 세금계산서 발행 | - |
| 3 | 광고주 | 파트너 계좌로 직접 입금 | - |
| 4 | 파트너 | 입금 확인 처리 | → SETTLEMENT_COMPLETED |
매체사 직정산에서는 파트너가 직접 "입금 확인"을 해야 캠페인이 완료됩니다.
정산 상태
| 상태 | 코드 | 설명 |
|---|---|---|
| 🕐 정산 대기 | SETTLEMENT_PENDING | 파트너 정산 요청 전 |
| 📤 결제 대기 | AWAITING_ADVERTISER_PAYMENT | 정산 요청됨, 광고주 입금 대기 |
| ✅ 결제 완료 | ADVERTISER_PAID | 광고주 입금 확인됨 (ADIT 정산만) |
| 🔄 지급 처리 중 | PARTNER_PAYOUT_PROCESSING | 파트너 지급 처리 중 (ADIT 정산만) |
| 💰 정산 완료 | SETTLEMENT_COMPLETED | 정산 완료 |
| ❌ 정산 취소 | SETTLEMENT_CANCELLED | 정산 취소 |
SETTLEMENT_PENDING
│
│ 파트너: 정산 요청
▼
AWAITING_ADVERTISER_PAYMENT
│
│ 어드민: 입금 확인
▼
ADVERTISER_PAID
│
│ 어드민: 지급 시작
▼
PARTNER_PAYOUT_PROCESSING
│
│ 어드민: 정산 완료
▼
SETTLEMENT_COMPLETED수수료 체계
수수료율 기본값
| 항목 | 기본값 | 설정 위치 | 비고 |
|---|---|---|---|
| Adit 정산 수수료 | 20% | 파트너별 설정 (Partner.commissionRate) | 캠페인별 오버라이드 가능 |
| 직정산 수수료 | 0% (고정) | - | 변경 불가 |
수수료율 적용 우선순위
- 캠페인별 수수료 (Campaign.commissionRate) — 설정되어 있으면 최우선 적용
- 파트너별 수수료 (Partner.commissionRate) — 캠페인에 설정 안 된 경우
- 시스템 기본값 — 20%
수수료율은 파트너 등록 시 설정되며, 필요에 따라 캠페인 단위로 별도 설정할 수 있습니다.
원천징수
원천징수는 개인사업자(INDIVIDUAL) 파트너 + ADIT 정산(ADIT_SETTLEMENT)인 경우에만 적용됩니다.
| 조건 | 원천징수율 | 적용 여부 |
|---|---|---|
| 개인사업자 + ADIT 정산 | 3.3% (소득세 3% + 지방소득세 0.3%) | ✅ |
| 법인사업자 + ADIT 정산 | 0% | ❌ |
| 개인/법인 + 매체사 직정산 | 0% | ❌ |
원천징수 계산 기준: 정산금(settlementAmount) 기준
정산금 계산
Adit 정산 (법인사업자)
수수료 = 캠페인 가격 × 수수료율
정산금 = 캠페인 가격 - 수수료
실지급액 = 정산금 (원천징수 없음)예시 (100만원, 수수료 20%, 법인사업자):
| 항목 | 금액 |
|---|---|
| 캠페인 가격 | 1,000,000원 |
| 수수료 (20%) | -200,000원 |
| 정산금 | 800,000원 |
| 원천징수 (0%) | 0원 |
| 실지급액 (payoutAmount) | 800,000원 |
파트너가 세금계산서 발행 시: 공급가액 800,000원 + VAT 80,000원 = 880,000원
Adit 정산 (개인사업자)
수수료 = 캠페인 가격 × 수수료율
정산금 = 캠페인 가격 - 수수료
원천징수 = 정산금 × 3.3%
실지급액 = 정산금 - 원천징수예시 (100만원, 수수료 20%, 개인사업자):
| 항목 | 금액 |
|---|---|
| 캠페인 가격 | 1,000,000원 |
| 수수료 (20%) | -200,000원 |
| 정산금 | 800,000원 |
| 원천징수 (3.3%) | -26,400원 |
| 실지급액 (payoutAmount) | 773,600원 |
매체사 직정산
수수료와 원천징수 모두 0%:
| 항목 | 금액 |
|---|---|
| 캠페인 가격 | 1,000,000원 |
| 수수료 | 0원 |
| 정산금 | 1,000,000원 |
| 원천징수 | 0원 |
| 실지급액 | 1,000,000원 |
파트너가 세금계산서 발행 시: 공급가액 1,000,000원 + VAT 100,000원 = 1,100,000원
3계층 정산 구조
| 계층 | 모델 | 설명 |
|---|---|---|
| 1계층 | Settlement | 캠페인 단위 정산 (1:1) |
| 2계층-A | AdvertiserInvoice | 광고주 청구서 |
| 2계층-B | PartnerPayout | 파트너 지급 배치 |
Settlement 주요 필드
| 필드 | 설명 |
|---|---|
campaignPrice | 캠페인 가격 (스냅샷) |
commissionRate | 수수료율 (%) |
commissionAmount | 수수료 금액 |
settlementAmount | 정산금 (= campaignPrice - commissionAmount) |
withholdingTaxRate | 원천징수율 (%) — 개인+ADIT: 3.3%, 그 외: 0 |
withholdingTaxAmount | 원천징수 금액 |
payoutAmount | 실지급액 (= settlementAmount - withholdingTaxAmount) |
청구/지급 유형
| 유형 | 설명 | 현재 상태 |
|---|---|---|
건별 (PER_CAMPAIGN) | 캠페인 1건 = 청구서/지급 1건 | ✅ 지원 |
월별 (MONTHLY) | 여러 캠페인 합산 | 추후 지원 |
Bolta 세금계산서 연동
역발행 (Adit 정산 · 법인사업자)
법인사업자 파트너의 정산 요청 시 Bolta API를 통한 역발행이 자동으로 요청됩니다.
| 단계 | 설명 |
|---|---|
| 1 | 파트너가 정산 요청 → Bolta 역발행 자동 요청 |
| 2 | 파트너에게 역발행 승인 URL 이메일 발송 |
| 3 | 파트너가 승인 → 세금계산서 자동 발행 |
개인사업자
개인사업자는 Bolta 역발행을 사용하지 않고, 직접 세금계산서를 발행합니다.
정발행 (광고주 청구)
Adit 정산 시 광고주에게 발행하는 세금계산서도 Bolta API를 통한 정발행이 자동으로 처리됩니다.
정산 취소
| 상태 | 취소 가능 |
|---|---|
| SETTLEMENT_PENDING | ✅ |
| AWAITING_ADVERTISER_PAYMENT | ✅ |
| ADVERTISER_PAID | ✅ |
| PARTNER_PAYOUT_PROCESSING | ✅ |
| SETTLEMENT_COMPLETED | ❌ |
정산 완료 후에는 취소할 수 없습니다. 이미 송금이 완료된 상태입니다.