{
  "info": {
    "name": "Ziina API",
    "description": "Ziina payment platform REST API (UAE). Create/retrieve payment intents, refunds, transfers, webhooks, and account. Base URL https://api-v2.ziina.com/api. Auth: HTTP bearer (JWT) via OAuth 2.0 access token. Amounts are in the currency minor unit (fils for AED); minimum 2 AED. Derived from Ziina's published OpenAPI documents on 2026-07-17.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      { "key": "token", "value": "{{ziina_token}}", "type": "string" }
    ]
  },
  "variable": [
    { "key": "baseUrl", "value": "https://api-v2.ziina.com/api", "type": "string" },
    { "key": "ziina_token", "value": "", "type": "string" },
    { "key": "payment_intent_id", "value": "", "type": "string" },
    { "key": "transfer_id", "value": "", "type": "string" },
    { "key": "refund_id", "value": "", "type": "string" }
  ],
  "item": [
    {
      "name": "Payment Intents",
      "item": [
        {
          "name": "Create Payment Intent",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{ziina_token}}", "description": "OAuth 2.0 access token with write_payment_intents scope" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 1000,\n  \"currency_code\": \"AED\",\n  \"message\": \"Order #1234\",\n  \"success_url\": \"https://example.com/success?id={PAYMENT_INTENT_ID}\",\n  \"cancel_url\": \"https://example.com/cancel\",\n  \"failure_url\": \"https://example.com/failure\",\n  \"test\": true,\n  \"allow_tips\": false\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/payment_intent",
              "host": [ "{{baseUrl}}" ],
              "path": [ "payment_intent" ]
            },
            "description": "Create a payment intent. amount is in the currency minor unit (fils for AED); 1000 = 10 AED. Minimum 2 AED. Response includes redirect_url (hosted page) and embedded_url (widget)."
          }
        },
        {
          "name": "Get Payment Intent",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{ziina_token}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/payment_intent/{{payment_intent_id}}",
              "host": [ "{{baseUrl}}" ],
              "path": [ "payment_intent", "{{payment_intent_id}}" ]
            },
            "description": "Retrieve a payment intent by id. status enum: requires_payment_instrument, requires_user_action, pending, completed, failed, canceled."
          }
        }
      ]
    },
    {
      "name": "Refunds",
      "item": [
        {
          "name": "Initiate Refund",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{ziina_token}}", "description": "Requires write_refunds scope" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"11111111-1111-1111-1111-111111111111\",\n  \"payment_intent_id\": \"{{payment_intent_id}}\",\n  \"amount\": 1000,\n  \"currency_code\": \"AED\",\n  \"test\": true\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/refund",
              "host": [ "{{baseUrl}}" ],
              "path": [ "refund" ]
            },
            "description": "Initiate a full or partial refund against a payment intent. id is a client-generated UUID (idempotency key)."
          }
        },
        {
          "name": "Get Refund",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{ziina_token}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/refund/{{refund_id}}",
              "host": [ "{{baseUrl}}" ],
              "path": [ "refund", "{{refund_id}}" ]
            },
            "description": "Retrieve a refund by id. status enum: pending, completed, failed."
          }
        }
      ]
    },
    {
      "name": "Transfers",
      "item": [
        {
          "name": "Initiate Transfer",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{ziina_token}}", "description": "Requires write_transfers scope" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation_id\": \"22222222-2222-2222-2222-222222222222\",\n  \"to_ziinames\": [\"ziina_user\"],\n  \"amount\": 5000,\n  \"currency_code\": \"AED\",\n  \"message\": \"Payout\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/transfer",
              "host": [ "{{baseUrl}}" ],
              "path": [ "transfer" ]
            },
            "description": "Transfer money to Ziina accounts addressed by to_account_ids or to_ziinames. operation_id is a client-generated UUID for idempotent retries."
          }
        },
        {
          "name": "Get Transfer",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{ziina_token}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/transfer/{{transfer_id}}",
              "host": [ "{{baseUrl}}" ],
              "path": [ "transfer", "{{transfer_id}}" ]
            },
            "description": "Retrieve a transfer by id. Caller must be the payer or the receiver."
          }
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "Create Webhook",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Authorization", "value": "Bearer {{ziina_token}}", "description": "Requires write_webhooks scope" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://example.com/webhooks/ziina\",\n  \"secret\": \"your-shared-hmac-secret\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": {
              "raw": "{{baseUrl}}/webhook",
              "host": [ "{{baseUrl}}" ],
              "path": [ "webhook" ]
            },
            "description": "Register a webhook endpoint for payment events. Optional secret enables HMAC signature verification of delivered callbacks."
          }
        },
        {
          "name": "Delete Webhook",
          "request": {
            "method": "DELETE",
            "header": [
              { "key": "Authorization", "value": "Bearer {{ziina_token}}" }
            ],
            "url": {
              "raw": "{{baseUrl}}/webhook",
              "host": [ "{{baseUrl}}" ],
              "path": [ "webhook" ]
            },
            "description": "Delete the registered webhook endpoint for the authenticated account."
          }
        }
      ]
    },
    {
      "name": "Account",
      "item": [
        {
          "name": "Get Account",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Authorization", "value": "Bearer {{ziina_token}}", "description": "Requires read_account scope" }
            ],
            "url": {
              "raw": "{{baseUrl}}/account",
              "host": [ "{{baseUrl}}" ],
              "path": [ "account" ]
            },
            "description": "Retrieve the authenticated account profile: account_id, account_type (personal/business), status, ziiname, display_name, profile_picture_url."
          }
        }
      ]
    },
    {
      "name": "Health Check",
      "item": [
        {
          "name": "Get Status",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/status",
              "host": [ "{{baseUrl}}" ],
              "path": [ "status" ]
            },
            "description": "Service health check."
          }
        }
      ]
    }
  ]
}
