빌링키 받는 404 NOT_FOUND 가 발생 합니다.
override suspend fun tossByBilling(tossApiClientBillingRequest: TossApiClientBillingRequest): TossClientBillingResponse {
val encodedKey = PfTossUtil.encodeSecretKey(tossSecretKey)
val billingKey = tossApiClientBillingRequest.billingKey
return tossApiWebClient
.post()
.uri("/v1/billing/$billingKey")
.header("Authorization", "Basic $encodedKey")
.contentType(MediaType.APPLICATION_JSON)
.bodyValue(tossApiClientBillingRequest)
.retrieve()
.awaitBody<TossClientBillingResponse>()
}
2025-09-17 14:46:52 - [37be22a5] HTTP POST https://api.tosspayments.com/v1/billing/authorizations/issue
2025-09-17 14:46:52 - [37be22a5] Encoding [TossApiClientBillingAuthRequest(authKey=bln_JG2xZO2R9Yw, customerKey=0199561f-a448-7680-b5ee-868b76b (truncated)...]
2025-09-17 14:46:52 - [37be22a5] [c69b53bb-1] Response 404 NOT_FOUND
위에 처럼 요청 했는데 404가 발생 합니다.
결제 하기는 정상적으로 결제가 되고 있고요
9 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
Response Body 한번 보셔요
@JsonIgnoreProperties(ignoreUnknown = true)
data class TossClientBillingAuthResponse(
val code: String?, // 오류가 발생 하면 결과값으로 code를 전달한다
val message: String?,
val mId: String? = null,
val customerKey: String? = null,
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX")
val authenticatedAt: LocalDateTime? = null,
val method: String? = null,
val billingKey: String? = null,
val card: TossClientBillingAuthCardInfo? = null,
val cardCompany: String? = null,
val cardNumber: String? = null,
// val transfers: Any? = null, // null 가능, 타입 확정되면 수정
)
@JsonIgnoreProperties(ignoreUnknown = true)
data class TossClientBillingAuthCardInfo(
val issuerCode: String? = null,
val acquirerCode: String? = null,
val number: String? = null,
val cardType: String? = null,
val ownerType: String? = null,
// val amount: Int? = null,
// val acquireStatus: String? = null,
)
바디는 이렇게 정의 되어 있습니다.
api키쌍을 섞어서 쓰신듯 합니다.
키쌍 확인 바랍니다.
참고로 response body (지금 그건 코드고 바디가 아니에요)에 오류 내용이 상세히 적힙니다
2025-09-17 15:35:16 - [7d834bc9] HTTP POST https://api.tosspayments.com/v1/billing/authorizations/issue
2025-09-17 15:35:16 - [7d834bc9] Encoding [TossApiClientBillingAuthRequest(authKey=bln_67WRb21YwJJ, customerKey=0199564f-2cb9-77f7-bff9-4c19d0d (truncated)...]
2025-09-17 15:35:17 - [7d834bc9] [aecb1769-2] Response 404 NOT_FOUND
2025-09-17 15:35:17 - [7d834bc9] [aecb1769-2] Decoded "{"code":"NOT_FOUND","message":"존재하지 않는 정보 입니다."}"
2025-09-17 15:35:17 - Toss API Error: status=404 NOT_FOUND body={"code":"NOT_FOUND","message":"존재하지 않는 정보 입니다."}
존재하지 않는 정보 라고 나옵니다...
시크릿 키
testsk** 시크릿 키로 암호화 해서 보내고 있는 상황입니다. ㅏ 이전에 발급 받은 빌링키로 결제 시도를 하면 정상적으로 결제가 되는걸 확인이 되었는데 동일한 구조 동일한 키인데 404가 발생 중입니다...
testsk** 시크릿 키로 암호화 해서 보내고 있는 상황입니다. ㅏ 이전에 발급 받은 빌링키로 결제 시도를 하면 정상적으로 결제가 되는걸 확인이 되었는데 동일한 구조 동일한 키인데 404가 발생 중입니다...
bln_JG2xZO2R9Yw 이 authkey 로 14:22:58 에 빌키발급성공응답이 내려갔는데,
요청 :
{"authKey":"bln_JG2xZO2R9Yw","customerKey":"0199561f-a448-7680-b5ee-868b76b5001b"}
결과 :
{"mId":"tvivarepublica2","customerKey":"0199561f-a448-7680-b5ee-868b76b5001b","authenticatedAt":"2025-09-17T14:22:57+09:00","method":"카드","billingKey":"마스킹","cardCompany":"우리","cardNumber":"마스킹","card":{"issuerCode":"33","acquirerCode":"31","number":"54802057**123*","cardType":"체크","ownerType":"개인"},"transfers":null}
동일 authkey로 14:46:52에 다시 요청이 됬으며
요청:
{"authKey":"bln_JG2xZO2R9Yw","customerKey":"0199561f-a448-7680-b5ee-868b76b5001b"}
이건 말씀하신대로 실패응답이 내려갔습니다.
{"code":"NOT_FOUND","message":"존재하지 않는 정보 입니다."}
authKey 필수 · string
자동결제 등록창 호출이 성공하면 리다이렉트 URL에 쿼리 파라미터(Query Parameter)로 돌아오는 일회성 인증 키입니다. 이걸 두번 호출하여 두번째 응답에서 실패가 났습니다.
프론트 개발자한테 설명했던 내용인데 이해를 못 해서 발생 했네요;; 확인 되었습니다 감사합니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.