Postman collection

Postman can store requests and headers, but HMAC signing must match the exact raw body sent on the wire. For production parity, prefer curl or a small script that signs the same buffer your HTTP client transmits.


Collection JSON

Minimal collection stub:

{
  "info": {
    "name": "Kollect S2S",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Create Payment URL",
      "request": {
        "method": "POST",
        "header": [
          { "key": "Content-Type", "value": "application/json" },
          { "key": "Authorization", "value": "Bearer {{apiKey}}" },
          { "key": "X-Secret-Key", "value": "{{secretKey}}" },
          { "key": "X-API-Key", "value": "{{apiKey}}" },
          { "key": "X-Timestamp", "value": "{{timestamp}}" },
          { "key": "X-Signature", "value": "{{signature}}" },
          { "key": "X-Idempotency-Key", "value": "{{idempotencyKey}}" }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"source\": \"postman-test\",\n  \"clientEmail\": \"[email protected]\",\n  \"clientName\": \"Test\",\n  \"clientWalletAddress\": \"0x1111111111111111111111111111111111111111\",\n  \"countryCode\": \"US\",\n  \"countryName\": \"United States\",\n  \"invoiceCurrency\": \"fUSDC-sepolia\",\n  \"paymentCurrency\": \"fUSDC-sepolia\",\n  \"isSelfIncurredFee\": false,\n  \"items\": [\n    { \"description\": \"Test item\", \"quantity\": 1, \"price\": 1 }\n  ]\n}"
        },
        "url": "{{baseUrl}}/sdk/server/create-payment"
      }
    }
  ],
  "variable": [
    { "key": "baseUrl", "value": "your server url" },
    { "key": "apiKey", "value": "" },
    { "key": "secretKey", "value": "" },
    { "key": "timestamp", "value": "" },
    { "key": "signature", "value": "" },
    { "key": "idempotencyKey", "value": "" }
  ]
}

  1. Fix the raw JSON in the body tab.

  2. Export the exact string or use a pre-request script that writes timestamp, signature, and idempotencyKey from a canonical implementation.

  3. Send the request and confirm 200 with status: true.

For team use, maintain a small CLI (Node or Go) that accepts JSON from stdin and prints the required headers.


Last updated

Was this helpful?