2026-08-09

무료체험 종료 후 자동결제 전환, 어떻게 구현할까

"7일 무료체험 후 자동 결제"는 SaaS에서 가장 흔한 요금제 형태 중 하나입니다. 그런데 막상 직접 구현하려면 생각보다 결정할 게 많습니다. 체험 기간 동안 결제수단은 언제 등록받을지, 체험이 끝나는 순간 무슨 일이 일어나야 하는지, 사용자가 중간에 해지하면 어떻게 처리할지. 이 글은 슈퍼빌링이 trialDays 하나로 이 흐름을 어떻게 처리하는지 설명합니다.

핵심은 "첫 결제일을 미루는 것"뿐이다

무료체험은 별도의 상태 머신이 필요할 것 같지만, 실제로는 구독의 nextBillingAt(다음 결제일)을 체험 종료 시점으로 미루는 것만으로 대부분 해결됩니다. 슈퍼빌링의 구현은 이렇습니다.

const nextBillingAt =
  plan.trialDays > 0
    ? new Date(Date.now() + plan.trialDays * 24 * 60 * 60 * 1000)
    : undefined; // undefined면 DB 기본값(현재 시각)이 적용됨

await db.insert(subscriptions).values({
  tenantId,
  planId: input.planId,
  customerId: input.customerId,
  ...(nextBillingAt ? { nextBillingAt } : {}),
});

구독은 생성 시점부터 active 상태입니다. 체험 기간 동안에도 서비스 이용 권한은 정상적으로 부여되지만, 매일 도는 청구 배치가 nextBillingAt이 아직 안 지난 구독은 건드리지 않기 때문에 실제 청구는 일어나지 않습니다. 체험 종료일이 되는 순간 같은 배치가 정상적으로 첫 청구를 시도합니다. 별도의 "체험 종료 처리" 배치나 상태 전환 로직을 추가로 만들 필요가 없습니다.

결제수단 등록 시점

여기서 자주 갈리는 설계 선택이 있습니다 — 카드를 체험 시작 시점에 미리 등록받을지, 체험이 끝날 때 등록받을지입니다.

  • 체험 시작 시 등록: 전환율은 낮아지지만(카드 등록이라는 진입장벽), 체험 종료 시점에 자동으로 청구할 수 있어 전환 과정에서 사용자 액션이 필요 없습니다.
  • 체험 종료 시 등록: 가입 장벽이 낮아 체험 시작 자체는 쉽지만, 체험이 끝났을 때 결제수단이 없는 사용자를 어떻게 처리할지(자동 해지? 유예 기간?)를 별도로 설계해야 합니다.

슈퍼빌링은 빌링키(카드 등록)를 구독 생성과 별개의 단계로 두기 때문에, 어느 쪽으로 설계하든 카드 등록 시점만 사업 로직에서 결정하면 됩니다. 청구 배치는 "빌링키가 있는 구독만" 대상으로 하므로, 체험 종료 시점에 카드가 없으면 자연스럽게 청구가 실패하고 던닝 로직이 그대로 재사용됩니다 — 체험 미전환을 별도로 처리할 필요가 없다는 뜻입니다.

체험 중 해지 처리

체험 기간 중 사용자가 해지하면 그냥 cancelSubscription을 그대로 호출하면 됩니다. 아직 결제가 한 번도 일어나지 않았기 때문에 환불 로직이 필요 없고, subscription.canceled 웹훅만 정상적으로 발송됩니다. 무료체험이라는 특수성 때문에 별도 해지 API를 만들 필요가 없는 건 이 설계의 장점입니다.

직접 설계한다면

  • 체험 종료 처리를 별도 배치로 만들지 마세요. 기존 정기 청구 배치가 nextBillingAt 기준으로 도래한 구독만 처리하도록 이미 돼 있다면, 체험은 그 값을 미루는 것만으로 자연스럽게 편입됩니다.
  • 결제수단 미등록 상태에서 체험이 끝나는 케이스는 "청구 실패"로 취급하고 기존 던닝 로직을 재사용하세요. 별도 상태를 만들면 그만큼 예외 케이스가 늘어납니다.
  • 체험 중 해지는 결제가 없었으므로 일반 해지 로직과 동일하게 처리해도 무방합니다.

정리

  • 무료체험은 별도 상태 머신이 아니라 "첫 결제일을 미루는 것"으로 대부분 해결됩니다.
  • 체험 종료 시 결제수단이 없다면 별도 처리 없이 기존 청구 실패·던닝 흐름에 자연스럽게 편입시키세요.
  • 슈퍼빌링은 요금제에 trialDays만 설정하면 이 흐름 전체가 자동으로 동작합니다. Quickstart 문서에서 확인할 수 있습니다.

3분만에 구독결제 연동해보기

요금제 설계부터 웹훅 등록까지, 슈퍼빌링으로 바로 시작할 수 있습니다.

무료로 시작하기

이메일만 입력하면 바로 가입·로그인이 끝나요