# Signature

The Signature is calculated based on the `timestamp`, `request body` and your `Secret Key` with HMAC hash using SHA256 Algorithm.&#x20;

Here is an example on how to generate the Signature for `otp` type with `Secret Key=12345ABCDE`, `timestamp=1706191612` and following request body:

```json
{
  "type": "otp",
  "data": {
    "code": "1234",
    "msisdn": "+260977223120"
  }
}
```

In order to generate the Signature all spaces must be removed from the request body:

```json
{"type":"otp","data":{"code":"1234","msisdn":"+260977223120"}}
```

{% hint style="info" %}
Please note that the order of the fields matters for calculating the signature. It will always be `type` first then `data`. Fields in `data` must be in the same order they are listed on doc pages for types.
{% endhint %}

Then message for HMAC algorithm has to be formed using following template:

```
{timestamp}{request body with removed spaces}
```

So the message should look like the following:

```
1706191612{"type":"otp","data":{"code":"1234","msisdn":"+260977223120"}}
```

The computed Signature for this request is:

```
46b1ec8d2a05129bb57c8256f2cdd3029b2cf72dbed57f0d3eedd6b156573433
```

A free online HMAC Generator for testing is available on <https://www.freeformatter.com/hmac-generator.html#before-output>.&#x20;

Here is how we calculated the Signature from above example using **Free Formatter**

<figure><img src="https://2027057513-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKuxm6ysd27rN14uEAtGy%2Fuploads%2Fes42zt6oRO8i8Zv0tDAp%2Fimage.png?alt=media&#x26;token=52ab6c3a-d81e-45c1-89f1-bb07f43d4c8d" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Your `Secret Key` is located on your API Settings page. Login to Betstack to access your `Secret Key`
{% endhint %}

<figure><img src="https://2027057513-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKuxm6ysd27rN14uEAtGy%2Fuploads%2Fe5aGzX5mkTtACXh9j4Ee%2Fsecret-Key.png?alt=media&#x26;token=7a7a76a8-c5ea-4821-986f-e015fb624c4b" alt=""><figcaption><p>Secret Key is locate in API Settings profile page</p></figcaption></figure>
