Payment Retries는 실패한 subscription 갱신 결제를 back-off 일정에 따라 자동으로 다시 청구합니다. 재시도가 성공하면 고객의 조치나 통합 작업 없이 subscription이
active(으)로 돌아갑니다.Payment Retries란?
subscription renewal 결제가 실패하면 subscription은 INLINE_CODE_PLACEHOLDER_833e011b2e3da7_END(으)로 이동하며, 유예 기간을 설정한 경우에는 INLINE_CODE_PLACEHOLDER_8461791c037250b_END(으)로 이동합니다. Payment Retries가 켜져 있으면 Dodo Payments는 청구가 성공하거나 recovery window가 종료될 때까지 일정에 따라 고객의 저장된 payment method로 다시 청구합니다. 재시도는 카드의 일시적인 보류, 고객이 나중에 충전할 자금 부족, 일시적인 network error와 같은 일시적 실패로 손실된 수익을 회수합니다. 고객에게는 이메일이 발송되지 않으며 아무것도 변경할 필요가 없습니다.Payment Retries는 subscription 갱신 결제에만 적용됩니다. subscription의 첫 번째 결제(mandate 설정), 일회성 결제, plan 변경 요금 및 on-demand 요금은 재시도되지 않습니다.
Payment Retries 작동 방식
1
Renewal fails
subscription renewal 결제가 실패하면 subscription은 INLINE_CODE_PLACEHOLDER_833e011b2e3da7_END(으)로 이동하며, grace period 중에는 INLINE_CODE_PLACEHOLDER_8461791c037250b_END(으)로 이동합니다.
2
Retryability check
Dodo Payments는 실패의 error code를 확인합니다. 자금 부족, 일반적인 decline, processing 또는 network error와 같은 Soft decline은 재시도할 수 있습니다. Hard decline은 다시 시도해도 결과가 바뀌지 않으므로 retry chain을 종료합니다. error code가 없는 실패는 hard decline으로 처리됩니다.
3
Scheduled retry
decline을 재시도할 수 있고 다음 시도가 recovery window 안에 들어오면 Dodo Payments가 이를 예약합니다. 각 재시도는 고객의 저장된 payment method에 대한 off-session 청구이며, 각 지연 시간은 이전 실패 시점부터 계산됩니다.
4
Recovery
첫 번째 재시도가 성공하면 subscription은
active(으)로 돌아가고, 다음 billing date는 성공한 재시도 후 한 billing period 뒤로 이동합니다. 어떤 재시도도 성공하기 전에 window가 닫히면 재시도가 중단되고 subscription은 INLINE_CODE_PLACEHOLDER_833e011b2e3da7_END와 같은 현재 상태를 유지합니다.Payment Retries 구성
대시보드의 Settings → Recovery에서 Payment Retries를 켜고 구성합니다.
Payment Retries settings under Settings → Recovery
recovery window는 실패한 renewal에 대한 invoice가 생성될 때 시작됩니다. Dodo Payments는 해당 시도까지의 모든 지연 시간 합계가 window 안에 들어오고 window가 아직 열려 있는 경우에만 시도를 예약합니다.
Retry Schedule
재시도 간격은 점진적으로 늘어납니다. 각 시도가 recovery window 안에 들어오는 한 Dodo Payments는 최대 8회 시도합니다:Subscription Status Transitions
재시도는 subscription을 다음 상태 사이에서 이동시킵니다:subscription이 취소되면 retry chain이 종료되고 추가 시도가 이루어지지 않습니다. 그 외의 모든 상태(INLINE_CODE_PLACEHOLDER_833e011b2e3da7_END, INLINE_CODE_PLACEHOLDER_8461791c037250b_END,
expired, pending, failed)는 계속 재시도됩니다. 열려 있는 renewal invoice는 고객이 이미 사용한 기간에 대한 채무이기 때문입니다. 고객이 payment method를 업데이트한 후와 같이 다른 방법으로 invoice를 결제하거나, 고객을 blocklist에 추가하면 재시도도 중단됩니다.Subscription Webhook Payloads
subscription lifecycle 이벤트의 전체 webhook payload schema를 확인하세요.
Retryable vs. Non-Retryable Failures
가장 최근 실패의 error code에 따라 chain을 계속할지 결정됩니다:Hard decline을 재시도해도 결과가 바뀌지 않으므로 hard decline이 발생하는 즉시 chain이 종료됩니다. 이러한 경우 고객에게 새 payment method를 요청하려면 Payment Retries를 Subscription Dunning과 함께 사용하세요. 각 code의 유형은 Transaction Failures에서 확인하세요.
Retrying on Demand
다음 예약된 시도까지 기다릴 필요가 없습니다. subscription이 INLINE_CODE_PLACEHOLDER_833e011b2e3da7_END인 동안 대시보드의 실패한 payment detail page에서 재시도를 보내거나POST /payments/{payment_id}/retry(으)로 보낼 수 있습니다. 수동 재시도는 일정과 독립적으로 실행됩니다. 자동 시도를 차감하거나 이동하지 않으며 Payment Retries가 꺼져 있어도 작동합니다. Manual Payment Retry를 참조하세요.
Payment Retries vs. Dunning
Payment Retries와 Subscription Dunning은 서로 다른 유형의 실패를 복구합니다:
가장 폭넓게 적용하려면 두 기능을 모두 켜세요. 자동 재시도는 일시적인 실패를 처리하고, dunning은 payment method를 교체해야 하는 고객을 다시 유도합니다.
Related
Manual Payment Retry
다음 예약된 시도를 기다리지 않고 즉시 재시도를 보냅니다.
Subscription Dunning
고객에게 payment method를 업데이트하도록 요청하는 이메일 sequence입니다.
Abandoned Cart Recovery
recovery email을 통해 abandoned 또는 실패한 checkout을 복구합니다.
Subscriptions
recovery flow가 이동하는 subscription 상태입니다.
Subscription Webhooks
subscription.on_hold 및 subscription.active 이벤트에 반응합니다.