{
  "schemaVersion": 1,
  "title": "CoinsSend merchant request signature test vectors",
  "description": "Public interoperability fixtures. The API key values are examples and are not credentials.",
  "contract": {
    "encoding": "UTF-8",
    "canonicalization": "For a non-empty JSON object or array, decode it and encode it with PHP json_encode default flags. The empty request body canonicalizes to the empty string.",
    "payload_base64": "base64(canonical_body)",
    "legacy": "md5(payload_base64 + api_key)",
    "timestamped": "hmac_sha256(payload_base64 + '.' + timestamp, api_key)"
  },
  "vectors": [
    {
      "name": "legacy-pretty-unicode-url",
      "raw_body": "{\n  \"order_id\": \"vector-1001\",\n  \"amount\": \"25.00\",\n  \"success_url\": \"https://merchant.example/success\",\n  \"note\": \"Привет\"\n}",
      "canonical_body": "{\"order_id\":\"vector-1001\",\"amount\":\"25.00\",\"success_url\":\"https:\\/\\/merchant.example\\/success\",\"note\":\"\\u041f\\u0440\\u0438\\u0432\\u0435\\u0442\"}",
      "payload_base64": "eyJvcmRlcl9pZCI6InZlY3Rvci0xMDAxIiwiYW1vdW50IjoiMjUuMDAiLCJzdWNjZXNzX3VybCI6Imh0dHBzOlwvXC9tZXJjaGFudC5leGFtcGxlXC9zdWNjZXNzIiwibm90ZSI6Ilx1MDQxZlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzNVx1MDQ0MiJ9",
      "api_key": "test-api-key",
      "legacy_md5": "ee23bd97b681bd03b5e8db35b0d223e2"
    },
    {
      "name": "timestamped-withdrawal",
      "raw_body": "{\"network\":\"tron\",\"coin\":\"usdt\",\"amount\":\"7.5\",\"to_address\":\"TRzuVhFMYp5vLbrtDbEqd8ioXbTMwCdDHu\"}",
      "canonical_body": "{\"network\":\"tron\",\"coin\":\"usdt\",\"amount\":\"7.5\",\"to_address\":\"TRzuVhFMYp5vLbrtDbEqd8ioXbTMwCdDHu\"}",
      "payload_base64": "eyJuZXR3b3JrIjoidHJvbiIsImNvaW4iOiJ1c2R0IiwiYW1vdW50IjoiNy41IiwidG9fYWRkcmVzcyI6IlRSenVWaEZNWXA1dkxicnREYkVxZDhpb1hiVE13Q2RESHUifQ==",
      "api_key": "test-api-key",
      "timestamp": "1716200000",
      "legacy_md5": "2bb88f3d39dc1732498424809aa01de6",
      "timestamped_hmac_sha256": "cd1b9c388a9cbcfde0479e0c30de58d86a182e007a6c0b7b68ad282f37f8f5e7"
    },
    {
      "name": "empty-get",
      "raw_body": "",
      "canonical_body": "",
      "payload_base64": "",
      "api_key": "test-api-key",
      "legacy_md5": "6339da7207f32bfc28decb98edf89318"
    }
  ]
}
