아, 정말 다들 정신 바짝 차려야 할 일렉트릭 쇼크 같은 아침이었어. 지난주에 대형 프로젝트 납품을 마감하고 홀가분하게 출근해서 커피 한 잔 딱 마시려고 앉았는데, 재무팀 대리님이 사색이 돼서 내 자리로 뛰어오는 거야. “팀장님, 큰일 났습니다! 저번 달에 끝낸 프로젝트 바이어 쪽에서 결제일이 지났는데 갑자기 인보이스를 다시 발행해 달라고 하더니, 결제가 계속 튕긴대요!” 순간 등골이 오싹해지더라고. 계약금도 아니고 잔금이라 금액 단위가 꽤 컸거든. 바이어 측 메일을 열어보니까 인보이스 내역에 오탈자가 있다느니, 사내 회계 시스템에 등록하려면 품목명을 바꿔야 한다니 하면서 결제를 의도적으로 늦추는 뉘앙스를 풍기고 있었어.
당장 Stripe 대시보드를 열어서 해당 결제 건을 조회해 봤지. 화면을 보자마자 한숨이 절로 나왔어. 빨간색 경고등과 함께 떡하니 박혀 있는 그 유명한 에러 코드 do_not_honor. 글로벌 결제 실무를 해본 사람들은 알겠지만, 이 녀석이 뜨면 머리가 지끈지끈 아파와. 바이어는 인보이스 핑계를 대고 있지만, 실제로는 카드사나 은행에서 승인을 거부한 거라 그냥 인보이스만 덜렁 고쳐서 재발행해 준다고 해결될 문제가 아니었거든. 잘못 대응했다가는 현금 흐름에 구멍이 뚫리고, 자칫하면 대금 회수가 몇 달씩 밀릴 수 있는 절체절명의 순간이었지.
1. 당시 상황과 겪었던 혼란
처음 이 문제를 마주했을 때 우리 팀이 가장 크게 착각했던 건 바이어의 말에 휘둘렸다는 점이야. 바이어가 “인보이스에 기재된 프로젝트 품목 코드가 우리 사내 ERP 시스템과 안 맞으니 이걸 ‘컨설팅 서비스’로 바꿔서 인보이스를 새로 끊어주면 바로 결제하겠다”라고 했거든. 우리 팀은 아무 의심 없이 Stripe 인보이스 생성 메뉴로 들어가서 기존 걸 Void(무효화) 시키고 품목명을 수정해서 새 인보이스를 발급해 줬지.
그런데 바이어가 새 인보이스로 결제를 시도했는데 또 실패했다는 연락이 온 거야. 이번에는 Stripe 로그에 do_not_honor가 찍혀 있었어. 그때부터 사무실 분위기가 아주 살벌해졌지. 나는 급하게 Stripe 공식 문서와 커뮤니티를 뒤지기 시작했어. do_not_honor는 카드 발행사가 이유를 명확하게 밝히지 않고 거래를 거절할 때 뱉어내는 가장 대표적인 제네릭(Generic) 에러 코드거든. 즉, 바이어가 핑계 대던 인보이스 문구 문제와는 하등 상관이 없었던 거야.
바이어는 인보이스 탓을 하며 시간 끌기를 하고 있었고, 우리 내부 재무팀은 미수금 때문에 초조해하고, 나는 그 사이에 끼어서 진땀을 흘렸지. 알고 보니 바이어 측 담당자가 자기 회사 법인카드의 해외 결제 한도를 초과했거나, 거액의 해외 송금/결제 건이라 사내 보안팀에서 일시적으로 카드를 차단해 둔 상태였던 거야. 이걸 몰수하고 인보이스 디자인이나 고치면서 며칠을 허비했으니, 실무 경험이 얼마나 중요한지 뼈저리게 느낀 순간이었지.

