현금영수증 발급에러
reqParam = {"amount":"42000","customerIdentityNumber":"01045602116","taxFreeAmount":"0","orderId":"5813034","type":"소득공제","orderName":"유기농 흑마늘즙"}
이렇게 보내고 있는데
{"code":"INVALID_REQUIRED_PARAM","message":"필수 파라미터가 누락되었습니다."}
이라고 응답이 옵니다.
토스 홈페이지에서 api 테스트 해도 결과가 나오는데 저희 사이트에서 api로테스트 해보니 저렇게 응답이 오네요. 문제가 뭘까요?
토스 홈페이지에서 api 테스트 해도 결과가 나오는데 저희 사이트에서 api로테스트 해보니 저렇게 응답이 오네요. 문제가 뭘까요?
29 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
개발자 센터 가셔서 해당 상점의 API 버전이 최신인지 확인부탁드립니다.
최신버전이 아니면 응답이 저렇게 오나요?
버전이 1.1. 이라고 되어 있습니다.
그럴수도 있습니다.
개발연동 테스트 상점으로 테스트 중이신가요?
아닙니다. 실제 사이트인데 현금영수증이 발급안되어서 확인해보니 저렇게 응답이 오네요.
버전 문제 말고 실제 request 보내고 있는 것에서는 문제가 없나요?
확인해볼게요
보내주신 값은 이상이 없습니다
API 버전을 올리고 다시 확인해보셔야 할거같아요
아..금액
customerIdentityNumber 가 0727 버전부터 유효한 값이에요
버전 업 하셔야 정상 이용이 가능합니다
amount 를 number 타입으로 보내주세요 "" 빼시고
예전에는 registrationNumber 였습니다
그럼 현재 버전으로 한다면 registrationNumber 로 하고 금액을 number 타입으로 뵤내면 되나요?
버전 업 하셔야 정상 이용이 가능합니다
기존에 사용하던 상점이고 이번에 사이트 리뉴얼이라 제가 보낸 코드로 하니 에러가 납니다.
버전 올리는것을 너무 부담스럽게 생각하지 않으셔도 됩니다. 하위버전 호환되도록 만들어져있어요
올리는게 부담이 아니라...기존에 서비스중이던 상점이라서 차이점이 뭘까 확인중입니다.
그렇군요
우선 amount 부터 고치고 하나씩 디버그 하시면 되겠습니다
내일 담당자 오면 버전 업하고
{"amount":42000,"customerIdentityNumber":"01045602116","taxFreeAmount":"0","orderId":"5813034","type":"소득공제","orderName":"유기농 흑마늘즙"}
이렇게 보내면 될까요?
넵
taxFreeAmount 도 integer 인데 이건 유지해도 되는건가요?
금액필드는 전부 number 로 주셔야해요
토스 사이트에서 api 테스트 하는 곳에선
data '{"amount":"44000","customerIdentityNumber":"01045602116","orderId":"5813025","orderName":"[2박스] 유기농 양파즙","type":"소득공제","taxFreeAmount":"0"}'
이렇게 화면에 나오는데 정상으로 테스트화면 보여주고 있어요.
"현금영수증 발급 요청" 테스트 | 토스페이먼츠 개발자센터
코드 구현이나 환경 설정 없이도 원하는 API를 실행해보세요.
에러가 좀 디테일해야겠군요,
금액이 문자열 형태로 input 된 경우 읽지를 못할테니
금액이 없으면 금액이 없다는 메시지로 보여지면 좋을거같네요
그럼 api테스트 화면에서 저렇게 보여지더라도 제가 보낼땐 금액을 모두 number로 해서
{"amount":42000,"customerIdentityNumber":"01045602116","taxFreeAmount":0,"orderId":"5813034","type":"소득공제","orderName":"유기농 흑마늘즙"}
이렇게 보내면 되는 거네요.
API 테스트화면에서는 number 형태로 자동변환해서 보내지고 있습니다
맞습니다
네 알겠습니다. 내일 테스트해보고 다시 문의 드리겠습니다. 감사합니다.
요거 기존 피드백이 있었는데 불가능하다고 답변 받았던 case입니다.
Ref https://discord.com/channels/864296203746803753/1334874607403925535
방금 달아주신 글에 냥과장님 답을 보니 제 궁금증이 조금 해소됩니다.
기존 소스를 보니 기존 보내는 값을 확인해보니
{"orderId":"주문번호","orderName":"상품명","amount":"금액","type":"소득공제","registrationNumber":"번호"}
이렇게 보내고 있더라구요. 그럼 금액을 string으로 보내도 되는것 같아서 추가 문의 하려고 했거든요.
냥과장님 답글에 string으로 보내도 integer로 인식한다고 하니 registrationNumber 이 부분이 안맞아서 인것 같습니다.
이게 사실 API 버전마다 다르긴합니다. 어떤 버전은 string을 integer로 모두 파싱하고 있지 않을 수도 있어서요.
number타입으로 보내주시는게 가장 안전하고 정확합니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
버전 업 후 해결되었습니다. 감사합니다.