115 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
안녕하세요
해외 카드 결제 이슈 생겨서 연락드립니다
이슈 내용 남겨주세요.
@박수습 In Toss Payments' auto-renewal payment method, is it possible to collect card details through our own UI and send them directly to the backend to make a payment, without opening the Toss payment window ?

답장좀 부탁드립니다. 영어가 힘들면 제가 도움 드리겠습니다
기다리는 중입니다
We call this method key-in payments. Key-in payments are highly vetting and can only be used by merchants who have passed the vetting process.
@Giwon you complete that process ?
@Giwon have done this vetting process ?
Yes
당담자에게 확인받고 구현중입니다
어떤문제가 있나요
Mid및 키 받았습니다
key-in으로 심사받은 것일까요?
토스 메니저님께 전달받았었습니다
Key in이 뭘까요?
잘못알고있는거라면 통화로 더블체크하겠습니다
techsupport@tosspayments.com으로 mid 정보 전달해주세요.
bill_hyperf
보내드렸습니다
gwb9160@nate.com 입니다
여기도 보내드렸고요
혹시 확인 되실까요?
확인했습니다.
어떻게 대응하면 되나요
단건결제 정기결제 끝냈습니다
해외카드 빌링으로 청약하셨네요.
네 구현해라고 토스매니저에게 전달받고 구현중 문의드립니다
빌링의 경우 위에 화면으로 가능합니다.
네 인지하고 있습니다 그건
위 화면으로 빌링키를 발급받고 발급된 빌링키로 결제를 하는 방식입니다.
@henilkevadiya whats the issue
Please confirm
다시 처음으로 돌아가면
연동 문서 전달드릴게요.
해당 문서로 연동하시면 됩니다.
메일로 문서 전달드릴게요.
여기 주셔도 됩니다
we don't have any issue regarding auto renewal process with billing key,'
개발자가 이거에 대해 질문하네요
@박수습 we don't have any issue regarding auto renewal process with billing key,
but how we can do card payment with out toss sdk pop up
UI 문제는 아닌것 같고 정기결제에 대해 묻고 있습니다. 주시는 서류에 써져있을까요
UI는 냥과장님에게 컨팜 받았습니다
네, UI 가 아닌 API 연동 문서로
개발자 분이 이해하실 수 있을거에요.
UI 필요없는 문서입니다.
문서는 url이라 구글 번역으로 확인 가능합니다.
네 정기결제가 핵심 사안인듯합니다
메일로 답변드렸어요.
자동결제(빌링) API로 연동하기 | 토스페이먼츠 개...
구매자의 카드 정보를 등록해 빌링키를 얻고 자동결제를 연동하는 방법을 알아보세요.
이거 맞나여ㅛ
이미 받은건데
네 맞습니다.
이미읽고 검토한 문서입니다
해당 API 사용하면되는데 문제가 있으실까요?
@henilkevadiya Please check his comment
he just said use API
@박수습 Here,The first two methods have been implemented — the first is regular payment, and the second is auto-renewal using a billing key. Now we want to implement a third method for Visa, where the card number is passed directly for payment. Is it possible to implement this without using the Toss SDK popup ?

