~/VibeHandbook
$39

결제

paddle.com

Paddle

개요

Paddle은 소프트웨어 및 SaaS 비즈니스를 겨냥한 MoR(merchant of record) 플랫폼입니다. 다른 MoR 서비스처럼 Paddle이 법적으로 판매 주체입니다. 결제를 처리한 뒤, 신고와 납부를 포함해 전 세계의 판매세, VAT, GST 컴플라이언스를 여러분을 대신해 처리합니다. 결제 위에 구독 청구, 인보이스 발행, 매출 도구를 더해 제공하므로, 소프트웨어 회사를 위한 완전한 "결제 + 세무 + 청구" 레이어로 자리매김하고 있습니다.

강점

  • MoR: 전 세계 세무 등록, 징수, 납부는 여러분이 아니라 Paddle의 일입니다.
  • 강력한 구독 및 반복 청구 기능 — 요금제, 체험판, 일할 계산(proration), 미납 관리(dunning).
  • 소비자 일회성 구매뿐 아니라 인보이스 발행과 B2B 판매 흐름도 처리.
  • 국제적으로 확장할 때 컴플라이언스와 차지백 부담을 줄여줌.

트레이드오프

  • 흡수하는 세무 및 컴플라이언스 업무를 반영해 수수료가 순수 결제 처리업체보다 높습니다.
  • Stripe 위에 직접 구축하는 것보다 정확한 체크아웃 흐름에 대한 저수준 제어가 적습니다.
  • Paddle이 판매자의 책임을 떠안기 때문에 승인과 온보딩이 더 엄격할 수 있습니다.
  • 소프트웨어/SaaS에 가장 적합하며, 실물 재화나 마켓플레이스를 위해 설계되지 않았습니다.

가장 적합한 경우

청구와 전 세계 세무 컴플라이언스를 한꺼번에 처리해서 팀이 수많은 국가의 VAT 신고 대신 제품에 집중하고 싶은 SaaS 및 소프트웨어 회사 — 특히 국제적으로 판매하는 회사.

바이브 코딩 적합성

Paddle은 구독 제품을 만들면서 세무 컴플라이언스의 토끼굴을 완전히 피하고 싶을 때 바이브 코딩에 잘 맞습니다. 에이전트를 Paddle의 호스팅형 또는 오버레이 체크아웃에 연결하고, 구독을 활성화하는 webhook과 취소 및 갱신을 처리하는 webhook을 구현하게 하세요. 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;
  }
}