{
  "info": {
    "_postman_id": "a7e5e500-aeses-public-api-0000-000000000001",
    "name": "Aeses API",
    "description": "Official Postman collection for the Aeses public API. Authentication uses the `x-api-key` header — set your key in the `apiKey` variable on the environment. The `baseUrl` defaults to the production endpoint; switch environments to point at sandbox.\n\nPOST requests include an `Idempotency-Key` header pre-populated with Postman's `{{$guid}}` dynamic variable, which generates a fresh UUID on every send.\n\nFull reference: https://docs.aeses.io",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "x-api-key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{apiKey}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.aeses.io",
      "type": "string",
      "description": "API base URL. Override per environment."
    },
    {
      "key": "apiKey",
      "value": "sk_live_replace_me",
      "type": "string",
      "description": "Secret API key sent in the x-api-key header. Replace with your sk_live_… or sk_test_… key. Override per environment for separate dev/prod values."
    }
  ],
  "item": [
    {
      "name": "Deposits",
      "description": "Create deposit intents, retrieve them by ID, and list with filters. Funds sent to the returned address credit the merchant balance.",
      "item": [
        {
          "name": "Create a deposit",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Unique key for safe retries. Postman auto-generates a UUID on each send via {{$guid}}."
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"asset\": \"USDT\",\n  \"chain\": \"ethereum\",\n  \"amount\": \"99.50\",\n  \"reference_id\": \"ord_4421\",\n  \"webhook_url\": \"https://example.com/webhooks/aeses\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/v1/deposits",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deposits"
              ]
            },
            "description": "Creates a new deposit intent. The response includes a fresh single-use address. Always send Idempotency-Key."
          },
          "response": []
        },
        {
          "name": "Retrieve a deposit",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/deposits/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deposits",
                ":id"
              ]
            },
            "description": "Fetch a single deposit by its ID."
          },
          "response": []
        },
        {
          "name": "List deposits",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/deposits?status=completed&asset=USDC&limit=25",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deposits"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "completed"
                },
                {
                  "key": "asset",
                  "value": "USDC"
                },
                {
                  "key": "limit",
                  "value": "25"
                }
              ]
            },
            "description": "Paginated list of deposits ordered by created_at desc. Combine filters and pagination."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Withdrawals",
      "description": "Initiate on-chain transfers from the merchant balance. Balance is debited atomically and refunded on failure.",
      "item": [
        {
          "name": "Create a withdrawal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Unique key for safe retries. Postman auto-generates a UUID on each send via {{$guid}}."
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"asset\": \"USDT\",\n  \"chain\": \"ethereum\",\n  \"amount\": \"150.00\",\n  \"address\": \"0xRecipientAddress0123456789abcdef01234567\",\n  \"fee_mode\": \"added\",\n  \"reference_id\": \"payout_8821\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/v1/withdrawals",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "withdrawals"
              ]
            },
            "description": "Initiates an on-chain transfer. Always send Idempotency-Key to prevent accidental double-spends on retry."
          },
          "response": []
        },
        {
          "name": "Retrieve a withdrawal",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/withdrawals/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "withdrawals",
                ":id"
              ]
            },
            "description": "Fetch a single withdrawal by its ID."
          },
          "response": []
        },
        {
          "name": "List withdrawals",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/withdrawals?status=completed&limit=25",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "withdrawals"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "completed"
                },
                {
                  "key": "limit",
                  "value": "25"
                }
              ]
            },
            "description": "Paginated list of withdrawals."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Balances",
      "description": "Read the merchant internal balances per (asset, chain).",
      "item": [
        {
          "name": "List balances",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/balances",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "balances"
              ]
            },
            "description": "Returns all non-zero balances across supported (asset, chain) pairs."
          },
          "response": []
        },
        {
          "name": "Retrieve a balance",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/balances/:asset",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "balances",
                ":asset"
              ]
            },
            "description": "Fetch a single balance by asset code (e.g. USDT, BTC)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Assets",
      "description": "Supported assets and chains.",
      "item": [
        {
          "name": "List supported assets",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/assets",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "assets"
              ]
            },
            "description": "Machine-readable list of supported (asset, chain) combinations."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Webhook Deliveries",
      "description": "Inspect and replay webhook deliveries. Each delivery represents one attempt to POST an event to your endpoint.",
      "item": [
        {
          "name": "List deliveries",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/webhook-deliveries?status=failed&limit=25",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhook-deliveries"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "failed"
                },
                {
                  "key": "limit",
                  "value": "25"
                }
              ]
            },
            "description": "Paginated list of deliveries. Filter by status to triage failures."
          },
          "response": []
        },
        {
          "name": "Retrieve a delivery",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/webhook-deliveries/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhook-deliveries",
                ":id"
              ]
            },
            "description": "Fetch a single delivery by its ID."
          },
          "response": []
        },
        {
          "name": "Replay a delivery",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Unique key for safe retries. Postman auto-generates a UUID on each send via {{$guid}}."
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"endpoint_url\": \"https://example.com/webhooks/aeses\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/v1/webhook-deliveries/:id/replay",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhook-deliveries",
                ":id",
                "replay"
              ]
            },
            "description": "Re-sends a previous webhook event. Creates a new delivery with its own ID and attempt = 1."
          },
          "response": []
        }
      ]
    }
  ]
}