2. 문제의 근본 원인 분석
도대체 왜 이런 일이 벌어진 걸까? Stripe 대시보드와 바이어의 행동 패턴, 그리고 글로벌 카드사들의 정책을 뜯어보니 원인은 크게 세 가지로 압축되더라고. 이걸 정확히 알아야 바이어에게 당당하게 대응할 수 있어.
### 원인 첫 번째: 카드 발행사의 무단 승인 거부 (Issuer Decline)
do_not_honor의 가장 원초적인 원인이야. 카드사 시스템이 이 거래를 위험하다고 판단했거나, 혹은 해당 법인카드의 일일/월간 한도 초과, 해외 가맹점 거래 제한 등의 이유로 아예 승인을 내주지 않은 거지. 카드사는 보안상의 이유로 정확한 거절 사유를 가맹점인 우리에게 알려주지 않아. 그래서 바이어는 “자기네 카드는 문제없는데 너희 시스템이나 인보이스가 이상해서 거절된다”라고 우리를 탓하기 십상이야.
### 원인 두 번째: 바이어의 의도적인 대금 지급 지연 작전
글로벌 비즈니스를 하다 보면 가끔 겪는 일인데, 예산 집행 시기가 안 맞았거나 자금 유동성이 부족한 바이어들이 일부러 인보이스 트집을 잡는 경우가 있어. “인보이스 날짜가 틀렸다”, “품목 코드를 바꿔달라”며 프로세스를 고의로 리셋시키는 거지. 이번 우리 상황이 딱 이거였어. 인보이스를 빌미로 결제일을 며칠 더 뒤로 미루려는 속셈이었던 거야.
### 원인 세 번째: Stripe 계정 설정 및 세무 정보(Tax ID) 불일치
가끔 바이어의 회계 감사 시스템이 엄격해서, Stripe에서 발행한 인보이스에 우리 회사의 정확한 사업자 등록 번호나 주소가 없거나 바이어의 세무 정보가 누락되면 사내 시스템에 비용 처리로 등록을 못 하는 경우가 실제로 있긴 해. 이걸 바이어가 오인하여 결제 자체를 거부하거나, 혹은 결제 후 인보이스를 매칭하지 못해 혼선이 생기는 경우지.
3. 즉시 해결한 단계별 조치 매뉴얼
자, 원인을 파악했으니 이제 실전에 적용해서 이 난관을 헤쳐나간 우리 팀의 단계별 조치 매뉴얼을 공개할게. 다들 스크린샷 찍어두고 급할 때 써먹어.
### Step 1: Stripe 대시보드에서 결제 실패 로그 및 리스크 점검하기
먼저 Stripe 대시보드에 접속해서 좌측 메뉴의 Payments(결제)로 들어가. 문제가 된 트랜잭션을 클릭하고 하단의 Logs(로그)와 Timeline(타임라인)을 꼼꼼히 살펴봐야 해.
여기서 do_not_honor 에러와 함께 radar 점수가 어떻게 나왔는지 확인해. 만약 래더(Radar) 시스템이 이 거래를 고위험으로 감지해서 막은 거라면 수동 승인이 필요할 수 있어. 하지만 대부분은 카드사 단에서 막힌 거니까 다음 단계로 넘어가야 해.
### Step 2: 바이어에게 인보이스 수정과 카드 변경을 동시에 요구하기
바이어가 인보이스 재발행을 요구했지? 그거 일단 들어주되, 절대 인보이스만 덜렁 보내고 끝내면 안 돼. Stripe 대시보드의 Invoices(인보이스) 메뉴로 가서 해당 인보이스를 Void 처리하고, 바이어가 요구한 품목명과 세무 정보를 반영해서 새 인보이스를 발급해 줘.
동시에 바이어 재무 담당자에게 강력하지만 정중한 톤으로 메일을 날려야 해. “요청하신 대로 인보이스는 수정해서 재발행해 드렸습니다. 다만, 직전 결제 시 발생한 do_not_honor 에러는 저희 시스템 문제가 아니라 고객사 카드 발행사의 승인 거부(한도 초과 또는 해외 거래 제한)로 확인되었습니다. 따라서 인보이스 재발행과 별개로, 카드 한도를 확인하시거나 **다른 결제 수단(예: ACH 송금 또는 법인계좌 직접 이체)**으로 즉시 결제를 진행해 주셔야 프로젝트 최종 마감이 완료됩니다.” 이렇게 선을 확실히 그어야 해.
### Step 3: 대체 결제 수단(Payment Method) 우회로 열어주기
법인카드로 계속 do_not_honor가 뜨면 답이 없어. 바이어가 카드를 다른 걸로 바꾸든가, 아니면 결제 방식을 바꿔야 해. 만약 미국이나 유럽 쪽 바이어라면 Stripe 대시보드에서 Payment Links(결제 링크)나 인보이스 설정을 수정해서 ACH bank transfer(계좌 이체)나 SEPA debit 같은 현지 은행 송금 방식을 추가해 줘.
인보이스 하단에 카드 결제 버튼뿐만 아니라 은행 송금을 위한 가상 계좌나 와이어(Wire) 송금 안내 문구를 삽입해서 바이어가 빠져나갈 구멍을 없애버리는 거지. 실제로 우리는 이 방법으로 카드 결제 대신 와이어 송금으로 방향을 틀어서 당일 오후에 바로 대금을 입금받았어.
4. 재발 방지를 위한 실무 체크리스트
이번 사고를 겪고 나서 우리 팀은 글로벌 결제 프로세스 가이드를 완전히 갈아엎었어. 앞으로 이런 지옥 같은 경험을 다시 안 하려면 아래 체크리스트를 매번 프로젝트 킥오프 때마다 확인해야 해.
- 결제 수단 다변화 사전 협의: 계약 체결 단계에서 법인카드 단일 수단뿐만 아니라 해외 계좌 송금(Wire Transfer)이나 ACH 등 대체 수단을 미리 계약서에 명시하기.
- 인보이스 세무 정보 사전 검증: 프로젝트 시작 전 바이어의 정확한 빌링 어드레스(Billing Address)와 사내 회계 시스템에서 요구하는 필수 기재 사항을 미리 파악하여 Stripe 계정 설정에 반영하기.
- 카드 결제 한도 사전 경고: 대금 규모가 큰 프로젝트의 경우, 카드 결제 시 발생할 수 있는 한도 초과나
do_not_honor에러 가능성을 사전에 안내하고 가급적 은행 송금을 유도하기. - Stripe 래더(Radar) 규칙 모니터링: 대형 결제가 들어오기 전, 우리 계정의 리스크 관리 룰이 과도하게 엄격하게 설정되어 정상적인 바이어의 결제를 막고 있는지 주기적으로 점검하기.
5. 자주 묻는 질문 FAQ
Q1. 바이어는 카드가 정상이라고 우기는데 계속 do_not_honor가 뜹니다. 어떻게 설득해야 하나요?
A1. 카드 발행사는 보안상 구체적인 거절 사유를 가맹점인 우리에게 알려주지 않습니다. 바이어에게 “Stripe 시스템이나 인보이스 문구의 문제가 아니라, 카드 발행사(Issuer)의 보안 정책이나 한도 문제로 인해 승인이 거부된 것”임을 명확히 설명해 주세요. 바이어가 직접 본인의 카드사에 전화해서 해외 가맹점 거액 결제 차단을 해제하거나 한도를 늘려달라고 요청해야만 해결됩니다.
Q2. 인보이스를 수정해서 재발행해 주면 기존 결제 링크는 어떻게 되나요?
A2. Stripe에서 기존 인보이스를 수정하려면 반드시 기존 인보이스를 Void(무효화) 시킨 후 새로운 인보이스를 생성해야 합니다. 기존 인보이스에 연결된 결제 링크는 무효화와 동시에 작동을 멈추므로, 새로 발행된 인보이스와 함께 생성된 새로운 결제 링크를 바이어에게 전달해야 혼선이 없습니다.
Q3. 카드 결제가 자꾸 막힐 때 가장 빠르게 대금을 회수할 수 있는 현실적인 대안은 무엇인가요? A3. 카드 승인 거부(do_not_honor)가 반복되면 해당 카드로 결제하기는 거의 불가능합니다. 이럴 때는 시간을 지체하지 말고 Stripe 인보이스 설정에서 수동 와이어 송금(Manual Bank Transfer)이나 ACH 결제 옵션을 열어주거나, 우리 회사의 글로벌 비즈니스 계좌(예: Wise Business 등)로 직접 해외 송금을 받도록 안내하는 것이 가장 빠르고 확실한 매출 방어 방법입니다.