{
  "info": {
    "name": "OneGate API",
    "description": "OneGate public API (v1). Set `secret_key` to a Test key (sk_test_…). `base_url` defaults to production https://api.onegate.am. Every POST sends a fresh Idempotency-Key; refunds require one.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{secret_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.onegate.am"
    },
    {
      "key": "secret_key",
      "value": "sk_test_replace_me"
    },
    {
      "key": "payment_id",
      "value": ""
    },
    {
      "key": "checkout_url",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Payments",
      "item": [
        {
          "name": "Create payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/payments",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "payments"
              ]
            },
            "description": "Returns checkout_url; open it in a browser to pay in test mode.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 12500,\n  \"currency\": \"AMD\",\n  \"order_id\": \"ORD-{{$timestamp}}\",\n  \"description\": \"Postman test\",\n  \"return_url\": \"https://shop.example/orders/1\",\n  \"metadata\": {\n    \"customer_id\": \"cus_100\"\n  }\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.code === 201) { const j = pm.response.json(); pm.collectionVariables.set('payment_id', j.id); pm.collectionVariables.set('checkout_url', j.checkout_url); }"
                ],
                "type": "text/javascript"
              }
            }
          ]
        },
        {
          "name": "List payments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/payments?limit=20",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "payments"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Retrieve payment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/payments/{{payment_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "payments",
                "{{payment_id}}"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Cancel payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/payments/{{payment_id}}/cancel",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "payments",
                "{{payment_id}}",
                "cancel"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}"
            }
          }
        }
      ]
    },
    {
      "name": "Refunds",
      "item": [
        {
          "name": "Refund payment (partial)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/payments/{{payment_id}}/refunds",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "payments",
                "{{payment_id}}",
                "refunds"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 2500,\n  \"reason\": \"customer request\"\n}"
            }
          }
        },
        {
          "name": "List refunds",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/refunds?limit=20",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "refunds"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20"
                }
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Payment links",
      "item": [
        {
          "name": "Create payment link",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/payment-links",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "payment-links"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 5000,\n  \"currency\": \"AMD\",\n  \"description\": \"Gift card\"\n}"
            }
          }
        }
      ]
    },
    {
      "name": "Providers",
      "item": [
        {
          "name": "List provider connections",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/providers",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "providers"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "Create webhook endpoint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/webhook-endpoints",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "webhook-endpoints"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"http://localhost:4242/webhooks/onegate\",\n  \"enabled_events\": []\n}"
            }
          }
        },
        {
          "name": "List webhook endpoints",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/webhook-endpoints",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "webhook-endpoints"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Events",
      "item": [
        {
          "name": "List events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/events?limit=20",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "events"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Events for payment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/events?payment_id={{payment_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "events"
              ],
              "query": [
                {
                  "key": "payment_id",
                  "value": "{{payment_id}}"
                }
              ]
            },
            "description": ""
          }
        }
      ]
    }
  ]
}
