본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
한국 사업자의 글로벌 결제

선택·계약

서비스 선택 기준국내 PG와 MoR 비교판매·계약 구조계약·DPA 검토스토어 개설·승인

결제·구독 구현

상품·가격·세금한국 Checkout한국 Checkout QA구독 라이프사이클웹훅·권한 동기화웹훅 구현 부록

정산·세무

정산·월마감정산 원장 템플릿한국 세무·회계개인사업자와 법인세무·법무 검토 자료

고객 운영

약관·소비자·개인정보한국 B2B 청구CS·환불·분쟁

사례·이전·검증

사례·운영 체크리스트Paddle→Lemon Squeezy 이전공식 자료 검증 리포트업데이트 내역
핸드북›한국 사업자의 글로벌 결제›정산 원장 템플릿

정산 원장 템플릿

서로 다른 거래·지급 필드를 공통 내부 원장에 매핑한다. 실제 운영 기준과 검증 항목을 함께 제공한다.

이 장은 두 서비스를 같은 주제에서 비교한 뒤 두 공급자의 상세 설명을 모두 담습니다. 기능 노출·계약 요율·국가별 결제수단은 계정과 시점에 따라 달라질 수 있으므로 실제 스토어와 각 절의 공식 출처를 확인하세요.

주제별 비교

비교 항목PaddleLemon Squeezy
주문 식별transaction·subscription·customer ID를 보존한다.order identifier/order number·subscription/customer ID를 보존한다.
수수료·지급payout reconciliation report의 실제 열을 매핑한다.CSV에 없는 필드는 dashboard·reverse invoice·API로 보완한다.
예외미매칭·환불·조정·환차를 예외 큐에 남긴다.미매칭·환불·조정·환차를 예외 큐에 남긴다.

Paddle 상세

핵심 요약

  • 월마감은 보고서를 내려받는 일이 아니라 같은 거래를 Paddle report·내부 주문 DB·payout reconciliation·bank statement·전표에서 다시 맞춰보는 작업이다.
  • transaction ledger, payout 대사, exception 등 6종 CSV 파일 세트를 표준 컬럼으로 맞춰 거래·세금·수수료·환불·환율을 추적한다.
  • remittance_reference별 balance movement 합계와 remittance advice·은행 입금액을 대조하고 Paddle fee, rebate, SWIFT/중개은행 fee를 분리한다.
  • 미매칭·payout 누락·은행 차이·환불 월차이·unknown 결제수단·세무 검토 건은 exception queue 상태값으로 담당자에게 배정한다.
  • 원본 CSV는 수정하지 않고 정규화 테이블을 따로 만들며, 한국 고객·KRW·국내 B2B 예외 거래는 별도 태그를 둔다.

월마감은 보고서를 내려받는 일이 아니라 같은 거래를 여러 원장에서 다시 맞춰보는 일입니다. 이 장에서는 Paddle report, 내부 주문 DB, payout reconciliation report, bank statement, 회계 전표를 한 흐름으로 묶는 템플릿을 정리합니다.

파일 세트

파일소스목적
paddle_transactions_YYYY_MM.csvPaddle export거래, 세금, 수수료, 환불 원장
paddle_payout_reconciliation_YYYY_MM.csvPaddle payout reconciliation report지급 묶음과 지급 통화 확인
internal_orders_YYYY_MM.csv내부 DB고객, 워크스페이스, 권한 매칭
bank_statement_YYYY_MM.csv은행실제 입금, wire fee, 환율 확인
fx_rates_YYYY_MM.csv회계 기준 환율KRW 전표 환산
exceptions_YYYY_MM.csv재무/운영미매칭, 환불 지연, chargeback 추적

표준 거래 원장 컬럼

month,paddle_transaction_id,paddle_subscription_id,internal_order_id,workspace_id,customer_country,payment_method_type,payment_currency,gross_amount,tax_amount,paddle_fee,refund_amount,net_amount,remittance_reference,book_fx_rate,krw_amount,exception_note
2026-08,txn_01,sub_01,ord_01,ws_01,KR,kakao_pay,KRW,29000,2636,1450,0,24914,REM-2026-08-001,1,24914,
컬럼기준
gross_amount고객이 결제한 총액. 통화별 최소 단위 처리 여부 확인
tax_amountPaddle이 계산/처리한 거래세. 한국 법인의 신고 판단과 혼동 금지
paddle_feePaddle transaction fee. payment method/country별 분석 가능하게 보관
refund_amount원 transaction과 연결. 환불 발생월과 원 결제월을 둘 다 보관
net_amountPaddle transaction/report 기준 정산 대상 금액
book_fx_rate회사 회계정책상 적용 환율
krw_amount전표 입력용 원화 환산액

