정산 가이드

ONDA 플랫폼의 정산 프로세스와 입금 일정을 안내합니다.

정산 가이드#

ONDA API를 통해 발생한 예약에 대한 정산 프로세스, 입금 일정, 세금계산서 발행 등을 안내합니다.

정산 프로세스 개요#

예약 확정

고객이 예약을 완료하고 결제가 처리됩니다.

체크아웃 완료

고객이 숙박을 마치고 체크아웃합니다.

정산 확정

정산 주기에 맞춰 체크아웃 완료 건을 집계합니다.

입금 처리

수수료를 차감한 금액이 등록된 계좌로 입금됩니다.

정산 주기#

등급별 정산 일정#

등급정산 주기정산일입금 예정일
Standard월 2회매월 1일, 16일정산일 + 영업일 3~5일
Professional월 2회매월 1일, 16일정산일 + 영업일 3~5일
Enterprise주 1회 (선택 가능)매주 금요일정산일 + 영업일 3일

Enterprise 등급은 기본 월 2회 정산과 주 1회 정산 중 선택할 수 있습니다. 주 1회 정산 선택 시 현금 흐름을 개선할 수 있습니다.

정산 기준일#

정산은 체크아웃 완료 시점을 기준으로 합니다.

예약 상태정산 포함 여부
confirmed❌ (체크아웃 대기)
checked_in❌ (체크아웃 대기)
checked_out정산 대상
cancelled❌ (취소됨)
no_show정산 대상 (수수료 차감)

정산 상세 흐름#

1. 체크아웃 완료#

# 체크아웃 시점 예시
reservation = {
    "id": "res_abc123",
    "status": "checked_out",
    "check_in": "2026-02-15",
    "check_out": "2026-02-16",
    "checked_out_at": "2026-02-16T11:00:00Z",  # 체크아웃 완료 시각
    "pricing": {
        "total": 154000,  # 총 예약 금액
        "currency": "KRW"
    },
    "commission": {
        "rate": 0.15,      # 15% (Standard 등급)
        "amount": 23100    # 수수료
    }
}

# 숙박 시설 정산 예정 금액
payout_amount = reservation["pricing"]["total"] - reservation["commission"]["amount"]
print(f"정산 예정 금액: {payout_amount:,}원")  # 130,900원

2. 정산 확정#

매월 1일과 16일, 지정된 기간의 체크아웃 완료 건을 집계합니다.

2월 정산 예시:

정산일집계 기간입금 예정일
2월 1일1월 16일 0시 ~ 1월 31일 23시 59분 체크아웃2월 4~6일
2월 16일2월 1일 0시 ~ 2월 15일 23시 59분 체크아웃2월 19~21일
# 2월 1일 정산 집계 예시
settlement_period = {
    "settlement_date": "2026-02-01",
    "period_start": "2026-01-16T00:00:00Z",
    "period_end": "2026-01-31T23:59:59Z",
    "reservations": [
        {
            "id": "res_001",
            "checked_out_at": "2026-01-20T11:00:00Z",
            "total": 154000,
            "commission": 23100,
            "payout": 130900
        },
        {
            "id": "res_002",
            "checked_out_at": "2026-01-25T10:30:00Z",
            "total": 200000,
            "commission": 30000,
            "payout": 170000
        }
        # ... 더 많은 예약
    ],
    "summary": {
        "total_reservations": 150,
        "gross_revenue": 22500000,      # 총 매출
        "total_commission": 3375000,    # 총 수수료
        "net_payout": 19125000          # 실 정산 금액
    }
}

3. 입금 처리#

정산 확정 후 영업일 기준 3~5일 이내에 등록된 계좌로 입금됩니다.

입금 처리 일정:

정산일: 2026-02-01 (토요일)
  ↓
영업일 계산: 월(3), 화(4), 수(5), 목(6), 금(7)
  ↓
입금 예정: 2026-02-04 ~ 2026-02-06
  ↓
