결제 토큰 이전 체크리스트 2026, vault export·고객 매핑·재인증을 확인하는 법

결제 토큰 이전 체크리스트 2026, vault export·고객 매핑·재인증을 확인하는 법


결제 공급사나 vault를 바꿀 때 가장 위험한 가정은 “저장된 카드 token을 export해서 새 시스템에 넣으면 끝난다”는 생각입니다. 기존 시스템의 customer ID와 token ID, 새 시스템의 customer ID와 payment method ID가 서로 다른 데다 카드, 계좌, wallet, mandate는 옮길 수 있는 범위와 재사용 조건도 다릅니다.

토큰 이전은 단순 파일 이동이 아니라 결제수단 분류, source·destination 증거 수집, old→new ID mapping, 제외군 처리, 재인증 fallback, 소규모 cohort 검증으로 나눠야 합니다. 이전 완료율만 보면 실제 첫 갱신에서 실패가 드러날 수 있으므로 “import 성공”과 “결제 재사용 성공”도 구분해야 합니다.

이 글은 2026년 7월 31일 확인한 Stripe 공식 문서를 중심으로 정리한 운영 체크리스트입니다. 특정 공급사의 실제 export·import 가능 여부, 일정, 비용과 지원 범위는 계정, 지역, 결제수단, 원본 vault와 계약에 따라 달라질 수 있습니다.

이 글은 제품 이전 계획을 위한 일반적인 운영 정보이며 법률·회계·세무 또는 PCI DSS 준수 조언이 아닙니다. 특정 이전 방식을 선택했다고 규제·보안 책임이 자동으로 충족되는 것도 아닙니다. 민감 결제정보를 애플리케이션 로그나 일반 스프레드시트로 내려받지 말고, source와 destination이 제공하는 통제된 이전 절차와 담당자 검토를 이용해야 합니다.

먼저 결론: token이 아니라 고객의 다음 결제를 옮깁니다

이전의 최종 목표는 token 개수를 맞추는 것이 아니라 고객의 다음 정상 결제가 새 경로에서 실행되도록 만드는 것입니다. 따라서 다음 네 가지 완료 기준을 따로 둡니다.

완료 기준 확인할 증거 완료로 오해하기 쉬운 상태
export 완료 source가 전달한 레코드 수, 유형별 수량, 제외·오류 목록, 전달 식별자 파일이 생성됐다는 알림만 확인
import 완료 destination의 수신 수량, 생성된 새 ID, 거절·누락 사유 HTTP 성공 또는 job 완료만 확인
mapping 완료 old customer/token과 new customer/payment method의 1:1 또는 예외 관계 총 레코드 수만 같음
재사용 검증 소규모 cohort의 실제 결제·갱신·환불과 webhook·대사 결과 dashboard에 결제수단이 표시됨

계약 종료 날짜보다 먼저 “첫 갱신 성공을 검증할 수 있는 기간”을 확보합니다. 수천 건을 한 번에 옮긴 뒤 문제가 발견되면 고객 재인증, 갱신 연기, support 문의와 매출 영향이 동시에 커집니다.

전체 구독 청구 시스템의 customer·subscription·invoice·usage까지 함께 옮기는 작업은 B2B SaaS 구독 청구 플랫폼 이전 체크리스트에서 별도로 다룹니다. 이 글은 그중에서도 vault의 결제수단과 고객 연결 관계에만 범위를 좁힙니다.

1. 먼저 token taxonomy를 만듭니다

“token”이라는 한 단어 아래 서로 다른 객체를 섞지 않습니다. 각 유형이 누가 발급한 식별자인지, 어디에서만 재사용되는지, 원본 결제정보와 어떤 관계인지 분류해야 합니다.

