{
  "opencollection": "1.0.0",
  "info": {
    "name": "ZeroSettle IAP Cancel Flow User Offer API",
    "version": "1.0.0"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "X-ZeroSettle-Key",
      "value": "{{X-ZeroSettle-Key}}",
      "placement": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "User Offer",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get User Offer",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.zerosettle.io/v1/iap/user-offer",
            "params": [
              {
                "name": "user_id",
                "value": "",
                "type": "query",
                "description": "The user's external ID."
              }
            ]
          },
          "docs": "Canonical offer + subscription-state resolver (SDK 1.2+). Returns the user's current subscription variant plus exactly one offer decision (`no_action`, `migrate_storekit_to_web`, `upgrade_storekit_to_web`, or `upgrade_web_to_web`). Replaces the overlapping `/iap/products/` offer config, `/iap/upgrade-offer/`, and ad-hoc status parsing with a single typed contract. Legacy endpoints remain supported for older SDKs."
        }
      ]
    }
  ],
  "bundled": true
}