Paddle
개요
판매가 일어날 때마다 영수증과 세금을 대신 처리해주는 가게를 떠올려 보세요 — 여러분은 물건만 대면 됩니다. 그게 바로 "MoR (, 등록 판매자)"입니다. 즉, 법적으로 여러분의 고객에게 판매하는 주체라서 서류 작업을 대신 챙겨주는 회사죠. Paddle이 바로 그런 역할을 하며, 소프트웨어 및 SaaS (Software as a Service, 매달 빌려 쓰는 소프트웨어) 비즈니스를 겨냥합니다. 다른 MoR 서비스처럼 Paddle이 법적으로 판매 주체입니다. 결제를 처리한 뒤, 신고와 납부를 포함해 전 세계의 판매세, VAT (Value Added Tax, 부가가치세 — 여러 나라에서 쓰는 판매세), GST (Goods and Services Tax, 호주·인도 같은 나라에서 쓰는 같은 종류의 판매세) 컴플라이언스를 여러분을 대신해 처리합니다. 결제 위에 구독 청구, 인보이스 발행, 매출 도구를 더해 제공하므로, 소프트웨어 회사를 위한 완전한 "결제 + 세무 + 청구" 레이어로 자리매김하고 있습니다.
강점
- MoR: 전 세계 세무 등록, 징수, 납부는 여러분이 아니라 Paddle의 일입니다.
- 강력한 구독 및 반복 청구 기능 — 요금제, 체험판, 일할 계산(proration), 미납 관리(dunning).
- 소비자 일회성 구매뿐 아니라 인보이스 발행과 B2B (business-to-business, 다른 기업에 판매) 판매 흐름도 처리.
- 국제적으로 확장할 때 컴플라이언스와 차지백 부담을 줄여줌.
트레이드오프
- 흡수하는 세무 및 컴플라이언스 업무를 반영해 수수료가 순수 결제 처리업체보다 높습니다.
- Stripe 위에 직접 구축하는 것보다 정확한 체크아웃 흐름에 대한 저수준 제어가 적습니다.
- Paddle이 판매자의 책임을 떠안기 때문에 승인과 온보딩이 더 엄격할 수 있습니다.
- 소프트웨어/SaaS에 가장 적합하며, 실물 재화나 마켓플레이스를 위해 설계되지 않았습니다.
가장 적합한 경우
청구와 전 세계 세무 컴플라이언스를 한꺼번에 처리해서 팀이 수많은 국가의 VAT 신고 대신 제품에 집중하고 싶은 SaaS 및 소프트웨어 회사 — 특히 국제적으로 판매하는 회사.
바이브 코딩 적합성
Paddle은 구독 제품을 만들면서 세무 컴플라이언스의 토끼굴을 완전히 피하고 싶을 때 바이브 코딩에 잘 맞습니다. 에이전트를 Paddle의 호스팅형 또는 오버레이 체크아웃에 연결하고, 구독을 활성화하는 과 취소 및 갱신을 처리하는 webhook을 구현하게 하세요. webhook (웹훅)은 무슨 일이 생길 때(새 구독, 취소 등) Paddle이 여러분 앱에 자동으로 보내는 메시지입니다. 덕분에 여러분의 앱이 계속 확인하러 가는 대신 알아서 반응하게 됩니다. Paddle이 MoR이므로 에이전트에게 어떤 세무 로직도 구축하지 말라고 알려주세요 — 에이전트의 역할은 처리(fulfillment), 그리고 앱의 구독 상태를 Paddle의 이벤트와 동기화 상태로 유지하는 것입니다.
// Paddle 구독 webhook 처리 (서버 측)
export async function handlePaddleEvent(event) {
switch (event.event_type) {
case "subscription.activated":
await grantAccess(event.data.customer_id);
break;
case "subscription.canceled":
await revokeAccess(event.data.customer_id);
break;
}
}