{
  "info": {
    "name": "DOKU Payment API",
    "description": "DOKU (PT Nusa Satu Inti Artha) payment APIs for Indonesia. Covers the non-SNAP hosted Checkout API and Bank Indonesia SNAP endpoints (access token, Virtual Account, Direct Debit / e-Wallet, QRIS, Kirim payout). Checkout uses Client-Id + Request-Id + Request-Timestamp + HMAC-SHA256 Signature headers; SNAP uses an asymmetric SHA256withRSA access token followed by HMAC-SHA512 transaction signatures. Modeled from developers.doku.com (July 2026). All amounts in IDR.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "baseUrl", "value": "https://api-sandbox.doku.com", "type": "string" },
    { "key": "clientId", "value": "BRN-0000-0000000000000", "type": "string" },
    { "key": "requestId", "value": "{{$guid}}", "type": "string" },
    { "key": "requestTimestamp", "value": "2026-07-17T00:00:00Z", "type": "string" },
    { "key": "signature", "value": "HMACSHA256=REPLACE_WITH_COMPUTED_SIGNATURE", "type": "string" },
    { "key": "partnerId", "value": "REPLACE_WITH_PARTNER_ID", "type": "string" },
    { "key": "externalId", "value": "{{$guid}}", "type": "string" },
    { "key": "timestamp", "value": "2026-07-17T00:00:00+07:00", "type": "string" },
    { "key": "clientKey", "value": "REPLACE_WITH_CLIENT_KEY", "type": "string" },
    { "key": "snapSignature", "value": "REPLACE_WITH_SNAP_SIGNATURE", "type": "string" },
    { "key": "accessToken", "value": "REPLACE_WITH_ACCESS_TOKEN", "type": "string" }
  ],
  "item": [
    {
      "name": "Checkout",
      "item": [
        {
          "name": "Create Checkout Payment",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Client-Id", "value": "{{clientId}}" },
              { "key": "Request-Id", "value": "{{requestId}}" },
              { "key": "Request-Timestamp", "value": "{{requestTimestamp}}" },
              { "key": "Signature", "value": "{{signature}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/checkout/v1/payment",
              "host": ["{{baseUrl}}"],
              "path": ["checkout", "v1", "payment"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"order\": {\n    \"amount\": 50000,\n    \"invoice_number\": \"INV-20260717-001\",\n    \"currency\": \"IDR\"\n  },\n  \"payment\": {\n    \"payment_due_date\": 60\n  },\n  \"customer\": {\n    \"name\": \"Budi Santoso\",\n    \"email\": \"budi@example.co.id\"\n  }\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Generate a DOKU-hosted checkout page. Returns response.payment.url and response.payment.token_id. Non-SNAP HMAC-SHA256 header signature."
          }
        }
      ]
    },
    {
      "name": "SNAP Access Token",
      "item": [
        {
          "name": "Get B2B Access Token",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "X-CLIENT-KEY", "value": "{{clientKey}}" },
              { "key": "X-TIMESTAMP", "value": "{{timestamp}}" },
              { "key": "X-SIGNATURE", "value": "{{snapSignature}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/authorization/v1/access-token/b2b",
              "host": ["{{baseUrl}}"],
              "path": ["authorization", "v1", "access-token", "b2b"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"grantType\": \"client_credentials\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Mint a 15-minute SNAP B2B Bearer token. X-SIGNATURE is SHA256withRSA over 'clientId|X-TIMESTAMP'."
          }
        }
      ]
    },
    {
      "name": "Virtual Account",
      "item": [
        {
          "name": "Create Virtual Account",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{accessToken}}" },
              { "key": "X-PARTNER-ID", "value": "{{partnerId}}" },
              { "key": "X-EXTERNAL-ID", "value": "{{externalId}}" },
              { "key": "X-TIMESTAMP", "value": "{{timestamp}}" },
              { "key": "X-SIGNATURE", "value": "{{snapSignature}}" },
              { "key": "CHANNEL-ID", "value": "H2H" }
            ],
            "url": {
              "raw": "{{baseUrl}}/virtual-accounts/bi-snap-va/v1.1/transfer-va/create-va",
              "host": ["{{baseUrl}}"],
              "path": ["virtual-accounts", "bi-snap-va", "v1.1", "transfer-va", "create-va"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"partnerServiceId\": \"   88899\",\n  \"customerNo\": \"00000000001\",\n  \"virtualAccountNo\": \"   8889900000000001\",\n  \"virtualAccountName\": \"Budi Santoso\",\n  \"trxId\": \"INV-20260717-001\",\n  \"totalAmount\": {\n    \"value\": \"50000.00\",\n    \"currency\": \"IDR\"\n  },\n  \"virtualAccountConfig\": {\n    \"reusableStatus\": false\n  }\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Create a SNAP BI-SNAP virtual account. HMAC-SHA512 transaction signature."
          }
        },
        {
          "name": "Inquiry Virtual Account Status",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{accessToken}}" },
              { "key": "X-PARTNER-ID", "value": "{{partnerId}}" },
              { "key": "X-EXTERNAL-ID", "value": "{{externalId}}" },
              { "key": "X-TIMESTAMP", "value": "{{timestamp}}" },
              { "key": "X-SIGNATURE", "value": "{{snapSignature}}" },
              { "key": "CHANNEL-ID", "value": "H2H" }
            ],
            "url": {
              "raw": "{{baseUrl}}/virtual-accounts/bi-snap-va/v1.1/transfer-va/inquiry",
              "host": ["{{baseUrl}}"],
              "path": ["virtual-accounts", "bi-snap-va", "v1.1", "transfer-va", "inquiry"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"partnerServiceId\": \"   88899\",\n  \"customerNo\": \"00000000001\",\n  \"virtualAccountNo\": \"   8889900000000001\",\n  \"inquiryRequestId\": \"{{externalId}}\"\n}",
              "options": { "raw": { "language": "json" } }
            }
          }
        }
      ]
    },
    {
      "name": "Direct Debit & e-Wallet",
      "item": [
        {
          "name": "Account Binding (e-Wallet)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{accessToken}}" },
              { "key": "X-PARTNER-ID", "value": "{{partnerId}}" },
              { "key": "X-EXTERNAL-ID", "value": "{{externalId}}" },
              { "key": "X-TIMESTAMP", "value": "{{timestamp}}" },
              { "key": "X-SIGNATURE", "value": "{{snapSignature}}" },
              { "key": "CHANNEL-ID", "value": "H2H" }
            ],
            "url": {
              "raw": "{{baseUrl}}/direct-debit/core/v1/registration-account-binding",
              "host": ["{{baseUrl}}"],
              "path": ["direct-debit", "core", "v1", "registration-account-binding"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phoneNo\": \"628123456789\",\n  \"redirectUrl\": \"https://merchant.example.co.id/callback\",\n  \"additionalInfo\": {\n    \"channel\": \"DIRECT_DEBIT_OVO_SNAP\"\n  }\n}",
              "options": { "raw": { "language": "json" } }
            }
          }
        },
        {
          "name": "Debit Payment Host-to-Host",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{accessToken}}" },
              { "key": "X-PARTNER-ID", "value": "{{partnerId}}" },
              { "key": "X-EXTERNAL-ID", "value": "{{externalId}}" },
              { "key": "X-TIMESTAMP", "value": "{{timestamp}}" },
              { "key": "X-SIGNATURE", "value": "{{snapSignature}}" },
              { "key": "CHANNEL-ID", "value": "H2H" }
            ],
            "url": {
              "raw": "{{baseUrl}}/direct-debit/core/v1/debit/payment-host-to-host",
              "host": ["{{baseUrl}}"],
              "path": ["direct-debit", "core", "v1", "debit", "payment-host-to-host"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"partnerReferenceNo\": \"INV-20260717-001\",\n  \"amount\": {\n    \"value\": \"50000.00\",\n    \"currency\": \"IDR\"\n  },\n  \"additionalInfo\": {\n    \"channel\": \"EMONEY_OVO_SNAP\"\n  }\n}",
              "options": { "raw": { "language": "json" } }
            }
          }
        }
      ]
    },
    {
      "name": "QRIS",
      "item": [
        {
          "name": "Generate QRIS (MPM)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{accessToken}}" },
              { "key": "X-PARTNER-ID", "value": "{{partnerId}}" },
              { "key": "X-EXTERNAL-ID", "value": "{{externalId}}" },
              { "key": "X-TIMESTAMP", "value": "{{timestamp}}" },
              { "key": "X-SIGNATURE", "value": "{{snapSignature}}" },
              { "key": "CHANNEL-ID", "value": "H2H" }
            ],
            "url": {
              "raw": "{{baseUrl}}/snap-adapter/b2b/v1.0/qr/qr-mpm-generate",
              "host": ["{{baseUrl}}"],
              "path": ["snap-adapter", "b2b", "v1.0", "qr", "qr-mpm-generate"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"partnerReferenceNo\": \"INV-20260717-001\",\n  \"amount\": {\n    \"value\": \"50000.00\",\n    \"currency\": \"IDR\"\n  },\n  \"merchantId\": \"REPLACE_WITH_MERCHANT_ID\",\n  \"validityPeriod\": \"2026-07-17T01:00:00+07:00\"\n}",
              "options": { "raw": { "language": "json" } }
            }
          }
        }
      ]
    },
    {
      "name": "Kirim Payout",
      "item": [
        {
          "name": "Transfer to Bank (Disbursement)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{accessToken}}" },
              { "key": "X-PARTNER-ID", "value": "{{partnerId}}" },
              { "key": "X-EXTERNAL-ID", "value": "{{externalId}}" },
              { "key": "X-TIMESTAMP", "value": "{{timestamp}}" },
              { "key": "X-SIGNATURE", "value": "{{snapSignature}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/payout/kirim-doku/transfer-bank",
              "host": ["{{baseUrl}}"],
              "path": ["payout", "kirim-doku", "transfer-bank"]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"partnerReferenceNo\": \"PAYOUT-20260717-001\",\n  \"beneficiaryBankCode\": \"014\",\n  \"beneficiaryAccountNo\": \"1234567890\",\n  \"amount\": {\n    \"value\": \"100000.00\",\n    \"currency\": \"IDR\"\n  },\n  \"remark\": \"Vendor settlement\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "description": "Disburse funds to a recipient bank account via Kirim DOKU. Authenticated with the SNAP B2B Bearer token."
          }
        }
      ]
    }
  ]
}
