> For the complete documentation index, see [llms.txt](https://docs.cwallet.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cwallet.com/cwallet-tools/giveaway/how-to-verify-app-installs-with-callback-verification.md).

# How to Verify App Installs with Callback Verification

**Follow the steps to enable the callback verification:**

**Step 1**

Enter the name of your app and at least one of download URLs for the Apple App Store and Google Play Store, and the Android APK URL.&#x20;

<figure><img src="/files/z61DUiiocCRytdfD7NSd" alt=""><figcaption></figcaption></figure>

**Step 2**

After that, you will need to get deep link params (something like <mark style="color:green;">track\_id=4wmmHtD4rSA</mark>) from your app and parse out the trackId.

<figure><img src="/files/HUGKAoWI4TV25FFDIWH7" alt=""><figcaption></figcaption></figure>

<mark style="color:blue;">**About track\_id:**</mark>

* TrackId is necessary to detect the user's participation in the task and to verify it. We will detect when a user clicks to participate in the task, the <mark style="color:green;">?trackId={{trackId}}</mark> will be used for detection.
* You will see the <mark style="color:green;">?trackId={{trackId}}\&send={{download}}</mark> applied to your app deep link:

If your app deep link is

<figure><img src="/files/s5qBgts41zNcBsQELwow" alt=""><figcaption></figcaption></figure>

the users may open your app via the link

<figure><img src="/files/Tr49UF0VoJeQh2JCHQUr" alt=""><figcaption></figcaption></figure>

**Step 3**

Next, please copy the API key we provide you to integrate it with your app.

<figure><img src="/files/orwIPbQMU3NFQj0EHC40" alt=""><figcaption></figcaption></figure>

Then enter the parameters according to the rules of const data, and encrypt the whole const data using the standard **HmacSHA256** algorithm.

<figure><img src="/files/VhMRKGjcsHUmd6zHSul7" alt=""><figcaption></figcaption></figure>

**Note:** Remark is optional.

**Step 4**

Use our official API below and pass the corresponding parameters in the following code.

**Official API:** <https://cwallet.com/cctip/v1/giveaway/task/callback>

```javascript
const { track_id, send } = queryString.parse(deepLink.search); // your deepLink params

const remark = "remark"; // optional

const event = "app_download";

const data = `track_id=${track_id}&event=${event}&remark=${remark}`; // optional

const sign = crypto.HmacSHA256(data, api_key).toString(); // HmacSHA256

fetch("https://cwallet.com/public/v1/giveaway/task/callback", {
method: "POST",
headers: {
"Content-Type": "application/json",
},

body: JSON.stringify({
track_id,
sign,
event,
remark,
}),
}).then(async (res) => {
console.log(await res.json());
});
```

**Step 5**

After the above steps are completed, enter your url-scheme and click the ‘**Check API callback**’ to test it.

<figure><img src="/files/YvDaoN7QCNz2KUa2KxLB" alt=""><figcaption></figcaption></figure>

**Note:**

Each project you created on Cwallet Giveaway Tool will have a unique API key, and it will not change. Additionally, each app must be integrated separately.
