가상계좌 결제요청 프로세스 문의
결제요청의 시작은 await payment.requestPayment(options); 로 시작 되는데
해당 options에 입력한 successUrl 로 결제 처리 결과를 받아 오더군요.
successUrl: baseUrl + "/buy-success", 에서 다시 결제 처리상태 확인 ("https://api.tosspayments.com/v1/payments/orders/") 을 통해 상태 정보 확인 을 완료하고요.
대부분의 결재는 이렇게 진행해서 처리하는데 문제가 없는데,
가상계좌 결재 방식은 [계좌번호 생성] 절차가 필요한데 해당 프로세스로 진행 했을때 어디에도 자동으로 계좌번호 생성을 해서 넘겨 주지 않던데 가이드 문서에는 [가상계좌발급요청] API만 (POST
/v1/virtual-accounts) 있더라구요.
successUrl > /buy-success 에서 결재방식(method=VIRTUAL_ACCOUNT)이라도 전달되어오면 해당 요청인 경우 다시 [가상계좌발급요청] 을 다시 진행하던 할 수 있을꺼 같은데 결재방식이 넘어오지않아 진행이 어렵습니다.
가상계좌 결재시 결제요청부터 > 가상계좌발급요청 > 웹훅(입금결과통지) [이건 등록해 뒀습니다.] 등 전반적인 절차 에 대해 안내 부탁 드립니다.
참고로 개발 언어는 파이썬 입니다.
감사합니다.
8 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
결제수단과 무관하게 buy-success에서 https://api.tosspayments.com/v1/payments/orders/{orderId} 를 호출하시면 안되구요.
https://api.tosspayments.com/v1/payments/confirm 이걸 호출하셔야 합니다.
가상계좌의 경우, https://api.tosspayments.com/v1/payments/confirm 가 결제 승인이 아니라 가상계좌 발급으로 작동하게 되며
반환된 객체에서 virtualAccount.accountNumber 값으로 계좌번호, virtualAccount.bankCode 값으로 은행이 내려갑니다.
알려주신 confirm api 를 호출했더니 아래와 같은 오류가 발생 합니다.
가이드 문서의 필수입력값은 모두 넘겼는데 필수 파라미터가 누락되었다고 나옵니다.
필수입력값이 어떤게 누락됐는지 확인 가능할까요?
오류코드)
>>buy-success get orderId: 오더 ID,paymentKey 페이먼트 키 ,amount: 1650
>>orders data: {'code': 'INVALID_REQUEST', 'message': '필수 파라미터가 누락되었습니다.'}
❌ 결제 조회 실패: {'code': 'INVALID_REQUEST', 'message': '필수 파라미터가 누락되었습니다.'}
127.0.0.1 - - [21/Sep/2025 14:52:07] "GET /buy-success?orderId=오더 ID&paymentKey=페이먼트 키&amount=1650 HTTP/1.1" 302 -
가이드 내용)
소스코드)
{paymentKey}, {orderId}, {amount} 이렇게 data에 지정하는게 맞나요?
그냥 paymentKey, orderId, amount로지정하셔야 할 것 같은데요.
>>buy-success form data: None
>>buy-success get orderId: sVOR6XV2QyHHIayTfP28 ,paymentKey tviva202509211520289vRi8 ,amount: 1650
>>orders data: {'code': 'INVALID_REQUEST', 'message': '필수 파라미터가 누락되었습니다.'}
❌ 결제 조회 실패: {'code': 'INVALID_REQUEST', 'message': '필수 파라미터가 누락되었습니다.'}
data={
"paymentKey":paymentKey,
"orderId":orderId,
"amount":amount
}
여전히 그렇습니다
requests.post(TOSS_API_URL, headers=headers, json=data)
이렇게 넘기셔야 하네요, data로 하니까 formdata로 인식하고 있습니다.
동일 코드로 제가 작동 시
data=%7B%22paymentKey%22%3A%22tviva202509211520289vRi8%22%7D.... 이런식으로 오고있어요.
아 감사합니다
잘 작동합니다
혹시 BANK_CODES가 모아진 거 있나요?
토스페이먼츠에서 하는 BANK_CODES요
기관 코드 | 토스페이먼츠 개발자센터
파라미터로 전달할 수 있는 기관(카드사, 은행, 통신사) 코드 리스트입니다.