{
  "info": {
    "name": "Toss Payments Core API",
    "description": "A grounded, representative subset of the Toss Payments Core API (https://api.tosspayments.com): payment confirmation and cancellation, recurring billing keys, virtual account issuance, cash receipts, transaction and settlement queries, and marketplace payouts (v2). Authentication is HTTP Basic - use your secret key as the username with an empty password (Base64 of `secretKey:`). Test secret keys are prefixed test_sk_ / test_gsk_; live keys live_sk_ / live_gsk_.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "basic",
    "basic": [
      { "key": "username", "value": "{{secretKey}}", "type": "string" },
      { "key": "password", "value": "", "type": "string" }
    ]
  },
  "variable": [
    { "key": "baseUrl", "value": "https://api.tosspayments.com", "type": "string" },
    { "key": "secretKey", "value": "", "type": "string" }
  ],
  "item": [
    {
      "name": "Payments",
      "item": [
        {
          "name": "Confirm a payment",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"paymentKey\": \"\",\n  \"orderId\": \"\",\n  \"amount\": 0\n}" },
            "url": { "raw": "{{baseUrl}}/v1/payments/confirm", "host": ["{{baseUrl}}"], "path": ["v1", "payments", "confirm"] },
            "description": "Authorizes a payment created in the checkout window using paymentKey, orderId, and amount."
          }
        },
        {
          "name": "Key-in (manual card) payment",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"amount\": 0,\n  \"orderId\": \"\",\n  \"orderName\": \"\",\n  \"cardNumber\": \"\",\n  \"cardExpirationYear\": \"\",\n  \"cardExpirationMonth\": \"\"\n}" },
            "url": { "raw": "{{baseUrl}}/v1/payments/key-in", "host": ["{{baseUrl}}"], "path": ["v1", "payments", "key-in"] },
            "description": "Approves a payment from card credentials without the checkout window. Requires an additional contract."
          }
        },
        {
          "name": "Get a payment by paymentKey",
          "request": {
            "method": "GET",
            "header": [],
            "url": { "raw": "{{baseUrl}}/v1/payments/:paymentKey", "host": ["{{baseUrl}}"], "path": ["v1", "payments", ":paymentKey"], "variable": [{ "key": "paymentKey", "value": "" }] },
            "description": "Retrieves a Payment object by its paymentKey."
          }
        },
        {
          "name": "Get a payment by orderId",
          "request": {
            "method": "GET",
            "header": [],
            "url": { "raw": "{{baseUrl}}/v1/payments/orders/:orderId", "host": ["{{baseUrl}}"], "path": ["v1", "payments", "orders", ":orderId"], "variable": [{ "key": "orderId", "value": "" }] },
            "description": "Retrieves a Payment object by the merchant's orderId."
          }
        },
        {
          "name": "Cancel a payment",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"cancelReason\": \"\",\n  \"cancelAmount\": 0\n}" },
            "url": { "raw": "{{baseUrl}}/v1/payments/:paymentKey/cancel", "host": ["{{baseUrl}}"], "path": ["v1", "payments", ":paymentKey", "cancel"], "variable": [{ "key": "paymentKey", "value": "" }] },
            "description": "Cancels a payment in full, or partially when cancelAmount is provided. Virtual account cancellations require refundReceiveAccount."
          }
        }
      ]
    },
    {
      "name": "Billing",
      "item": [
        {
          "name": "Issue a billing key from an authKey",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"authKey\": \"\",\n  \"customerKey\": \"\"\n}" },
            "url": { "raw": "{{baseUrl}}/v1/billing/authorizations/issue", "host": ["{{baseUrl}}"], "path": ["v1", "billing", "authorizations", "issue"] },
            "description": "Issues a billing key for recurring payments from an authKey and customerKey."
          }
        },
        {
          "name": "Issue a billing key from card credentials",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"customerKey\": \"\",\n  \"cardNumber\": \"\",\n  \"cardExpirationYear\": \"\",\n  \"cardExpirationMonth\": \"\",\n  \"customerIdentityNumber\": \"\"\n}" },
            "url": { "raw": "{{baseUrl}}/v1/billing/authorizations/card", "host": ["{{baseUrl}}"], "path": ["v1", "billing", "authorizations", "card"] },
            "description": "Issues a billing key directly from card credentials. Requires an additional contract."
          }
        },
        {
          "name": "Charge a billing key",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"customerKey\": \"\",\n  \"amount\": 0,\n  \"orderId\": \"\",\n  \"orderName\": \"\"\n}" },
            "url": { "raw": "{{baseUrl}}/v1/billing/:billingKey", "host": ["{{baseUrl}}"], "path": ["v1", "billing", ":billingKey"], "variable": [{ "key": "billingKey", "value": "" }] },
            "description": "Approves a recurring payment using a previously issued billing key and matching customerKey."
          }
        }
      ]
    },
    {
      "name": "Virtual Accounts",
      "item": [
        {
          "name": "Issue a virtual account",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"amount\": 0,\n  \"orderId\": \"\",\n  \"orderName\": \"\",\n  \"customerName\": \"\",\n  \"bank\": \"\"\n}" },
            "url": { "raw": "{{baseUrl}}/v1/virtual-accounts", "host": ["{{baseUrl}}"], "path": ["v1", "virtual-accounts"] },
            "description": "Issues a per-order virtual bank account. Deposit events arrive via the DEPOSIT_CALLBACK webhook."
          }
        }
      ]
    },
    {
      "name": "Cash Receipts",
      "item": [
        {
          "name": "Issue a cash receipt",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"amount\": 0,\n  \"orderId\": \"\",\n  \"orderName\": \"\",\n  \"customerIdentityNumber\": \"\",\n  \"type\": \"소득공제\"\n}" },
            "url": { "raw": "{{baseUrl}}/v1/cash-receipts", "host": ["{{baseUrl}}"], "path": ["v1", "cash-receipts"] },
            "description": "Issues a Korean cash receipt for income deduction or expense evidence."
          }
        },
        {
          "name": "Query cash receipts",
          "request": {
            "method": "GET",
            "header": [],
            "url": { "raw": "{{baseUrl}}/v1/cash-receipts?requestDate=2026-07-12&limit=100", "host": ["{{baseUrl}}"], "path": ["v1", "cash-receipts"], "query": [{ "key": "requestDate", "value": "2026-07-12" }, { "key": "limit", "value": "100" }] },
            "description": "Queries issued cash receipts by request date with cursor pagination."
          }
        },
        {
          "name": "Cancel a cash receipt",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"amount\": 0\n}" },
            "url": { "raw": "{{baseUrl}}/v1/cash-receipts/:receiptKey/cancel", "host": ["{{baseUrl}}"], "path": ["v1", "cash-receipts", ":receiptKey", "cancel"], "variable": [{ "key": "receiptKey", "value": "" }] },
            "description": "Cancels a cash receipt in full or in part."
          }
        }
      ]
    },
    {
      "name": "Transactions",
      "item": [
        {
          "name": "Query transactions",
          "request": {
            "method": "GET",
            "header": [],
            "url": { "raw": "{{baseUrl}}/v1/transactions?startDate=2026-07-01T00:00:00&endDate=2026-07-12T00:00:00&limit=100", "host": ["{{baseUrl}}"], "path": ["v1", "transactions"], "query": [{ "key": "startDate", "value": "2026-07-01T00:00:00" }, { "key": "endDate", "value": "2026-07-12T00:00:00" }, { "key": "limit", "value": "100" }] },
            "description": "Queries the transaction ledger over a date range with cursor pagination (up to 5000 records per page)."
          }
        }
      ]
    },
    {
      "name": "Settlements",
      "item": [
        {
          "name": "Query settlements",
          "request": {
            "method": "GET",
            "header": [],
            "url": { "raw": "{{baseUrl}}/v1/settlements?startDate=2026-07-01&endDate=2026-07-12&dateType=soldDate&page=1&size=100", "host": ["{{baseUrl}}"], "path": ["v1", "settlements"], "query": [{ "key": "startDate", "value": "2026-07-01" }, { "key": "endDate", "value": "2026-07-12" }, { "key": "dateType", "value": "soldDate" }, { "key": "page", "value": "1" }, { "key": "size", "value": "100" }] },
            "description": "Queries settlement records by sold date or paid-out date with page-based pagination."
          }
        },
        {
          "name": "Request a manual settlement",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"paymentKey\": \"\"\n}" },
            "url": { "raw": "{{baseUrl}}/v1/settlements", "host": ["{{baseUrl}}"], "path": ["v1", "settlements"] },
            "description": "Requests manual settlement for a paymentKey. Requires an additional contract."
          }
        }
      ]
    },
    {
      "name": "Payouts",
      "item": [
        {
          "name": "Retrieve payout balance",
          "request": {
            "method": "GET",
            "header": [],
            "url": { "raw": "{{baseUrl}}/v2/balances", "host": ["{{baseUrl}}"], "path": ["v2", "balances"] },
            "description": "Returns the funds available for payouts (marketplace payouts v2)."
          }
        },
        {
          "name": "Request payouts",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"payouts\": [\n    {\n      \"refPayoutId\": \"\",\n      \"destination\": \"\",\n      \"amount\": 0\n    }\n  ]\n}" },
            "url": { "raw": "{{baseUrl}}/v2/payouts", "host": ["{{baseUrl}}"], "path": ["v2", "payouts"] },
            "description": "Sends a batch of payout requests to sellers (up to 100 per call)."
          }
        }
      ]
    }
  ]
}
