토스페이 연동가이드
API 레퍼런스일반 결제 API

결제 생성

결제 건을 생성합니다.

결제 생성 완료 후, 구매자의 결제 인증을 얻어 완료처리하는 방법은 토스페이 시작하기 > 3. 구매자 인증 받기를 참고하세요.

각 API 응답 필드와 에러코드는 사전 공지 없이 추가되거나 변경될 수도 있으니, 추가된 항목으로 인해 오류가 발생하지 않도록 처리에 유의해 주시기 바랍니다.

POSThttps://pay.toss.im/api/v2/payments

요청 파라미터

apiKeystring필수

가맹점 API Key. 웹 브라우저 혹은 외부에 노출되지 않도록 유의해 주시기 바랍니다. 테스트가 완료되면 운영 오픈 전 반드시 '실거래용 API Key'로 변경 후 체크해주세요!

최대 30자
orderNostring필수

가맹점의 상품 주문번호. 주문번호는 반드시 가맹점별로 매회 유니크해야 하며, 중복될 경우 결제 생성 요청이 실패합니다. 숫자, 영문자, 특수문자 _-:.^@만 사용 가능하며, 50자 이내여야 합니다. 동일 주문번호는 구매자 인증 완료(PAY_APPROVED) 이후 절대 재사용이 불가합니다. 최초 생성 후 2년이 지난 주문번호는 재사용할 수 없습니다. 테스트 환경과 라이브 환경 간의 주문번호 충돌 방지를 위해 가맹점 관리가 필요합니다.

최대 50자패턴: ^[\w-:.^@]+$
productDescstring필수