There is no UI in this document. You can get the card number etc. directly and call it with API.
yes
@henilkevadiya Ok? everything?
or query
There is no Toss SDK popup in the document of Url, so I don't know why you are asking about Toss SDK popup.
@박수습 I asking about simple term that if we enter card details and subscribe then we make payment or not ?
Yes, you can make payment by entering customer card information and expiration date and receiving a billing key.
After entering customer card information and receiving a billing key, you must call the payment API with the billing key.
For payments that occur regularly, you must implement a scheduler(ex. cron) and call it regularly.
okay I will try that
const tossPayments = window.TossPayments(import.meta.env.VITE_APP_TOSS_SECRETKEY)
const customerkey = `customer${userid}
const customerkey = `customer${userid}
;
tossPayments.requestBillingAuth("카드", {
customerKey:
customer${user_id},
successUrl:
https://hypertarget.app/payment-success?orderName=${orderName}&email=${email}&zip=${zip}&phone=${phone}&amount=${amount}&trial=${trial1}&lang=${lang1}&selectedPayment=${selectedPayment}&customerKey=${customerkey}`,
failUrl: "https://hypertarget.app/payment-fail",
zip,
});
@박수습 can we genrate billingkey without using above method ? or that step is necessary ? ?You can generate billingKey without using above method.
You can generate it, if you are previliged to access our API method.
This method has security concern, so not every merchant can access.
개발자가 토스 페이 MID 받고 결제 구현중 질문이 있다고 합니다
hyper_toss
mid 입니다
@Ayaan이안 @박수습 Can we use Toss Pay balance directly as a payment method for auto-renewal? I found some information during my research that suggests it might not be possible.
🚫 Not Supported for Auto-Renewal
Method Auto-Renewal
Toss App Balance ❌ Not supported
Bank Transfer ❌ Not supported
Virtual Account ❌ Not supported
if possible then which details we need to fill from user side ?
@Ayaan이안 @박수습 and if possible then it is necessary to Toss pay link with bank acount or it card ?
Toss Pay balance cannot be used for automatic payments.
Please note that topics related to Toss Pay automatic payments cannot be discussed over Discord.
For matters regarding automatic payments, you will need to consult directly with our sales manager.
The only available payment method for automatic payments is for customers to enter their card information directly through the Tosspayments checkout page (or use the automatic payment API).
Please note that simple payment methods like Toss Pay cannot be used for automatic payments.
@Giwon 혼선이 좀 있는거같은데요
토스페이먼츠를 통해서 빌링결제 개발하시는거 맞는거죠?
@henilkevadiya Please check this

토스페이 빌링은 완전 다른영역이라서.. 위에서 설명했습니다
이미 토스로 카드 단건 정기결제는 구현했습니다
5번째 mid로 토스페이 문의드립니다
개발자에게 전달하겠습니다
@henilkevadiya Please give me feedback
Please read
토스 간편결제 직연동을 사용하셨군요, 간편결제를 직연동하면 토스페이먼츠와 상관없는 영역이라서요
무슨 뜻일까요
@김차장 Now we need to implement automatic renewal using the Toss Pay balance directly. Previously, we implemented Toss Pay with a card, but now we need to handle renewals without using a card
@Giwon 혹시 통화도 가능하신가요? 매니저님께 설명드릴게 있어요
메모했어요 지우셔도 됩니다
💡 정보 제출
민감 정보를 안전하게 제출해주세요
123456
@henilkevadiya I received the information late, so my update was delayed.
The application for using Toss Pay billing has already been submitted under hyper_toss mid.
Regarding your earlier question about whether regular payments can be made using the Toss Pay balance — yes, this is certainly possible.
However, please note that Toss Pay is not a service that holds a balance.
Within the Toss Pay app, customers can use their bank accounts or cards as payment methods.
@henilkevadiya Please check this
@김차장 so customer must use their card or bank account right ?
You can register your own card or bank account in the Toss Pay app, and specify which card or account to use during the billing key issuance process.
@김차장
is it possible to use toss pay balance for auto renewal without card or bank details ? just use toss pay balance can't use any like card or bank details
is it possible to use toss pay balance for auto renewal without card or bank details ? just use toss pay balance can't use any like card or bank details
혹시 토스페이로 정기결제 가능할까요?
전화로 안내드렸습니다
넵 상세히 설명주셔서 감사합니다!!
Toss Pay is not a banking app, so the term “balance” is not the most appropriate way to describe it.
The Toss Pay app offers various features, and among them is the payment function that allows customers to register their own bank accounts and cards for use in transactions.
This type of service is referred to as a “simple payment service” (or “easy payment service”), similar to providers like Naver Pay and Kakao Pay. Toss Pay is one of these simple payment service providers.
The SDK and API you are currently integrating are provided by Tosspayments, and through Tosspayments you can connect and use Toss Pay.
@김차장 We have already implemented two payment methods using the Toss Pay API: one for single payments and another for the auto-renewal process. As per @Giwon 's requirement, we have implemented another Toss Pay method that allows auto-renewal payments to be made directly through the Toss Pay app so I'm asking about that .
There has never been any official guide documentation provided for payments through the Toss Pay app, so I just shared the details with @Giwon a short while ago.
okay
tossPayments.requestBillingAuth("카드", {
customerKey: 'hyper_toss',
successUrl:
}); @김차장 here I want to pass customerKey correct because I got above error message please review this part
https://hypertarget.app/payment-success?orderName=${orderName}&email=${email}&zip=${zip}&phone=${phone}&amount=${amount}&trial=${trial1}&lang=${lang1}&selectedPayment=${selectedPayment}&customerKey=${customerkey}
,
failUrl: "https://hypertarget.app/payment-fail",
flowMode: 'DIRECT',
easyPay: 'TOSSPAY',
}); @김차장 here I want to pass customerKey correct because I got above error message please review this part

