Payment Retries는 점진적인 back-off 일정에 따라 실패한 구독 갱신 결제를 자동으로 다시 시도합니다. 재시도가 성공하면 고객의 조치나 integration 작업 없이 구독이 자동으로 재활성화됩니다.
Payment Retries란?
구독 갱신 결제가 실패하면 구독은 보류 중 상태가 됩니다. Payment Retries를 활성화하면 Dodo Payments 고객의 기존 결제 수단으로 스마트한 일정에 따라 자동으로 다시 청구하며, 결제가 성공하거나 복구 기간이 종료될 때까지 계속 시도합니다. 만료된 카드 보류, 충전된 잔액이 부족한 경우, 일시적인 네트워크 오류 등 일시적 실패로 인해 손실된 수익을 고객에게 이메일을 보내거나 무언가를 업데이트하도록 요청하지 않고 회수합니다.Payment Retries는 구독 갱신 결제에만 적용됩니다. 최초 결제(mandate 설정), 일회성 결제, 플랜 변경 요금 및 온디맨드 요금은 이 기능으로 재시도되지 않습니다.
Payment Retries 작동 방식
1
Renewal fails
구독 갱신 결제가 실패하고 구독이
on_hold 상태로 전환됩니다.2
Retryability check
실패의 error code를 확인합니다. Soft decline(잔액 부족, 일반적인 decline, 처리 또는 네트워크 오류 등)은 재시도할 수 있습니다. Hard decline은 재시도해도 결과가 달라지지 않으므로 retry chain이 즉시 종료됩니다.
3
Scheduled retry
Decline이 재시도 가능하고 recovery window가 허용하는 경우 다음 시도가 예약됩니다. 재시도는 점진적인 back-off 일정에 따라 고객의 기존 결제 수단을 대상으로 off-session 방식으로 실행됩니다.
4
Recovery
첫 번째 재시도가 성공하면 구독은
active로 돌아가고 다음 결제일은 정상적으로 갱신됩니다. 재시도가 한 번도 성공하지 않은 채 window가 종료되면 재시도가 중지되고 구독은 보류 중 상태로 유지됩니다.Payment Retries 구성
대시보드의 Settings → Recovery에서 Payment Retries를 활성화하고 구성하세요.
Payment Retries settings under Settings → Recovery
recovery window는 실패한 갱신 invoice가 생성된 시점을 기준으로 계산됩니다. 누적된 back-off 지연이 window 내에 포함되는 경우에만 재시도가 예약됩니다.
재시도 일정
재시도 간격은 점진적으로 늘어납니다. 각 시도가 recovery window 내에 포함되는 경우 최대 8회 시도가 실행됩니다:구독 상태 전환
재시도가 아직 예약된 상태에서 구독이 취소되면 retry chain이 즉시 종료되고 추가 시도는 실행되지 않습니다. 그 외의 비활성 상태(
on_hold, expired, pending, failed)는 계속 재시도됩니다. 해당 상태의 미결제 갱신 invoice가 고객이 이미 사용한 기간에 대한 부채를 나타내기 때문입니다.Subscription Webhook Payloads
구독 lifecycle event에 대한 전체 webhook payload schema를 확인하세요.
재시도 가능 및 재시도 불가 실패
Hard decline을 재시도해도 결과가 달라지지 않으므로 hard decline이 확인되는 즉시 retry chain이 종료됩니다. 이러한 경우 고객에게 결제 수단을 업데이트하도록 요청하려면 Payment Retries를 Subscription Dunning과 함께 사용하세요.
Payment Retries와 Dunning 비교
Payment Retries와 Subscription Dunning은 서로 보완적인 복구 도구입니다:
두 기능을 모두 활성화하면 가장 폭넓은 복구 범위를 확보할 수 있습니다. 자동 재시도는 일시적인 실패를 처리하고, dunning은 결제 수단을 실제로 업데이트해야 하는 고객을 다시 유도합니다.
관련 항목
Subscription Dunning
고객에게 결제 수단을 업데이트하도록 요청하는 이메일 시퀀스입니다.
Abandoned Cart Recovery
대상 이메일을 통해 완료되지 않았거나 실패한 일회성 checkout을 복구합니다.
Subscriptions
복구 흐름에 관련된 구독 상태를 이해합니다.
Subscription Webhooks
subscription.on_hold 및 subscription.active event에 대응합니다.