상품 설명. 상품 설명은 공백으로만 설정할 수 없고, 백슬래시("\")와 따옴표(",")를 포함할 수 없으며 총 255자 이내여야 합니다. 이 값에 한글이 포함되었다면 인코딩에 유의해주세요.

최대 255자
retUrlstring필수

구매자 인증완료 후 연결할 가맹점 웹페이지 URL. 사용자 인증이 완료되는 시점에 인증 데이터와 함께 결제완료 페이지로 이동시킵니다. 이 때, 전달되는 인증 데이터는 아래 링크에서 확인해 보실 수 있습니다. (단, 전달되는 인증 데이터는 결제수단 별로 차이가 있을 수 있습니다.)

최대 255자
retCancelUrlstring필수

토스페이창에 진입한 사용자가 결제를 중단할 때 사용자를 이동시킬 가맹점 취소 페이지. 이 값을 사용하면 토스 서버가 retCancelUrl 을 실행시킬 취소 버튼을 생성하고, 구매자는 브라우저나 앱을 강제로 종료하지 않고 가맹점의 취소 페이지로 이동할 수 있습니다. 구매자 편의를 위하여 반드시 활용해주세요!

최대 255자
amountinteger (int64)필수

총 결제 금액. 카드 결제를 지원하는 가맹점은 최대 10억 원까지, 카드 결제를 지원하지 않는 가맹점은 최대 200만 원까지만 결제 가능합니다. 일부 고액·현금성 상품은 카드사·은행의 1회 한도가 더 낮을 수 있으며, 이 경우 결제가 실패할 수 있습니다.

최대 10자최소값 1
amountTaxableinteger (int64)

결제 금액 중 과세 금액. 별도의 과세액을 설정하지 않고, 비과세 금액을 0원으로 보내주시면 토스페이 서버에서 자동으로 과세와 부가세를 계산합니다.

최대 10자
amountVatinteger (int64)

결제 금액 중 부가세. 값이 없으면 환불할 과세 금액을 11로 나눈 후 소수점 첫째 자리에서 올림으로 계산합니다.

최대 10자
amountTaxFreeinteger (int64)필수

결제 금액 중 비과세 금액. 판매하시는 상품이 과세 품목이면 해당 값을 0으로 보내주세요. 비과세액은 필수 값이니 빈 값으로 보내주시는 경우 에러가 발생합니다.

최대 10자
amountServiceFeeinteger (int64)

결제 금액 중 봉사료

최대 10자
disposableCupDepositinteger (int64)

일회용컵 보증금. 결제 금액 중 일회용컵 보증금 금액입니다. 일회용컵 보증금이 포함된 결제는 부분취소가 불가능합니다.

최대 10자
cashReceiptboolean

현금영수증 발급 가능 여부. 현금영수증 기능을 활용하시는 경우 true, 미사용의 경우 false로 선언해 주시기 바랍니다.

cashReceiptTradeOptionstring

현금영수증 발급 타입. CULTURE: 문화비, GENERAL: 일반 (기본값), PUBLIC_TP: 교통비

가능한 값:
GENERALCULTUREPUBLIC_TP
resultCallbackstring

결제 결과 콜백 URL. 자동 승인 설정(autoExecute=true) 시 ResultCallback 구현이 필수이며, 결제 상태 확인을 위해 모든 가맹점에 사용을 권장합니다. 결제 결과를 수신할 가맹점의 외부에서 접근 가능한 URL이어야 하며, localhost, 192.168.x.x 등 내부망 도메인 및 사설 IP는 사용할 수 없습니다.

최대 500자
retAppSchemestring

결제 완료 후 연결할 가맹점 측 앱 스킴 값. 가맹점의 결제 구현환경이 App to App인 경우 retAppScheme 값을 선언해 주시면 토스페이 완료 후 가맹점 앱으로 redirect 할 수 있습니다. iOS 앱 결제의 경우 필수 구현을 권장합니다. iOS 특성 상, 자동 앱 전환이 되지 않기 때문에 가맹점 앱 스킴 값을 이 곳에 선언해 주셔야 인증 후 가맹점 앱으로 랜딩됩니다. safari 등 모바일 웹 브라우저에서 자동 전환되지 않는 이슈는 OS 이슈인 점 참고 부탁드립니다. (Ex. testshop://)

최대 255자패턴: ^$|^[a-zA-Z]*[0-9a-zA-Z\-.]*:.*
expiredTimestring

결제 만료 기한 (기본값 15분, 최대 60분 설정 가능). 형식: YYYY-MM-DD HH:MM:SS

최대 20자
autoExecuteboolean

자동 승인 여부 설정. 가맹점의 판매 상품에 따라 '자동 승인 설정' 을 활용할 수 있습니다. true 를 선언한 경우 resultCallback 을 필수 값으로 체크합니다.

installmentstring

할부 제한 타입. USE: 할부 사용 (기본값), NOT_USE: 할부 미사용

가능한 값:
USENOT_USEINSTALLMENT_ONLY
enablePayMethodsstring

결제수단 구분 변수. TOSS_MONEY: 토스머니만 노출, CARD: 카드만 노출, null 또는 그 외의 값: 상점에 설정된 기본 결제수단으로 노출

최대 100자
callbackVersionstring

결제 결과 콜백 버전. 콜백 버전에 따라 전달되는 응답 값이 다를 수 있으니 최신 버전(V2) 이용을 권장합니다. 이 값이 포함되지 않을 경우 승인 콜백은 V2 버전의 데이터가 전달됩니다. V1: 콜백 데이터를 파라미터 형식으로 전달 (application/x-www-form-urlencoded). V2: 콜백 데이터를 JSON 형식으로 전달.

가능한 값:
NONEV1V2

응답 파라미터

codeinteger (int32)

응답코드. 0: 성공, -1: 실패 (실패 사유는 msg와 errorCode로 제공)

errorCodestring

에러 코드

msgstring

응답이 성공이 아닌 경우 설명 메시지

statusinteger (int32)

HTTP 상태 코드

payTokenstring

토스페이 토큰. 매회 유니크한 토큰 값이 생성됩니다.

최대 30자
checkoutPagestring

결제를 진행할 수 있는 토스페이 웹페이지 URL

최대 255자

요청 예제

응답 예제