{
  "info": {
    "name": "Xash Payments v1",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "Start with a sandbox application token and verified test phone. Run one charge at a time; await handset approval and confirmed success before refunding."
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{application_token}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://payments.xash.co.zw/api/v1"
    },
    {
      "key": "application_token",
      "value": ""
    },
    {
      "key": "test_phone",
      "value": ""
    },
    {
      "key": "reference",
      "value": "order-1042"
    },
    {
      "key": "payment_id",
      "value": ""
    },
    {
      "key": "refund_id",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Create payment",
      "request": {
        "method": "POST",
        "url": "{{base_url}}/payments",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "{{reference}}-collection"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"reference\": \"{{reference}}\",\n  \"method\": \"ecocash\",\n  \"amount_minor\": 100,\n  \"currency\": \"USD\",\n  \"customer\": {\n    \"phone\": \"{{test_phone}}\"\n  },\n  \"description\": \"Sandbox integration test\"\n}"
        }
      }
    },
    {
      "name": "Read payment",
      "request": {
        "method": "GET",
        "url": "{{base_url}}/payments/{{payment_id}}",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ]
      }
    },
    {
      "name": "Recover by reference",
      "request": {
        "method": "GET",
        "url": "{{base_url}}/payments/by-reference/{{reference}}",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ]
      }
    },
    {
      "name": "Check provider status",
      "request": {
        "method": "POST",
        "url": "{{base_url}}/payments/{{payment_id}}/verify",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ]
      }
    },
    {
      "name": "Request full refund",
      "request": {
        "method": "POST",
        "url": "{{base_url}}/payments/{{payment_id}}/refunds",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "{{reference}}-refund"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"reason\": \"Integration test refund\"\n}"
        }
      }
    },
    {
      "name": "Read refund",
      "request": {
        "method": "GET",
        "url": "{{base_url}}/refunds/{{refund_id}}",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ]
      }
    }
  ]
}