유형 예시 이전 전에 확인할 질문
platform·vault payment method ID billing·orchestration·vault 플랫폼이 노출하는 저장 결제수단 객체 ID underlying credential과 별개인가, platform 밖에서도 의미가 있는가
gateway·processor token PSP·gateway·processor가 발급한 카드·계좌 참조값 다른 processor 또는 merchant account에서 재사용 가능한가
destination payment method ID 새 플랫폼에서 import 뒤 생성한 결제수단 ID 어느 customer에 attach됐고 어떤 merchant account에서 쓸 수 있는가
network token 카드 네트워크가 PAN을 대신하도록 발급·관리하는 token 이전 주체, 사용 domain과 cryptogram·lifecycle 조건은 무엇인가
wallet credential Apple Pay·Google Pay 등 wallet 결제에서 전달되는 credential 일반 vault 카드처럼 export할 수 있는가, 별도 등록·이전 절차가 있는가
mandate 연계 객체 SEPA Direct Debit 등 고객 동의와 연결된 참조 동의 증거와 creditor·merchant 변경 시 재사용 가능한가
인증 상태 3DS 또는 추가 인증 결과와 관련된 상태 새 merchant·processor 경로에서 그대로 유효한가

Stripe의 결제수단별 import 문서는 카드와 wallet, 여러 bank debit·mandate의 이전 조건이 같지 않음을 보여 줍니다. 모든 객체를 “카드 token”처럼 처리하면 wallet이나 mandate가 필요한 결제수단이 조용히 누락될 수 있습니다.

platform·vault ID와 gateway·processor token은 공급사가 노출하는 참조값이고, network token은 카드 네트워크가 관리하는 PAN 대체값입니다. wallet credential도 이 중 하나와 자동으로 같은 객체가 아닙니다. 이름에 token이 붙었다는 이유만으로 공급사나 merchant account 사이의 이동성을 추정하지 않습니다.

taxonomy 표에는 최소한 다음 필드를 둡니다.

  1. source object type과 object ID
  2. 결제수단 family
  3. customer와의 연결 여부
  4. merchant account·법인·지역
  5. 통화와 사용 국가
  6. 최근 성공 결제일
  7. 다음 갱신 예정일
  8. export 가능·불가·확인 중 상태
  9. destination 예상 object type
  10. 재인증 필요 가능성

카드 번호, 계좌번호, 보안코드 같은 민감 값 자체를 taxonomy 파일에 넣지 않습니다. 운영팀이 관리하는 표에는 공급사가 제공한 비민감 식별자와 상태만 보관하고, 실제 데이터 전달은 승인된 이전 채널로 제한합니다.

2. source와 destination의 증거를 한 표에서 맞춥니다

source가 “전송 완료”라고 말하는 것과 destination이 “정상 import 완료”라고 말하는 것은 다른 사건입니다. 양쪽에서 같은 batch를 가리키는 증거를 받아야 합니다.

Source·destination evidence matrix

단계 source에서 받을 증거 destination에서 받을 증거 내부에서 보관할 결과
범위 확정 export 가능한 object·결제수단·계정 범위 import 가능한 형식·필수 필드·제외 유형 합의된 taxonomy와 제외군
스냅샷 기준 시각, 유형별 레코드 수, 최근 변경분 처리 방식 수신 예정 batch ID와 검증 규칙 source snapshot ID와 cutoff
전달 암호화·통제 채널의 전달 ID, 전송 시각 수신 확인과 checksum 또는 동등한 무결성 확인 양쪽 ticket·batch 연결표
import source-side 제외·오류 레코드 성공·실패·중복 수, 새 object 생성 결과 old→new mapping 초안
gap 수정 추가 export 또는 정정 batch 재import 결과와 최종 오류 사유 migration-gap ledger
검증 기존 시스템의 최근 결제·고객 상태 새 시스템의 attach·결제·webhook 결과 cohort별 승인·실패·rollback 기록

Stripe 데이터 마이그레이션 개요는 migration 방향과 결제 데이터 이전 절차를 확인하는 출발점입니다. 실제 작업 전에 지원 요청, 예상 일정, 원본 processor와 계정 구조, 데이터 유형을 함께 확인해야 합니다.

