---
agentTools:
  projectIndex: https://paycloud.readme.io/llms.txt
---

# Asymmetric in Access Token B2B

**Asymmetric Signature in B2B Access Token** is used as an authentication mechanism to obtain the B2B Access Token. The generated B2B Access Token will then be used by PayCloud to authenticate requests when sending Payment Notification Version 2 to the partner system.

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/b270c4265a87f13b3d5e8d4f84fba61ac927a13c8c0307065bb5d2fca901d46e-Generate_Signature_Asymmetric.png",
        "",
        ""
      ],
      "align": "center"
    }
  ]
}
[/block]

***

Access Token B2B API header consists of the following fields:

## Request Header

[block:parameters]
{
  "data": {
    "h-0": "Field Name",
    "h-1": "Field Type",
    "h-2": "Field Description",
    "0-0": "Content-Type",
    "0-1": "String (Required)",
    "0-2": "Type of the content.",
    "1-0": "X-TIMESTAMP",
    "1-1": "String (Required)",
    "1-2": "Using ISO 8601 as timestamp format.  \nTransaction date time, in format YYYYMMDDTHH:mm:ss+07:00.  \nTime must be in GMT+7 (Jakarta time).",
    "2-0": "X-SIGNATURE",
    "2-1": "String (Required)",
    "2-2": "Created using asymmetric signature SHA256withRSA algorithm.  \n  \nSHA256withRSA(PrivateKey, **StringToSign**).  \n**\\*StringToSign** = client_ID+\"|\"+X-TIMESTAMP",
    "3-0": "X-CLIENT-KEY",
    "3-1": "String (Required)",
    "3-2": "Client’s client_id (given at the completion registration process)"
  },
  "cols": 3,
  "rows": 4,
  "align": [
    "left",
    "left",
    "left"
  ]
}
[/block]

<br />

Steps to get the **X-SIGNATURE** :

[block:parameters]
{
  "data": {
    "h-0": "No",
    "h-1": "Steps",
    "0-0": "1",
    "0-1": "Private Key Merchant:  \n  \n\\-----BEGIN RSA PRIVATE KEY-----  \nMIIBOgIBAAJBALJ2TeBT8RwskUV4tVUvEgOpkf+HNet3AqG9PtqEqqixIIGJ+O5C  \ngeoEmg6fO2gQ1Z0InaajuvL2JAMTRiPokwcCAwEAAQJAUEozfUKmzmMqtJO7GWkE  \n9MrcmZcOZjJz56qJ1awsT5onTvVjC42QPLrwIle2k3yGTk0MlVrgqzX9f5YCQWFP  \niQIhAPIkqwxzMNq8uSQBtouPniOadgUlnujnx4Ww0IU6z+h7AiEAvKy5rSJ1wQfP  \nuJTBOeb9efDU2hrDLnVK3WBfuCfCx+UCIENhmsubHmQwEiEH7QFHFM15hRAHmQHc  \nxbPZMR1x8TsTAiBFyZnQWYu2v53sx1EFitQ9M4B3wChr2cS8R7aAFmzspQIhANOz  \ncv7BIB5HKrRxO+kOAfgNcv0/dS4kTUSSjFtzaylF  \n-----END RSA PRIVATE KEY-----",
    "1-0": "2",
    "1-1": "Given merchant wants to create a request with header:  \n**Content-type**: application/json  \n**X-TIMESTAMP**: 2024-07-06T14:12:50+07:00  \n**X-CLIENT-KEY**: PaycloudSnap",
    "2-0": "3",
    "2-1": "**X-SIGNATURE** value for encryption will be:  \nPaycloudSnap|2024-07-06T14:12:50+07:00  \n  \n\\*same value as **X-CLIENT-KEY** + “**\\|**” + **X-TIMESTAMP**",
    "3-0": "4",
    "3-1": "By using merchant’s private key to encrypt the value with SHA256withRSA algorithm, merchant will generate  \nfV5O/+eJPo8hrzZXG84YyEA9e7M6kUHAMAaTOG8s3n5nN2y7bJ55bV9Qmq9h6j0qXAEZVOja3iplIdwFtJ88PAl+psZGy3L0nfNWF3ZoTJzSLt71+/S1MuwyTSi7lirjHnd3t4kQx/F+6LDmyxjo4yeLcphWUFjPakvvjR2DU9A="
  },
  "cols": 2,
  "rows": 4,
  "align": [
    "left",
    "left"
  ]
}
[/block]

<br />

```json Final Result
Content-type :	application/json
X-TIMESTAMP  :	2025-07-06T14:12:50+07:00
X-SIGNATURE  :	fV5O/+eJPo8hrzZXG84YyEA9e7M6kUHAMAaTOG8s3n5nN2y7bJ55bV9Qmq9h6j0qXAEZVOja3iplIdwFtJ88PAl+psZGy3L0nfNWF3ZoTJzSLt71+/S1MuwyTSi7lirjHnd3t4kQx/F+6LDmyxjo4yeLcphWUFjPakvvjR2DU9A=
X-CLIENT-KEY :	PaycloudSnap
```