{
  "info": {
    "name": "sheypay Payment API v1.0.0",
    "description": "API پرداخت شی‌پی. همه مبالغ به **ریال** و به صورت عدد صحیح هستند (۱ تومان = ۱۰ ریال). هر پاسخ هدر `X-Request-Id` دارد؛ آن را در گزارش خطا به پشتیبانی اعلام کنید.\n\nGenerated from the OpenAPI document. Amounts are integer Rials.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.sheypay.ir"
    },
    {
      "key": "apiKey",
      "value": "sk_test_REPLACE_ME"
    },
    {
      "key": "paymentId",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Payments",
      "item": [
        {
          "name": "ایجاد پرداخت",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "idempotency-key",
                "value": "{{$guid}}",
                "disabled": true
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "payments"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 1500000,\n  \"callback_url\": \"https://shop.example.ir/payment/callback\",\n  \"description\": \"خرید سفارش ۱۰۴۲\",\n  \"merchant_reference\": \"ORDER-1042-1\",\n  \"mobile\": \"09121234567\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "یک پرداخت می‌سازد و آدرس صفحه پرداخت را برمی‌گرداند. برای جلوگیری از ایجاد تکراری در retryها هدر `Idempotency-Key` را ارسال کنید. با کلید `sk_test_` پرداخت در محیط آزمایشی (MockPSP) انجام می‌شود و پول واقعی جابه‌جا نمی‌شود."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 201) pm.collectionVariables.set('paymentId', pm.response.json().payment.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "فهرست پرداخت‌ها / استعلام با شناسه سفارش",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "payments"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "merchant_reference",
                  "value": "ORDER-1042-1",
                  "disabled": true
                },
                {
                  "key": "from",
                  "value": "",
                  "disabled": true,
                  "description": "از تاریخ (ISO 8601)"
                },
                {
                  "key": "to",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "مقدار next_cursor از پاسخ قبلی"
                }
              ]
            },
            "description": "با `merchant_reference` همان پرداختی که دقیقاً با این شناسه ساخته شده برگردانده می‌شود (حداکثر یک مورد؛ تطبیق دقیق). `merchant_reference` در هر درگاه و حالت یکتاست؛ برای تلاش دوباره پس از پرداخت ناموفق، شناسه را با پسوند تلاش بسازید (مثلاً `ORDER-1042-2`) و هر تلاش را جداگانه استعلام کنید. بدون این پارامتر، فهرست به ترتیب جدیدترین است و با `cursor` صفحه‌بندی می‌شود."
          }
        },
        {
          "name": "استعلام پرداخت",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/payments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "payments",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "{{paymentId}}"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "تأیید پرداخت (verify)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/payments/:id/verify",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "payments",
                ":id",
                "verify"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "{{paymentId}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 1500000\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "پس از بازگشت مشتری و پیش از تحویل کالا/خدمت این متد را صدا بزنید. تا زمانی که verify نشود مبلغ قابل تسویه نیست و پس از پایان `verify_deadline_at` به‌صورت خودکار به مشتری برگشت داده می‌شود. این متد idempotent است: فراخوانی تکراری نتیجه قبلی را با `already_verified: true` برمی‌گرداند."
          }
        },
        {
          "name": "برگشت پرداخت (reverse)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/payments/:id/reverse",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "payments",
                ":id",
                "reverse"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "{{paymentId}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"مرجوعی کالا\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "پرداخت موفقی را که هنوز تسویه نشده لغو و وجه را به کارت مشتری برمی‌گرداند. فقط در صورتی که PSP مربوطه از reverse پشتیبانی کند."
          }
        },
        {
          "name": "استرداد وجه",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "idempotency-key",
                "value": "{{$guid}}",
                "disabled": false
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/payments/:id/refunds",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "payments",
                ":id",
                "refunds"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "{{paymentId}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 1500000,\n  \"reason\": \"مرجوعی کالا\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "استرداد کامل یا جزئی یک پرداخت تأییدشده. هدر `Idempotency-Key` الزامی است."
          }
        },
        {
          "name": "تاریخچه رویدادهای پرداخت",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/payments/:id/events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "payments",
                ":id",
                "events"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "{{paymentId}}"
                }
              ]
            },
            "description": ""
          }
        }
      ]
    }
  ]
}