실제 입금: 2026-02-05 (수요일) ✅

공휴일 및 주말 처리

정산일이 주말이나 공휴일인 경우, 영업일 계산은 다음 영업일부터 시작됩니다. 입금도 은행 영업일 기준으로 처리됩니다.

정산 내역 확인#

대시보드에서 확인#

개발자 센터 대시보드에서 실시간으로 정산 내역을 확인할 수 있습니다.

경로: 대시보드 > 정산 관리

확인 가능한 정보:

  • 정산 예정 금액 (체크아웃 완료, 입금 대기)
  • 정산 완료 내역 (입금 완료)
  • 정산 상세 내역 (예약별 수수료 및 정산액)
  • 월별/분기별/연간 통계

API로 조회#

import requests

headers = {"Authorization": f"Bearer {access_token}"}

# 최근 정산 내역 조회
response = requests.get(
    "https://api.onda.me/v1/settlements",
    headers=headers,
    params={
        "limit": 10,
        "status": "completed"
    }
)

settlements = response.json()

for settlement in settlements["data"]:
    print(f"정산 ID: {settlement['id']}")
    print(f"정산 기간: {settlement['period_start']} ~ {settlement['period_end']}")
    print(f"예약 건수: {settlement['reservation_count']}건")
    print(f"총 매출: {settlement['gross_revenue']:,}원")
    print(f"수수료: {settlement['total_commission']:,}원")
    print(f"정산 금액: {settlement['net_payout']:,}원")
    print(f"입금일: {settlement['payout_date']}")
    print(f"입금 상태: {settlement['payout_status']}")
    print("---")

응답 예시:

{
  "data": [
    {
      "id": "settle_xyz123",
      "settlement_date": "2026-02-01",
      "period_start": "2026-01-16T00:00:00Z",
      "period_end": "2026-01-31T23:59:59Z",
      "reservation_count": 150,
      "gross_revenue": 22500000,
      "total_commission": 3375000,
      "net_payout": 19125000,
      "currency": "KRW",
      "payout_date": "2026-02-05",
      "payout_status": "completed",
      "payout_method": "bank_transfer",
      "bank_account": {
        "bank_name": "신한은행",
        "account_number": "****1234",
        "account_holder": "주식회사 예시"
      }
    }
  ],
  "meta": {
    "total": 24,
    "page": 1,
    "limit": 10,
    "has_more": true
  }
}

특정 정산 상세 조회#

settlement_id = "settle_xyz123"

response = requests.get(
    f"https://api.onda.me/v1/settlements/{settlement_id}",
    headers=headers,
    params={"include": "reservations"}
)

settlement_detail = response.json()

# 정산에 포함된 모든 예약 확인
for reservation in settlement_detail["reservations"]:
    print(f"{reservation['confirmation_number']}: {reservation['payout_amount']:,}원")

정산 상태값#

상태설명다음 가능 상태
pending체크아웃 완료, 다음 정산일 대기confirmed
confirmed정산 확정, 입금 대기processing, cancelled
processing입금 처리 중completed, failed
completed입금 완료-
failed입금 실패 (계좌 오류 등)processing
cancelled정산 취소 (예약 취소 등)-

상태별 처리#

def check_settlement_status(settlement):
    """정산 상태별 안내"""
    status = settlement["status"]

    if status == "pending":
        next_date = settlement["next_settlement_date"]
        print(f"다음 정산 예정일: {next_date}")

    elif status == "confirmed":
        payout_date = settlement["estimated_payout_date"]
        print(f"입금 예정일: {payout_date}")

    elif status == "processing":
        print("입금 처리 중입니다. 곧 완료됩니다.")

    elif status == "completed":
        payout_date = settlement["payout_date"]
        amount = settlement["net_payout"]
        print(f"{payout_date}에 {amount:,}원 입금 완료")

    elif status == "failed":
        reason = settlement.get("failure_reason", "알 수 없음")
        print(f"입금 실패: {reason}")
        print("계좌 정보를 확인하고 support@onda.me로 연락주세요.")