Stripe 결제 데이터 매핑 문서는 이전 데이터가 Stripe 객체와 어떻게 연결되는지 검토할 때 참고할 공식 자료입니다. 문서의 필드 예시를 그대로 내부 스키마로 복사하기보다 현재 source의 객체, destination의 객체와 자사 customer·subscription 키를 나란히 놓고 변환 규칙을 작성합니다.

evidence matrix의 각 행에는 담당자와 기한을 붙입니다. “공급사 확인 중” 상태가 오래 남으면 전체 이전을 시작하지 않습니다. 특히 export 가능한 수량과 import 가능한 수량의 분모가 다르면 완료율을 계산해도 의미가 없습니다.

3. old→new ID mapping은 결제 운영의 기준표입니다

이전 뒤 기존 token ID를 찾지 못하면 환불, 고객 문의, 실패 갱신과 chargeback 조사에서 원거래를 추적하기 어렵습니다. mapping은 일회성 변환 파일이 아니라 일정 기간 운영 시스템에서 조회 가능한 기준표로 관리해야 합니다.

최소 mapping 구조는 다음과 같습니다.

mapping 필드 용도
migration batch ID 어떤 이전 실행에서 만들어졌는지 구분
internal customer ID source·destination과 무관한 자사 고객 기준키
old customer ID 기존 vault 또는 billing customer 조회
old payment token ID 기존 결제·support 기록 역추적
new customer ID destination 고객 객체 조회
new payment method ID 새 결제 요청에 사용할 객체
payment method family card·bank debit·wallet 등 처리 분기
mapping status mapped·excluded·retry·reauth_required·manual_review
last verified time 실제 결제 또는 attach 검증 시각
source and destination evidence ID 공급사 ticket·batch와 연결

내부 customer ID가 없고 이메일 주소만으로 mapping하면 중복 이메일, 변경된 이메일, 가족·팀 공유 주소에서 잘못 연결될 수 있습니다. 이메일은 검토 보조값으로만 사용하고, 기존 시스템의 불변 customer key와 subscription owner 관계를 우선합니다.

하나의 customer에 여러 결제수단이 있거나 한 결제수단이 여러 subscription의 기본값으로 지정될 수 있습니다. 따라서 customer mapping과 default payment method mapping을 분리합니다. 다음 조건을 특히 확인합니다.

  • customer는 옮겨졌지만 기본 결제수단이 지정되지 않은 경우
  • expired 또는 삭제 예정 결제수단이 함께 import된 경우
  • subscription별 override가 customer 기본값과 다른 경우
  • 같은 old token이 중복 new object로 생성된 경우
  • 테스트·라이브 계정 또는 법인별 merchant account가 섞인 경우
  • 새 시스템의 customer는 기존에 존재하지만 결제수단만 추가되는 경우

매핑표 접근 권한, 보존 기간과 삭제 절차도 정합니다. 비민감 ID만 담더라도 결제·고객 관계를 보여 주는 운영 데이터이므로 공개 문서나 일반 협업 채널에 배포하지 않습니다.

4. full export 전에 작은 표본으로 매핑 규칙을 검증합니다

Stripe의 self-serve PAN copy 문서는 지원되는 processor 사이에서 결제정보를 복사하는 흐름과 상태 확인 방법을 설명합니다. 중요한 점은 복사 기능의 존재가 모든 계정·결제수단·객체의 이전 가능성을 보장하지 않는다는 것입니다. source와 destination 조건, 지원 범위와 데이터 매핑을 실제 계정 기준으로 확인해야 합니다.

처음부터 전체 고객을 넣지 말고 다음처럼 서로 다른 cohort를 고릅니다.

