Skip to main content
결제가 실패하면 Dodo Payments는 표준화된 error_code와 사람이 읽을 수 있는 error_message를 제공합니다. 이 가이드에서는 이러한 필드를 확인하고, 재시도 여부를 결정하며, 결제를 안전하게 복구하는 방법을 설명합니다.

Dodo Payments이 실패를 보고하는 방식

실패한 모든 결제에는 결제 객체에 다음 필드가 포함됩니다:
error_code 및 error_message는 결제가 실패할 때까지 null입니다. 항상 먼저 status를 확인하세요.
error_message는 판매자용 정보이며 사기와 관련된 원인을 드러낼 수 있습니다. 고객에게 절대 표시하지 마세요. 대신 error_code를 고객에게 안전한 문구로 매핑하세요(Surface Errors to Customers Safely 참조).

payment.failed Webhook

payment.failed webhook은 실패를 감지하는 가장 신뢰할 수 있는 방법입니다. 이벤트는 전체 결제 객체를 data로 감쌉니다:
payment.failed payload
최소한의 handler는 error_code를 확인하고 해당 값에 따라 라우팅합니다:
처리하기 전에 항상 webhook signature를 확인하세요. signature verification과 idempotency를 포함한 전체 설정 방법은 Webhooks guide를 참조하세요.

재시도 여부 결정: Soft Declines와 Hard Declines

error_code는 동일한 payment method로 재시도할 가치가 있는지 알려줍니다. 거절 유형과 권장 조치의 전체 목록은 Transaction Failures를 참조하세요.

Checkout과 Renewal에서의 실패 처리

복구 방법은 고객이 현재 결제 과정에 참여하고 있는지에 따라 달라집니다.
고객이 현재 checkout을 진행 중입니다. 명확한 메시지를 표시하고 다시 시도하거나 다른 카드를 사용할 수 있도록 하세요.
  • requires_payment_method — 고객이 결제 수단을 제공하지 않았습니다. 일반적으로 이는 거절이 아니라 checkout 이탈입니다. 결제를 완료할 수 있도록 고객을 다시 유도하세요(Abandoned Cart Recovery 참조).
  • requires_customer_action — 추가 인증(예: 3DS)이 필요합니다. 고객이 인증을 완료하도록 안내하세요. 3D Secure를 참조하세요.

실패한 결제 재시도

구독: Subscription Payment Retries를 활성화하면 Soft decline을 자동으로 복구할 수 있습니다. 일정을 기다리지 않고 즉시 재시도하려면 dashboard 또는 API에서 Manual Payment Retry를 사용하세요. Update Payment Method API를 통해 고객이 결제 수단을 업데이트하도록 하여 복구를 트리거할 수도 있으며, 이 경우 미납 금액이 청구됩니다. 일회성 결제: 고객이 다른 결제 수단으로 다시 시도할 수 있도록 checkout 또는 payment_link를 다시 전송하세요. 일회성 결제에는 자동 재시도가 없습니다.
동일한 카드로 Hard decline을 재시도하지 마세요. 카드 네트워크는 반복되는 거절을 악의적인 행위로 표시하므로 authorization rate에 악영향을 줍니다.

고객에게 오류를 안전하게 표시하기

고객에게 친절한 메시지를 표시하고, 원시 error_code 또는 판매자용 error_message는 절대 표시하지 마세요.
Dodo Payments가 관리하는 화면(checkout, Customer Portal, dunning 이메일)에서는 사기와 관련된 거절에 대한 일반 메시지로의 fallback을 포함하여 이 매핑이 이미 처리되어 있습니다. 자체 제품에서 실패를 표시하는 경우에만 아래 매핑을 사용하면 됩니다.
Customer-facing messaging
STOLEN_CARD, LOST_CARD, PICKUP_CARD 또는 FRAUDULENT의 실제 원인을 절대 공개하지 마세요. 이를 표시하면 사기 행위자에게 단서를 제공할 수 있습니다. 일반적인 거절 메시지를 표시하고 구체적인 error_code는 내부적으로만 기록하세요.

관련 문서

Transaction Failures

모든 거절 코드, 해당 유형 및 권장 조치입니다.

Error Codes

카드 거절이 아닌 API 및 비즈니스 로직 오류입니다.

Subscription Payment Retries

구독 갱신에서 Soft decline을 자동으로 복구합니다.

Subscription Dunning

Hard decline을 복구하는 이메일 시퀀스입니다.

Payment Webhooks

결제 이벤트의 전체 payload 스키마입니다.

Testing Failures

거절 및 갱신 실패를 시뮬레이션하는 테스트 카드입니다.
마지막 수정일 2026년 9월 26일