세금계산서

자동 발행#

수수료에 대한 세금계산서는 정산 확정 시점에 자동으로 발행됩니다.

항목내용
발행 시기정산 확정일 (매월 1일, 16일)
발행 방법전자세금계산서
발송 방법이메일 (등록된 이메일 주소)
국세청 전송발행일 다음 영업일

세금계산서 내역#

공급자: ONDA (주식회사 온다)

  • 사업자등록번호: 123-45-67890
  • 주소: 서울특별시 강남구 테헤란로 123

공급받는자: 귀사 정보 (등록된 사업자 정보)

품목 및 금액:

[2026년 2월 1일 정산 - 1.16~1.31 기간]

품목: ONDA API 플랫폼 수수료
수량: 150건
단가: 22,500원 (평균)
공급가액: 3,375,000원
부가세 (10%): 337,500원
총 합계: 3,712,500원

세금계산서는 PDF 파일로 이메일 발송되며, 대시보드의 정산 관리 > 세금계산서 메뉴에서 언제든지 재발행 및 다운로드할 수 있습니다.

세금계산서 조회#

# API로 세금계산서 목록 조회
response = requests.get(
    "https://api.onda.me/v1/tax-invoices",
    headers=headers,
    params={
        "year": 2026,
        "month": 2
    }
)

invoices = response.json()

for invoice in invoices["data"]:
    print(f"발행일: {invoice['issue_date']}")
    print(f"공급가액: {invoice['supply_amount']:,}원")
    print(f"부가세: {invoice['tax_amount']:,}원")
    print(f"합계: {invoice['total_amount']:,}원")
    print(f"PDF: {invoice['pdf_url']}")
    print("---")

계좌 정보 관리#

계좌 등록 및 변경#

정산금을 입금받을 계좌 정보는 대시보드에서 관리할 수 있습니다.

경로: 대시보드 > 설정 > 정산 계좌

필수 정보:

  • 은행명
  • 예금주명 (사업자명과 일치 필요)
  • 계좌번호
  • 사업자등록번호 (법인 계좌의 경우)

계좌 변경 시점:

  • 다음 정산부터 새 계좌로 입금 처리
  • 진행 중인 정산은 기존 계좌로 입금

계좌 변경 시 주의사항

정산일 3일 전까지 계좌 변경을 완료해야 해당 정산부터 새 계좌로 입금됩니다. 예를 들어, 2월 1일 정산분은 1월 29일까지 변경해야 합니다.

API로 계좌 정보 업데이트#

# 계좌 정보 변경
response = requests.put(
    "https://api.onda.me/v1/channels/me/bank-account",
    headers=headers,
    json={
        "bank_code": "088",           # 신한은행
        "account_number": "1234567890",
        "account_holder": "주식회사 예시",
        "business_number": "123-45-67890"
    }
)

if response.status_code == 200:
    print("계좌 정보 변경 완료")
    account = response.json()
    print(f"다음 정산부터 {account['bank_name']} {account['account_number']}로 입금됩니다.")

정산 관련 주의사항#

1. 최소 정산 금액#

정산 금액이 10,000원 미만인 경우, 다음 정산 주기로 이월됩니다.

# 정산 이월 예시
settlement_1 = {
    "date": "2026-02-01",
    "amount": 8500,
    "status": "carried_forward"  # 이월
}

settlement_2 = {
    "date": "2026-02-16",
    "amount": 150000,
    "carried_forward": 8500,      # 이월분 합산
    "total_payout": 158500,       # 실제 입금 금액
    "status": "completed"
}

2. 입금 실패 처리#

계좌 정보 오류 등으로 입금이 실패하면 이메일로 안내됩니다.

입금 실패 사유:

  • 계좌번호 오류
  • 예금주명 불일치
  • 폐쇄된 계좌
  • 은행 시스템 오류

해결 방법:

  1. 계좌 정보 확인 및 수정
  2. support@onda.me로 재입금 요청
  3. 영업일 기준 2~3일 이내 재처리

