API 목록으로
💳 결제유료

토스페이먼츠

토스페이먼츠 · TossPayments API

인증 방식

🔑 API Key

요금

거래 수수료 1.5~3.3% (협의 가능)

Base URL

api.tosspayments.com

태그

결제, 카드

서비스 소개

토스페이먼츠는 한국에서 가장 널리 사용되는 결제 API입니다. 신용/체크카드, 계좌이체, 토스페이, 카카오페이, 네이버페이 등 모든 결제 수단을 단일 API로 통합 지원합니다. 위젯 방식으로 결제 UI를 쉽게 삽입할 수 있습니다.

🚀 시작하기

  1. 1

    개발자 센터 가입

    developers.tosspayments.com → 회원가입 후 테스트 키 자동 발급

  2. 2

    SDK 설치

    npm install @tosspayments/payment-widget-sdk

  3. 3

    위젯 렌더링

    loadPaymentWidget()으로 결제 UI 삽입

  4. 4

    서버 승인

    결제 완료 후 서버에서 /v1/payments/confirm API 호출

📋 응답 예시

{
  "paymentKey": "tviva20230428...",
  "orderId": "order-1234",
  "orderName": "토스 T셔츠 외 2건",
  "status": "DONE",
  "totalAmount": 15000,
  "method": "카드",
  "card": {
    "issuerCode": "61",
    "acquirerCode": "31",
    "number": "123456******1234"
  }
}

💡 코드 예제

JavaScriptReact (위젯)
import { loadPaymentWidget } from '@tosspayments/payment-widget-sdk'

// 위젯 초기화
const widget = await loadPaymentWidget(
  'test_ck_YOUR_CLIENT_KEY',
  'CUSTOMER_KEY'  // 비로그인: PaymentWidget.ANONYMOUS
)

// 결제 UI 렌더
await widget.renderPaymentMethods('#payment-widget', { value: 15000 })
await widget.renderAgreement('#agreement')

// 결제 요청
await widget.requestPayment({
  orderId: 'order-' + Date.now(),
  orderName: '주문명',
  customerName: '홍길동',
  customerEmail: 'user@example.com',
  successUrl: window.location.origin + '/success',
  failUrl: window.location.origin + '/fail',
})
PythonPython (결제 승인)
import requests
import base64

SECRET_KEY = "test_sk_YOUR_SECRET_KEY"
encoded = base64.b64encode(f"{SECRET_KEY}:".encode()).decode()

res = requests.post(
    "https://api.tosspayments.com/v1/payments/confirm",
    headers={
        "Authorization": f"Basic {encoded}",
        "Content-Type": "application/json",
    },
    json={
        "paymentKey": "PAYMENT_KEY",
        "orderId": "ORDER_ID",
        "amount": 15000,
    },
)
print(res.json())
cURLcURL (결제 승인)
curl -X POST https://api.tosspayments.com/v1/payments/confirm \
  -H "Authorization: Basic $(echo -n 'test_sk_YOUR_SECRET_KEY:' | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "paymentKey": "PAYMENT_KEY",
    "orderId": "ORDER_ID",
    "amount": 15000
  }'