payout 대사 컬럼

remittance_reference,balance_movement_date,balance_movement_type,balance_currency,balance_movement_in_balance_currency,remittance_amount,bank_received_amount,bank_fee,matched,exception_note
REM-2026-08-001,2026-08-12,transaction,USD,7835.00,7835.00,7820.00,15.00,true,
점검기준
remittance 매칭remittance_reference별 balance_movement_in_balance_currency 합계가 remittance advice와 일치
은행 입금액bank statement의 실제 입금액과 payout reconciliation report를 대조
wire feePaddle fee와 은행/중개은행 수수료를 분리
FXPaddle conversion, 은행 환전, 장부 환율을 별도 컬럼으로 분리
미매칭다음 월 이월인지, 환불/chargeback인지, 누락 export인지 기록

회계 전표 예시

회계 계정은 회사 정책과 세무사 검토로 확정합니다. 아래는 구조 예시입니다.

상황차변대변메모
Paddle 정산 매출 인식외상매출금/Paddle receivable매출 또는 기타수익총액/순액 인식 정책 확정 필요
Paddle fee 인식지급수수료외상매출금/Paddle receivabletransaction fee breakdown 첨부
payout 입금외화예금외상매출금/Paddle receivablepayout reconciliation report와 bank statement 첨부
은행 수수료지급수수료외화예금Paddle fee와 분리
환차손익외환차손익외화예금/외상매출금장부 환율과 입금 환율 차이
환불매출 차감 또는 환불 비용외상매출금/Paddle receivable원 transaction ID 연결

월마감 SQL 체크

-- Paddle transaction과 내부 주문 미매칭
select
  p.paddle_transaction_id,
  p.paddle_subscription_id,
  p.net_amount,
  p.payment_currency
from finance_paddle_transactions p
left join orders o on o.paddle_transaction_id = p.paddle_transaction_id
where p.month = :month
  and o.id is null;

-- payout별 합계와 은행 입금 대조
select
  remittance_reference,
  sum(net_amount) as transaction_net_sum,
  max(bank_received_amount) as bank_received_amount,
  sum(net_amount) - max(bank_received_amount) as diff
from finance_reconciliation
where month = :month
group by remittance_reference
having abs(sum(net_amount) - max(bank_received_amount)) > :tolerance;

exception queue

상태의미담당
missing_internal_orderPaddle 거래는 있으나 내부 주문이 없음Engineering
missing_remittance거래는 있으나 remittance reference가 아직 없음Finance
bank_diffpayout reconciliation report와 은행 입금액 차이Finance
refund_cross_month환불월과 결제월이 다름Finance/Support
unknown_payment_method새 결제수단 타입 유입Data/Engineering
tax_review세무 판단이 필요한 거래Finance/Tax

운영 원칙

  • 원본 CSV는 수정하지 않고, 정규화 테이블을 따로 만듭니다.
  • transaction_id, subscription_id, remittance_reference를 회계 전표 메모에 남깁니다.
  • 한국 고객, 한국 통화, 국내 B2B 예외 거래는 별도 태그를 둡니다.
  • 월마감 후 exception이 남으면 다음 달 첫 영업일에 재무/개발/CS가 함께 review합니다.

참고 자료

  • Paddle Developer - Generate reports
  • Paddle Developer - Reports API
  • Paddle Help - Is there a fee taken for payouts?
  • Paddle Developer - Payout reconciliation report
  • Paddle Developer - Payout report improvements
  • Paddle Help - Statements, reverse invoices and remittance advice

Lemon Squeezy 상세

