{
  "info": {
    "name": "BitPal API - پرداخت",
    "description": "مجموعه درخواست‌های API بیتپل برای تست سریع ایجاد و پیگیری پرداخت.\n\nنحوه استفاده:\n1. در داشبورد مرچنت از منوی «کلیدهای API» یک کلید بسازید.\n2. Public Key را در متغیر api_key بگذارید.\n3. درخواست ایجاد پرداخت را با هدر X-API-KEY ارسال کنید.\n4. از payment_id برای پیگیری وضعیت استفاده کنید.\n\nنکته: برای ساخت پرداخت از Bearer JWT استفاده نکنید؛ فقط X-API-KEY لازم است.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://bitpal.pro",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "pk_",
      "type": "string"
    },
    {
      "key": "payment_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "jwt_token",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "پرداخت",
      "item": [
        {
          "name": "ایجاد پرداخت",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-KEY",
                "value": "{{api_key}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 100,\n  \"currency\": \"USDT\",\n  \"network\": \"BEP20\",\n  \"order_id\": \"order_123\",\n  \"callback_url\": \"https://yoursite.com/callback\",\n  \"description\": \"خرید محصول X\",\n  \"customer_phone\": \"09123456789\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/api/v1/payment/create",
              "host": ["{{base_url}}"],
              "path": ["api", "v1", "payment", "create"]
            },
            "description": "ساخت پرداخت USDT. پس از ارسال موفق، آدرس کیف پول و payment_url دریافت می‌شود.\n\nاحراز هویت: هدر X-API-KEY با Public Key ساخته‌شده در داشبورد.\n\nفیلدهای الزامی:\n- amount: مبلغ (حداقل 0.0001)\n- currency: USDT\n- network: ERC20 | TRC20 | BEP20\n- order_id: شناسه سفارش شما\n- callback_url: URL ذخیره روی پرداخت (مقصد webhook نیست؛ وبهوک از تنظیمات داشبورد می‌آید)\n- customer_phone: اختیاری؛ برای ارسال پیامک تأیید پرداخت\n\nبرای BEP20، پرداخت باید روی BNB Smart Chain انجام شود و آدرس با 0x شروع می‌شود."
          },
          "response": [],
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "var jsonData = pm.response.json();",
                  "if (jsonData.payment_id) {",
                  "    pm.collectionVariables.set('payment_id', jsonData.payment_id);",
                  "} else if (jsonData.payment && jsonData.payment.payment_id) {",
                  "    pm.collectionVariables.set('payment_id', jsonData.payment.payment_id);",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ]
        },
        {
          "name": "ثبت شماره مشتری برای پیامک",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"09123456789\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/api/v1/payment/{{payment_id}}/customer-phone",
              "host": ["{{base_url}}"],
              "path": ["api", "v1", "payment", "{{payment_id}}", "customer-phone"]
            },
            "description": "ثبت شماره تماس اختیاری مشتری برای ارسال پیامک پس از تأیید پرداخت روی شبکه."
          },
          "response": []
        },
        {
          "name": "ثبت TX Hash مشتری برای بررسی دستی",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tx_hash\": \"0x...\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/api/v1/payment/{{payment_id}}/transaction-hash",
              "host": ["{{base_url}}"],
              "path": ["api", "v1", "payment", "{{payment_id}}", "transaction-hash"]
            },
            "description": "ثبت هش تراکنش توسط مشتری برای بررسی دستی ادمین. این هش تا زمان تأیید ادمین، تراکنش تأییدشده محسوب نمی‌شود."
          },
          "response": []
        },
        {
          "name": "دریافت وضعیت پرداخت",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/payment/{{payment_id}}",
              "host": ["{{base_url}}"],
              "path": ["api", "v1", "payment", "{{payment_id}}"]
            },
            "description": "مشاهده جزئیات و وضعیت یک پرداخت با شناسه آن.",
            "auth": {
              "type": "noauth"
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "داشبورد مرچنت",
      "item": [
        {
          "name": "استعلام دستی پرداخت",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{jwt_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/dashboard/payments/{{payment_id}}/check",
              "host": ["{{base_url}}"],
              "path": ["api", "v1", "dashboard", "payments", "{{payment_id}}", "check"]
            },
            "description": "استعلام دستی پرداخت‌های pending، awaiting_confirmations یا expired. این درخواست حتی بعد از پایان grace period نیز تراکنش را بررسی می‌کند و در صورت موفقیت، ادامه فرایند confirmation و تسویه طبق روال سیستم انجام می‌شود."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Admin payment review",
      "item": [
        {
          "name": "Admin blockchain inspection",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{jwt_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/admin/payments/{{payment_id}}/check",
              "host": ["{{base_url}}"],
              "path": ["api", "v1", "admin", "payments", "{{payment_id}}", "check"]
            },
            "description": "Inspect the payment on the selected network without auto-confirming it."
          },
          "response": []
        },
        {
          "name": "Admin manual transaction confirmation",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{jwt_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tx_hash\": \"0x...\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/api/v1/admin/payments/{{payment_id}}/confirm",
              "host": ["{{base_url}}"],
              "path": ["api", "v1", "admin", "payments", "{{payment_id}}", "confirm"]
            },
            "description": "After the admin validates the customer hash in the network explorer, this endpoint confirms the payment and runs the existing ledger, settlement, webhook, payout, and SMS flow."
          },
          "response": []
        }
      ]
    }
  ]
}