pilot cohort 포함 이유 검증 항목
최근 카드 결제 성공 고객 가장 일반적인 경로 attach, 소액 또는 예정 결제, webhook, receipt
카드 갱신 예정 고객 실제 반복 결제 경로 subscription 기본값, off-session 처리, 실패 코드
여러 결제수단 보유 고객 mapping 복잡도 확인 default와 backup 결제수단 순서
환불 가능 거래 보유 고객 과거 거래 추적 확인 old charge와 새 시스템의 refund 책임선
서로 다른 법인·통화 고객 account 경계 확인 merchant account, currency, region routing
실패·만료 결제수단 고객 오류 분류 확인 제외, 재시도 금지, 재인증 요청

pilot은 정상 결제 성공률만 보지 않습니다. old ID로 support 문의가 들어왔을 때 new ID를 찾을 수 있는지, webhook이 내부 주문과 연결되는지, finance가 processor transaction과 payout을 맞출 수 있는지까지 확인합니다.

소규모 cohort의 수와 금액은 위험과 운영 용량에 맞게 정합니다. 특정 고정 숫자가 모든 서비스에 안전하다고 보장할 수 없습니다. 중요한 것은 전체 이전 전에 서로 다른 결제수단·지역·갱신 상태를 포함하고, 실패하면 즉시 중단할 수 있는 규모로 시작하는 것입니다.

5. migration-gap ledger로 누락을 계속 갱신합니다

이전은 한 시점의 스냅샷입니다. export cutoff 이후 고객이 카드를 바꾸거나 새 결제수단을 추가하면 source와 destination 사이에 gap이 생깁니다. 전환일까지 source가 계속 쓰인다면 한 번의 export로 완료되지 않습니다.

migration-gap ledger에는 다음 변경을 기록합니다.

  • cutoff 이후 새로 생성된 customer와 token
  • 기존 고객의 새 결제수단 추가·교체
  • 기본 결제수단 변경
  • 만료·삭제·분실 신고 등 상태 변경
  • 새 subscription의 결제수단 override
  • 재인증 후 새로 생성된 payment method
  • first batch에서 누락·거절된 레코드
  • destination에서 중복 또는 매핑 충돌로 분류된 레코드

gap 처리 방식은 세 가지로 나눌 수 있습니다.

  1. source에서 delta export를 반복합니다.
  2. 전환 기간의 신규 결제수단은 처음부터 destination에 저장합니다.
  3. 이전 불가·실패 고객은 재인증 캠페인으로 분리합니다.

어떤 방식을 쓰든 동일 레코드를 중복 import하지 않도록 idempotency 기준을 정합니다. batch 번호만 새로 붙이고 old token ID의 처리 이력을 잃으면 동일 결제수단이 여러 번 생성될 수 있습니다.

Stripe PAN export 문서는 Stripe에서 다른 processor로 데이터를 내보내는 절차와 고려사항을 확인할 때 사용합니다. export 요청을 계약 종료 직전에 시작하지 말고, 대상 processor, 계정, 데이터 범위, 일정과 추가 batch 가능성을 미리 확인합니다.

Stripe PAN import 문서는 외부 processor의 결제 데이터를 Stripe로 가져오는 흐름을 설명합니다. import가 끝난 뒤 생성된 객체를 내부 고객·구독과 연결하고, 실패 레코드를 별도 처리하는 운영 단계가 필요합니다.

6. wallet과 mandate는 기본 이전군에서 제외해 따로 봅니다

카드형 vault token과 wallet·bank debit mandate를 같은 batch로 취급하지 않습니다. “결제수단이 저장돼 있다”는 공통점만 있을 뿐 재사용 근거와 고객 상호작용이 다를 수 있습니다.

우선 별도 cohort로 분리할 대상

  • Apple Pay·Google Pay 등 wallet에서 생성된 결제수단
  • 특정 merchant·domain·device 흐름에 묶인 token
  • SEPA Direct Debit 등 mandate 증거와 연결된 결제수단
  • 계좌 확인 또는 microdeposit 검증 상태가 필요한 결제수단
  • 현지 결제수단의 재사용 동의가 필요한 객체
  • network token과 기존 PAN 기반 token이 함께 존재하는 고객
  • 3DS 등 추가 인증을 완료했지만 새 경로에서 상태 재사용 여부가 불명확한 객체