seems you are asking in multiple threads.
please be aware that this may cause confusion for us
did you pass customerKey as hyper_toss?
customerKey is not your MID.
send the user's ID (or hashed identifier) as customerKey.
And please let us know the customerKey that you sent. We will check the log and we will guide you
@Ayaan이안 so where I can pass MID that @Giwon send me ?

You do not need to send
5번째 입니다
보내실 필요 없어요
MID마다 키가 다르기 때문에
네넵
토스 시스템 내부적으로 키에 매칭해서 관리합니다.
네 알겠습니다
As client key/ secret key different for each MID, you do not need to send MID.
Our system internally matches the MID using the key passed.
okay
Only thing you need to worry about is sending correct key for your MIDs.
Seems you will have 5 cks and 5 sks.
tossPayments.requestBillingAuth("카드", {
customerKey:
customer_${user_id}
,
successUrl:https://hypertarget.app/payment-success?orderName=${orderName}&email=${email}&zip=${zip}&phone=${phone}&amount=${amount}&trial=${trial1}&lang=${lang1}&selectedPayment=${selectedPayment}&customerKey=${customerkey}
,
failUrl: "https://hypertarget.app/payment-fail",
flowMode: 'DIRECT',
easyPay: 'TOSSPAY',
});
@Ayaan이안 this was correct ?
@Ayaan이안 I opening pop up from other country not korea so it's issue releted to country ?1. What error are you seeing now?
2. Could you send me the customerKey?
3. Most of the data you've set as a query params in successUrl will be returned anyways. You do not need to set it.
Please read our docs to try to minimise the params, as it may exceed the character limit.
I use customer key like customer_3
exactly customer_3?
yes
Can you answer Q1
{
"code": "ERROR_WITH_MERT_PAGE_MOVE_NEEDED",
"message": "처리 중 오류가 발생했습니다",
"data": {
"url": "FAKE_URL",
"type": "PX_RESPONSE",
"encoding": "UTF-8",
"payloads": [],
"pxResponse": {
"cardCode": null,
"paymentKey": null,
"amount": 0,
"orderId": "",
"paymentWindowType": "DEFAULT",
"paymentScheme": "STANDARD",
"resultStatus": "FAIL",
"windowTarget": "iframe",
"successUrl": "https://hypertarget.app/payment-success?orderName=defaultplan&email=&zip=123456&phone=&amount=500&trial=&lang=kr&selectedPayment=toss&customerKey=customer_3",
"failUrl": "https://hypertarget.app/payment-fail",
"originUrl": "http://localhost:5173",
"error": {
"code": "2003",
"message": "처리 중 오류가 발생했습니다"
},
"redirectUrl": "https://hypertarget.app/payment-fail?code=2003&message=%EC%B2%98%EB%A6%AC%20%EC%A4%91%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4&orderId="
},
"extraData": null
}
}
I got this error message
Thanks.
It is unusual to request a billing with Tosspay (easypay), so this requires the further check with Toss Team Internally.
Please allow us more time to review this.
If we cannot answer this in today's working time, we will answer next week.
cc @김차장 김차장님, TossPay(간편결제)로 빌링을 요청하시는 경우인데.
이 부분은 직접 답변주실 수 있으실까요? Giwon님이 Sales와 채팅 올려주신 걸 보니 뭔가 관련해서 내부적인 세팅이 따로 있었던 것 같습니다. (SDK Spec에 없어서 제가 답변을 쉽게 못드리는 상황이네요.)
@henilkevadiya are you using the live key? we are now setting up the Tosspay billing in the MID so please wait for the approval.
we are using Test key
It is same. the MID does not set up anything about tosspay billing so Test MID will not work properly
@냥과장 so how we can test ?
@henilkevadiya It has already been forwarded to the Tosspayments team, and the setup is in progress, so it should just be a matter of waiting a bit.
It will take about 1 to 2 hours, and we will let you know once it’s done.
okay
@Giwon 준비는 거의다 되었는데요 당사로 가입이 결제가 안되어있다고 합니다
가입비 관련 안내를 받으셨을까요?
네 결제 가이드 받았었고 처리했습니다
내부 확인을 좀더 해볼게요
결제하신 일자와 결제카드사, 승인번호 알 수 있을까요?
무통장 입금으로 처리했습니다
법인 통장으로 처리했어요!
넵, 저희쪽 확인을 더 해보고 안내드릴게요
현재 결제 되었다고 알람왔습니다
넵, 제가 해야할 설정이 좀 있어요
네 알겠습니다 감사합니다
@henilkevadiya Could you please try again?
okay
{
"code": "ERROR_WITH_MERT_PAGE_MOVE_NEEDED",
"message": "처리 중 오류가 발생했습니다",
"data": {
"url": "FAKE_URL",
"type": "PX_RESPONSE",
"encoding": "UTF-8",
"payloads": [],
"pxResponse": {
"cardCode": null,
"paymentKey": null,
"amount": 0,
"orderId": "",
"paymentWindowType": "DEFAULT",
"paymentScheme": "STANDARD",
"resultStatus": "FAIL",
"windowTarget": "iframe",
"successUrl": "http://localhost:5173//payment-success?orderName=defaultplan&email=&zip=123456&phone=&amount=500&trial=&lang=kr&selectedPayment=toss&customerKey=customer_3",
"failUrl": "http://localhost:5173//payment-fail",
"originUrl": "http://localhost:5173",
"error": {
"code": "2003",
"message": "처리 중 오류가 발생했습니다"
},
"redirectUrl": "http://localhost:5173/payment-fail?code=2003&message=%EC%B2%98%EB%A6%AC%20%EC%A4%91%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4&orderId="
},
"extraData": null
}
}
@김차장 I got this error
ok let me see
try again plz
@김차장 same error again
ok let me see, again
{
"code": "ERROR_WITH_MERT_PAGE_MOVE_NEEDED",
"message": "처리 중 오류가 발생했습니다",
"data": {
"url": "FAKE_URL",
"type": "PX_RESPONSE",
"encoding": "UTF-8",
"payloads": [],
"pxResponse": {
"cardCode": null,
"paymentKey": null,
"amount": 0,
"orderId": "",
"paymentWindowType": "DEFAULT",
"paymentScheme": "STANDARD",
"resultStatus": "FAIL",
"windowTarget": "iframe",
"successUrl": "http://localhost:5173//payment-success?orderName=defaultplan&email=&zip=123456&phone=&amount=500&trial=&lang=kr&selectedPayment=toss&customerKey=customer_3",
"failUrl": "http://localhost:5173//payment-fail",
"originUrl": "http://localhost:5173",
"error": {
"code": "2003",
"message": "처리 중 오류가 발생했습니다"
},
"redirectUrl": "http://localhost:5173/payment-fail?code=2003&message=%EC%B2%98%EB%A6%AC%20%EC%A4%91%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4&orderId="
},
"extraData": null
}
}
@김차장 I run this on local that issue may be ?
It should also work properly on a local PC.
@henilkevadiya
We need to take a detailed look at the test server configuration for Tosspay Billing, and that requires involvement from several team members. Unfortunately, since I’m the only one available today, I’m unable to analyze your issue any further at this point.
Would it be okay if we continue on Monday, June 23rd?
okay no issue 👍
Thanks for your understanding.
Toss Team who are in in-charge for this feature will review and investigate and will let you know ASAP
늦은 밤 감사합니다
괜찮습니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.