POST /v1/miniapps/qrCode/generate creates a short link that opens one of your Mini Apps on a specific page, with an optional query string. Use it when you need a shareable link at runtime — for a campaign, a receipt, a printed QR code, or a referral — instead of hand-assembling a deep link.
The link is returned in the appQrCode field and can be shared with users directly, unlike the raw qicardwallet:// deep link URI.
| Method | Path |
|---|---|
POST | /v1/miniapps/qrCode/generate |
A message consists of a header and body. The following sections are focused on the body structure. For the header structure, see: OpenAPIs Overview.
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
requestId | string | Yes | Your own unique identifier for this request. | "3488020278850353" |
appId | string | Yes | The Mini App the link should open, from the Miniapps console. | "683288259" |
appQrCodePage | string | Yes | The page within the Mini App. Must start with /. | "/pages/shop/index" |
appQrCodeParams | string | No | Query string passed to the page. | "shopId=1329" |
appQrCodeDesc | string | No | A label for the link, used to identify it later. | "Shop landing page" |
{
"requestId": "3488020278850353",
"appId": "683288259",
"appQrCodePage": "/pages/shop/index",
"appQrCodeParams": "shopId=1329",
"appQrCodeDesc": "Shop landing page"
}
appQrCodePage must start with a forward slash (/). A path such as pages/shop/index is rejected.| Field | Type | Required | Description |
|---|---|---|---|
result | object | Yes | Outcome metadata containing status and error codes. |
appQrCode | string | No | The generated short link. Returned when result.resultStatus is S. |
{
"result": {
"resultCode": "SUCCESS",
"resultStatus": "S",
"resultMessage": "success"
},
"appQrCode": "https://link.qi.iq/ref/d6p57826"
}
| Status | Description |
|---|---|
S | Link generated. Use the value in appQrCode. |
U | Result unknown (resultCode: UNKNOWN_EXCEPTION). Retry with the same requestId, or review Common error codes. |
F | Generation failed. Inspect resultCode and see Common error codes. |
POST /v1/miniapps/qrCode/generate HTTP/1.1
Host: {gateway-host}
Content-Type: application/json; charset=UTF-8
Client-Id: 2021001234567890
Request-Time: 2024-01-01T12:00:00-07:00
Signature: algorithm=RSA256, keyVersion=1, signature={base64Signature}
{"requestId":"3488020278850353","appId":"683288259","appQrCodePage":"/pages/shop/index","appQrCodeParams":"shopId=1329","appQrCodeDesc":"Shop landing page"}
The Signature header is generated over the method, path, client ID, request time and the request body, as described in Signature Generation. For the request above, the sign content is:
POST /v1/miniapps/qrCode/generate
2021001234567890.2024-01-01T12:00:00-07:00.{"requestId":"3488020278850353","appId":"683288259","appQrCodePage":"/pages/shop/index","appQrCodeParams":"shopId=1329","appQrCodeDesc":"Shop landing page"}
GenerateShortLink