제외는 삭제가 아닙니다. excluded_pending_vendor_confirmation, reauth_required, unsupported, manual_review처럼 사유를 구분하고 고객 수, 다음 갱신일과 예상 영향을 집계합니다.

wallet credential이나 mandate를 이전할 수 있다고 추측하지 않습니다. source와 destination 양쪽에 다음 질문을 서면으로 확인합니다.

  1. 이전 가능한 object type과 지원 국가·통화는 무엇인가.
  2. 고객의 기존 동의 또는 인증 상태를 새 merchant·processor에서 재사용할 수 있는가.
  3. 이전 뒤 첫 결제에 고객 상호작용이 필요한가.
  4. 실패 시 표준 오류 코드와 재인증 경로는 무엇인가.
  5. 환불·분쟁·취소는 old와 new 중 어느 시스템에서 처리하는가.

지원 여부가 확정되지 않은 cohort를 전체 성공률의 분모에서 빼버리면 경영 보고는 좋아 보이지만 실제 갱신 실패 위험이 숨겨집니다. 전체 고객 기준, 이전 가능군 기준, 재인증 필요군 기준을 나눠 보고합니다.

Stripe의 공식 범위만 놓고 봐도 wallet별 처리가 다릅니다.

Stripe 문서의 사례 공식 문서가 밝힌 범위 운영 분류
Link 저장 credential processor 사이에 이전할 수 없고 Stripe export에서 제외 재등록 또는 대체 경로가 필요한 제외군
Google Pay에 저장된 카드 wallet 서비스가 token화하므로 Stripe로 이전할 수 없고 새 결제수단으로 추가해야 함 신규 등록 cohort
Apple Pay DPAN 이전 processor가 DPAN·만료일·network transaction ID를 제공할 수 있을 때 Stripe 담당자에게 이전 요청 가능 source·destination 서면 확인 후 별도 cohort

이 세 사례는 Stripe의 현재 import·export 절차에 대한 설명입니다. 다른 PSP나 vault의 wallet 지원 범위로 일반화하지 않습니다.


7. 재인증 fallback은 이전 실패 후가 아니라 전에 만듭니다

모든 결제수단이 이동할 것이라고 가정하지 않습니다. 이전 불가, 고객 매핑 실패, 인증 만료, destination attach 실패가 생겼을 때 고객이 안전하게 새 결제수단을 등록할 경로를 준비합니다.

Stripe의 결제수단 저장·재사용 문서는 향후 결제에 결제수단을 저장할 때 고객 동의와 사용 목적을 고려해야 함을 설명합니다. 재인증 페이지는 단순 카드 입력 폼이 아니라 고객이 결제수단 저장과 향후 사용 맥락을 이해할 수 있는 흐름이어야 합니다.

재인증 fallback 체크리스트는 다음과 같습니다.

  • 로그인한 고객만 접근하는 hosted 또는 승인된 결제수단 등록 경로
  • 이메일·메신저 본문에 결제정보 입력을 요구하지 않는 안내
  • 만료·실패·이전 불가 등 고객에게 보여 줄 최소한의 사유
  • 어떤 subscription 또는 invoice의 결제수단을 바꾸는지 명확한 표시
  • 새 결제수단 등록 성공 후 customer·subscription 연결 확인
  • webhook 지연·중복에 대비한 idempotent 처리
  • 등록 실패 시 support escalation과 수동 처리 기준
  • 재인증 완료 전 자동 재시도·서비스 제한 정책의 내부 승인
  • 피싱 오인을 줄이기 위한 공식 도메인과 고객지원 안내

재인증 요청을 전체 고객에게 한꺼번에 보내지 않습니다. 다음 갱신일, 예상 금액, 고객 중요도, 연락 가능 채널과 실패 사유로 cohort를 나눕니다. 갱신이 임박한 고객은 안내와 support 용량을 먼저 확보하고, 장기 휴면 고객은 불필요한 메시지를 줄일 수 있습니다.