핵심 요약

  • Orders CSV의 subtotal, tax, total은 USD cents이며 currency는 checkout 표시 통화다.
  • identifier와 order_number를 고객 결제 증빙·내부 주문과 연결한다.
  • payout reverse invoice와 은행 입금은 주문 CSV와 별도 자료다.
  • 수수료·환전 차이는 실제 dashboard와 계약 자료를 붙여 기록한다.

입력 파일 세트

파일/화면주요 열용도
Orders CSVidentifier, order_number, currency, currency_rate, subtotal, tax, total, date_utc거래·세금 원장
Order/Subscription API객체 ID, status, total_usd, refunded_amount_usd, 구독 정보CSV에 없는 환불 상태·webhook 보정
Payout 대시보드·reverse invoicepayout 날짜·지급액, 계정에 실제 표시되는 수수료·차감 근거공급자 정산 근거
은행/PayPal 내역입금일, 통화, 실제 수취액, 환율·수수료현금 대사
내부 DBworkspace ID, entitlement, 플랜, 결제 intent제품 제공 증거

CSV의 subtotal, discount_total, tax, total은 공식 컬럼 설명상 USD cents입니다. currency가 KRW라고 해서 숫자 total을 원화로 해석하면 수천 배 오류가 납니다. currency_rate는 표시 환율을 설명할 뿐 은행 입금 환율과 같지 않습니다. 공식 CSV 열 목록에는 환불액·플랫폼 수수료·payout ID가 없으므로 이 값들은 CSV에서 추정하지 않습니다.

표준 거래 원장

order_identifier,order_number,date_utc,customer_country,product_name,variant_name,display_currency,currency_rate,subtotal_usd_cents,discount_usd_cents,tax_usd_cents,total_usd_cents,refund_usd_cents,internal_workspace_id,source_file

여기서 refund_usd_cents는 CSV 원본 열이 아닙니다. Order API의 refunded_amount_usd 등 확인한 근거를 연결해 채우고, 값이 없으면 0으로 가정하지 않고 미확인으로 둡니다.

개인정보가 들어간 원본 CSV는 접근 통제하고, 월마감 분석본은 이름·이메일을 최소화합니다. 주문 ID가 없거나 동일 ID가 중복될 때는 exception queue로 보냅니다.

지급·은행 연결표

payout_reference,payout_created_at,payout_paid_at,period_start,period_end,gross_eligible_usd,platform_fees_usd,refunds_adjustments_usd,payout_fee_usd,net_payout_usd,reverse_invoice_file,bank_value_date,bank_currency,bank_amount,fx_rate,unmatched_reason

이 표는 내부 표준 템플릿이지 Lemon Squeezy의 공식 CSV 스키마가 아닙니다. Getting paid는 reverse invoice를 지급액의 기록으로 설명할 뿐, 주문별 수수료와 보류·차감을 모두 담는다고 명시하지 않습니다. 대시보드에 없는 필드는 계산 근거와 담당자를 명시하고 미확인 상태로 둡니다. 순지급액이 주문 합계와 맞지 않으면 13일 보류, 최소 USD 50, 기간 경계, 환불·분쟁, payout 비용을 확인합니다.

payout_reference는 내부 연결 키입니다. reverse invoice·dashboard에 실제로 존재하는 식별자를 우선 기록하고, 없으면 문서명·생성일·금액을 조합한 내부 키를 만듭니다. 주문 하나를 지급 건 하나에 억지로 배부하지 않습니다. 13일 보류와 최소 지급액 때문에 거래월, 지급 생성월, 은행 입금월이 다를 수 있습니다.

예외 큐와 재처리

예외탐지담당자와 닫는 조건
missing_order앱 유료 권한은 있는데 Order API/CSV에서 원주문을 못 찾음제품: test/live 및 webhook·API ID 확인, 정당한 주문으로 연결하거나 권한 회수
duplicate_order동일 identifier가 내부 원장에 여러 번 반영됨엔지니어링: 원본·재전송 식별, 한 주문으로 수렴하고 중복 side effect 보정
unmatched_refund환불 API/dashboard 값이 원주문·CS 티켓에 연결되지 않음CS·재무: 환불 사유·금액·귀속 기간 확인
unexplained_payoutreverse invoice/은행 입금과 내부 지급 장부 차이가 남음재무: 보류·이월·수수료·분쟁·환율 증빙 첨부
currency_mismatchUSD cents를 KRW 또는 은행 수취액과 같은 숫자로 비교함재무: 표시 통화, USD 처리, 지급 통화를 분리해 재계산

