# Digital Signatures

### Digital Signature

## This endpoint is used to sign the request body and generate the digital signature.

<mark style="color:green;">`POST`</mark> `https://exchanger-api.fuspay.finance/api/v1/no-auth/PartnerP2P/SignRequestSha512/`

The object is signed without including the signature field. Also sign exactly the fields that would be posted to the endpoint

<mark style="color:red;">**Please make sure we have whitelisted all your IPs**</mark>

<mark style="color:red;">**Only Collection or Order creation requires using of merchant secret and partner secret all other request to be signed are to be signed using partner secret alone**</mark>&#x20;

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |

#### Request Body

| Name                                                     | Type   | Description                                                            |
| -------------------------------------------------------- | ------ | ---------------------------------------------------------------------- |
| partner\_order\_id<mark style="color:red;">\*</mark>     | String | the order id on partners end                                           |
| amount\_to\_collect<mark style="color:red;">\*</mark>    | String | the amount to be collected                                             |
| timestamp<mark style="color:red;">\*</mark>              | String | the time the order was created                                         |
| order\_expiration<mark style="color:red;">\*</mark>      | String | the time the order would expire                                        |
| currency<mark style="color:red;">\*</mark>               | String | the currency of collection eg GHS, NGN                                 |
| partner\_callback\_url<mark style="color:red;">\*</mark> | String | the url where payment confirmation would be posted                     |
| partner\_redirect\_url                                   | String | partners site where users would be redirected after successful payment |
| secret<mark style="color:red;">\*</mark>                 | String | merchant and partner secret. The keys are concatenated                 |
| intrapay\_merchant\_id                                   | String | Your Id on the intrapay app                                            |
| partner\_id                                              | String | Your partner id returned on the onboard endpoint                       |

#### Sample code

{% tabs %}
{% tab title="NodeJs" %}

```javascript
const request = require('request');


const options = {
  method: 'POST',
  url: 'https://exchanger-api.fuspay.finance/api/v1/no-auth/PartnerP2P/SignRequestSha512',
  headers: {'Content-Type': 'application/json'},
  body: {
    partner_order_id: 'FUSPAY-00400-001-091-008',
    amount_to_collect: '30',
    timestamp: 1693285902419,
    order_expiration: 1693285902419,
    intrapay_merchant_id: "",
    partner_id: ""
    currency: 'NGN',
    partner_callback_url: 'https://webhook.site/xxxxxxxx',
    partner_redirect_url: 'https://google.com',
    secret: '4LJDHGA-SJTECNA-XXXX-XXXXsk_partner_ph25sjy-qtfeoxy-rqbvzyq-z-xx'
  },
  json: true
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fuspay.finance/collection/digital-signatures.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
