운나호
운나호6d ago

현금영수증 발급에러

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

Did you find this page helpful?