3. 환불 처리#

예약 취소로 고객에게 환불이 발생하면, 정산 금액에서 차감됩니다.

# 환불 발생 시 정산 조정
original_settlement = {
    "gross_revenue": 1000000,
    "commission": 150000,
    "net_payout": 850000
}

# 예약 취소 (전액 환불)
refund = {
    "reservation_total": 154000,
    "commission_refund": 23100,
    "payout_deduction": 130900
}

adjusted_settlement = {
    "gross_revenue": 1000000 - 154000,  # 846,000원
    "commission": 150000 - 23100,        # 126,900원
    "net_payout": 850000 - 130900,       # 719,100원
    "refund_adjustments": [refund]
}

환불 조정은 환불 발생 시점의 정산 주기에 반영됩니다. 이미 입금 완료된 정산분에서 환불이 발생하면, 다음 정산에서 차감됩니다.

4. 노쇼 (No-show) 처리#

고객이 체크인하지 않은 경우(노쇼), 숙박 시설 정책에 따라 정산 처리됩니다.

정책정산 처리
전액 수수료예약 금액의 100%에 대해 정산 (수수료 차감)
일부 수수료부과된 위약금에 대해서만 정산
수수료 없음정산 없음 (예약 취소 처리)

Enterprise 등급 주간 정산#

Enterprise 등급은 주 1회 정산을 선택할 수 있습니다.

주간 정산 일정#

구분내용
정산일매주 금요일
집계 기간지난 주 토요일 0시 ~ 금요일 23시 59분 체크아웃
입금 예정일정산일 + 영업일 3일

2월 주간 정산 예시:

1주차 정산 (2월 7일 금요일)
  집계 기간: 2월 1일 (토) ~ 2월 7일 (금) 체크아웃
  입금 예정: 2월 12일 (수)

2주차 정산 (2월 14일 금요일)
  집계 기간: 2월 8일 (토) ~ 2월 14일 (금) 체크아웃
  입금 예정: 2월 19일 (수)

3주차 정산 (2월 21일 금요일)
  집계 기간: 2월 15일 (토) ~ 2월 21일 (금) 체크아웃
  입금 예정: 2월 26일 (수)

4주차 정산 (2월 28일 금요일)
  집계 기간: 2월 22일 (토) ~ 2월 28일 (금) 체크아웃
  입금 예정: 3월 5일 (수)

현금 흐름 개선

주간 정산을 선택하면 월 2회 정산 대비 평균 7~10일 빠른 입금이 가능하여 현금 흐름이 개선됩니다.

정산 관련 FAQ#

1. 정산 금액이 예상과 다릅니다.#

다음 사항을 확인해주세요:

  • 환불 조정 발생 여부
  • 수수료율 (등급 변경 여부)
  • 최소 정산 금액 이월 (10,000원 미만)
  • 세금계산서 상의 공급가액과 비교

2. 입금 예정일이 지났는데 입금이 안 됐습니다.#

입금은 은행 영업일 기준으로 처리됩니다. 공휴일이나 주말이 포함되면 지연될 수 있습니다. 영업일 기준 5일이 지나도 입금이 안 되면 support@onda.me로 문의해주세요.

3. 세금계산서를 받지 못했습니다.#

대시보드의 정산 관리 > 세금계산서 메뉴에서 직접 다운로드할 수 있습니다. 이메일 미수신은 스팸 메일함을 확인하거나 담당자에게 이메일 주소 변경을 요청해주세요.

4. 정산 주기를 변경할 수 있나요?#

Enterprise 등급만 주간 정산을 선택할 수 있습니다. Standard/Professional 등급은 월 2회 정산만 가능합니다.

5. 해외 송금이 가능한가요?#

현재는 국내 은행 계좌로만 정산이 가능합니다. 해외 송금이 필요하신 경우 enterprise@onda.me로 별도 문의해주세요.

다음 단계#