Stripe Payment Intents 문서는 결제 상태와 추가 고객 동작이 필요한 흐름을 설계할 때 참고할 공식 자료입니다. 새 결제 경로에서는 단일 성공 응답만 믿지 말고 최종 상태와 webhook을 내부 주문·invoice 상태에 연결합니다.

추가 인증이 필요한 거래는 Stripe 3D Secure 문서를 함께 확인합니다. 이전된 결제수단이 존재해도 새 결제에서 고객 인증이 다시 필요할 수 있으므로 token migratedoff-session charge ready를 같은 상태로 취급하지 않습니다.

8. 결제와 대사를 함께 검증합니다

새 token으로 authorization 또는 payment가 성공했다고 끝내면 안 됩니다. capture, 취소, 환불, dispute, fee와 payout이 어느 시스템에 기록되는지도 확인해야 합니다.

소규모 cohort 검증은 다음 순서로 진행합니다.

  1. internal customer ID로 old·new customer와 결제수단을 조회합니다.
  2. new payment method가 올바른 customer·subscription에 연결됐는지 확인합니다.
  3. 승인된 테스트 범위에서 실제 결제 또는 다음 예정 갱신을 실행합니다.
  4. destination event와 processor 결과를 내부 payment attempt에 연결합니다.
  5. webhook 중복·지연에도 주문과 invoice가 한 번만 갱신되는지 확인합니다.
  6. 취소 또는 환불 책임 시스템과 원거래 lookup 경로를 확인합니다.
  7. processor transaction, fee, payout과 내부 invoice·payment를 대사합니다.
  8. 실패 레코드를 재시도, 재인증, 제외, 수동 검토로 분류합니다.

대사 기준은 B2B SaaS 구독 청구 월말 대사 체크리스트와 연결합니다. 특히 이전 전후에 결제가 나뉘면 old processor payout과 new processor payout을 같은 기간에 맞춰야 합니다.

failover나 multi-gateway 전환의 routing·rollback·중복 결제 통제는 B2B SaaS 결제 공급사 failover·multi-gateway 준비 체크리스트를 함께 적용합니다. 제품 선택 단계라면 결제 오케스트레이션 플랫폼 비교 2026에서 vault, routing, reconciliation의 소유 경계를 먼저 비교할 수 있습니다.

9. cutover와 rollback 조건을 숫자와 상태로 정합니다

“대부분 성공” 같은 표현으로 전체 cutover를 승인하지 않습니다. 서비스 상황에 맞는 지표와 중단 조건을 미리 합의합니다.

지표 분모와 상태를 분리할 기준
export coverage 전체 대상, export 가능군, 제외군
import success 수신 레코드, 정상 생성, 중복, 거절, 보류
mapping completeness customer·payment method·subscription default 각각
reusable validation attach 성공과 실제 결제·갱신 성공을 분리
reauth readiness 요청 대상, 발송, 페이지 진입, 등록 성공, support 필요
reconciliation completeness payment·refund·fee·payout 연결 여부

중단 또는 rollback 조건의 예시는 다음과 같습니다.

  • 특정 결제수단·지역에서 mapping 오류가 반복됨
  • old customer와 다른 new customer에 결제수단이 연결됨
  • 중복 결제 또는 webhook 중복 반영이 발생함
  • 환불·취소의 원거래를 찾을 수 없음
  • source·destination 레코드 수 차이가 설명되지 않음
  • 갱신 실패가 정상 변동 범위를 벗어나지만 원인 분류가 안 됨
  • 재인증 페이지 또는 support 대응 용량이 준비되지 않음

rollback이 “기존 시스템을 다시 켠다”는 한 줄에 그치면 안 됩니다. cutover 이후 source에 생긴 변경, destination에서 성공한 결제, 고객이 새로 등록한 결제수단을 어떻게 합칠지 정해야 합니다. 이미 destination에서 성공한 거래를 source에서 다시 시도하지 않도록 공통 payment attempt ID와 상태 조회 순서를 둡니다.