예외마다 type, store_id, order_identifier, subscription_id, payout_reference, first_seen_at, owner, evidence_url, status, resolution을 남깁니다. 플랫폼 원본 export나 API 응답은 수정하지 않고, 보정 분개와 이유를 별도 기록합니다. 월말에 열린 예외의 금액·건수와 다음 달 이월 여부를 승인받습니다.

내부 order_ledger에 CSV를 정규화했다고 가정한 PostgreSQL 확인 예시는 다음과 같습니다. 이 테이블은 자사 스키마 예시이고, 공식 Lemon Squeezy API 테이블이 아닙니다.

-- 한 스토어에서 같은 공식 identifier가 중복 적재됐는지 검사
SELECT store_id, order_identifier, COUNT(*) AS rows_loaded
FROM order_ledger
WHERE source = 'lemonsqueezy_orders_csv'
GROUP BY store_id, order_identifier
HAVING COUNT(*) <> 1;

-- 환불이 일어난 주문에서 API 확인값이 비어 있는 건을 수동 검토
SELECT store_id, order_identifier, order_status, refund_usd_cents
FROM order_ledger
WHERE order_status IN ('refunded', 'partially_refunded')
  AND refund_usd_cents IS NULL;

실제 Order API의 상태 문자열과 환불 필드를 적재할 때 정규화한 값에 맞춰 두 번째 질의를 수정합니다. NULL을 자동으로 0으로 바꾸면 누락이 사라져 보이므로 금액을 확인하기 전까지 미확인으로 유지합니다.

전표 검토 예시

거래 발생: 계약 구조에 따른 매출/미수금/수수료/거래세 구분
payout 확정: 미수금 ↔ 지급대기/외화예금 대체
은행 입금: 외화 지급액 ↔ 실제 원화 입금액, 환차손익·은행 수수료
환불/분쟁: 원거래·해당 기간과 연결한 수정 전표

총액/순액 매출 인식, 세금 계정, 적용 환율은 계약과 한국 회계기준에 따라 세무사·회계사와 확정합니다. 고객 영수증과 공급자 reverse invoice를 동일 문서로 취급하지 않습니다.

월마감 체크

  • CSV 기간과 UTC/한국시간 경계를 기록했다.
  • webhook/API 주문 수와 CSV 주문 수가 맞는다.
  • USD cents를 소수점 두 자리 USD로 변환했다.
  • 환불·분쟁 건의 원주문과 귀속월을 연결했다.
  • reverse invoice별 payout과 은행 입금이 설명된다.
  • 보류·미지급 잔액이 다음 달 기초로 이월된다.
  • 열린 예외 큐의 원인·담당자·차액·재검토일이 승인됐다.

공식 출처

  • Exporting orders
  • Order object
  • Refunds and chargebacks
  • Getting paid
  • Currencies

관련 문서

정산·월마감

Paddle 지급 보고서와 Lemon Squeezy 주문 CSV·reverse invoice를 각각 월마감 원장에 연결한다.

공식 자료 검증 리포트

Paddle와 Lemon Squeezy의 공식 문서 확인 결과, 수수료·결제수단·통화·웹훅·정산에서 재검증할 항목을 공급자별로 기록한다.

결제 UX 설계

SaaS 유료 플랜 설계 · 가격 페이지 베스트 프랙티스, 인디해커 친화 결제 플랫폼, 구독 관리 셀프서브

정산·재무 마감

Android 앱 엔터프라이즈 운영 · estimated sales, earnings, payout reports를 월마감 기준으로 맞추는 방법

정산·재무 마감

iOS 앱 엔터프라이즈 운영 · Sales and Trends, Payments and Financial Reports를 월마감 기준으로 맞추는 방법

On this page

주제별 비교Paddle 상세파일 세트표준 거래 원장 컬럼payout 대사 컬럼회계 전표 예시월마감 SQL 체크exception queue운영 원칙참고 자료Lemon Squeezy 상세입력 파일 세트표준 거래 원장지급·은행 연결표예외 큐와 재처리전표 검토 예시월마감 체크공식 출처