10. 공급사에 보낼 확인 질문

Source vault 질문

  • export 가능한 payment method 유형과 제외 유형은 무엇인가.
  • 계정·merchant·지역별로 batch가 나뉘는가.
  • full export와 delta export를 몇 번 수행할 수 있는가.
  • cutoff 이후 변경된 token을 어떻게 식별하는가.
  • 전달 완료 증거와 source-side 오류 목록을 제공하는가.
  • 계약 종료 후 old transaction·refund·dispute 조회 기간은 얼마인가.

Destination 질문

  • 지원하는 import 형식과 필수 mapping 필드는 무엇인가.
  • 중복 customer·payment method를 어떻게 탐지하는가.
  • import 성공 뒤 생성된 new ID mapping을 제공하는가.
  • wallet·mandate·network token의 지원 범위는 무엇인가.
  • attach는 성공했지만 결제에 재인증이 필요한 상태를 어떻게 구분하는가.
  • 실패 batch 재처리와 idempotency 기준은 무엇인가.

내부 팀 질문

  • customer와 subscription의 불변 기준키가 있는가.
  • 다음 갱신일과 예상 금액을 cohort에 연결할 수 있는가.
  • 재인증 대상 고객에게 안전한 등록 경로를 제공할 수 있는가.
  • old·new 거래를 finance와 support가 함께 조회할 수 있는가.
  • cutover 중단 권한자와 고객 공지 담당자는 누구인가.
  • migration-gap ledger를 누가 매일 갱신하고 닫는가.

공개 전에 가져갈 최종 체크리스트

범위

  • □ token taxonomy를 platform·gateway·network·wallet·mandate 등으로 구분했다.
  • □ source export 가능군, destination import 가능군과 제외군의 분모를 맞췄다.
  • □ 구독 청구 전체 이전과 vault token 이전의 범위를 분리했다.

증거와 mapping

  • □ source·destination evidence matrix에 batch·담당자·기한이 있다.
  • □ internal customer ID를 기준으로 old→new customer·payment method mapping을 만들었다.
  • □ default payment method와 subscription별 override를 별도로 확인했다.
  • □ 실패·중복·제외·재인증 상태를 구분했다.

gap과 제외군

  • □ cutoff 이후 신규·변경 결제수단을 migration-gap ledger에 기록한다.
  • □ delta export 또는 destination-first 저장 방식을 정했다.
  • □ wallet·mandate·불명확 token을 별도 cohort로 분리했다.
  • □ 제외군도 전체 고객 영향 보고에서 숨기지 않는다.

재인증과 검증

  • □ 공식 도메인의 안전한 결제수단 재등록 경로가 준비됐다.
  • □ 다음 갱신일 기준으로 재인증 고객 cohort를 나눴다.
  • □ 작은 cohort에서 attach·결제·webhook·환불·대사를 검증했다.
  • □ 중단·rollback 조건과 승인권자를 정했다.

마무리

결제 token 이전의 핵심은 “몇 건을 복사했는가”가 아닙니다. 어떤 유형을 옮겼는지, source와 destination의 증거가 맞는지, old customer와 new payment method를 정확히 연결했는지, 이전 불가 고객이 안전하게 재인증할 수 있는지를 확인해야 합니다.

가장 안전한 진행 순서는 taxonomy → evidence matrix → old→new mapping → 작은 cohort → gap update → 재인증 → 전체 cutover입니다. 각 단계에서 import 성공과 실제 결제 재사용 성공을 분리하면, 대규모 갱신 실패를 전체 공개 전에 발견할 가능성이 높아집니다.

공급사의 기능 설명만으로 이동성을 확정하지 말고, 실제 계정·결제수단·지역·merchant 구조를 넣은 서면 범위와 pilot 결과로 판단하십시오.

공식 출처