> For the complete documentation index, see [llms.txt](https://docs.rocketfuel.inc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rocketfuel.inc/developer-guides/api-reference/payins/utility-apis/shopper/shopper-manual-login.md).

# Shopper manual login

A shopper should log in to the RKFL system to make and track the payment. The RKFL system provides a seamless login experience with shopper SSO login.

In any case, if SSO is not successful, the RKFL supports a manual login process. The merchant website should display a login form similar to the attached screenshot and ask the shopper to enter the credentials and log in.

![](/files/p8HvkKp6n6HsS2DG29AC)

The register API accepts data in an encrypted format. The encryption algorithm is RSA, and the encryption key is the merchant's "Public Key."

```
// The key "encryptedReq" should generate from the below way.
export const encryptedReq = async (toEncrypt, publicKey) => {
  const buffer = Buffer.from(toEncrypt);
  const encrypted = crypto.publicEncrypt(publicKey, buffer);
  return encrypted.toString('base64');
};
```

<mark style="color:green;">`POST`</mark> `/auth/signin`

#### Headers

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

#### Request Body

| Name         | Type   | Description      |
| ------------ | ------ | ---------------- |
| encryptedReq | String | Encrypted string |

{% tabs %}
{% tab title="200: OK Success" %}

```javascript
{
  "ok": true,
  "result": {
    "access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRiNmJkMTZhLTIyZjUtNDExYS1hN2U0LTEwY2Q3ODcxMzU1YiIsImlhdCI6MTY1NTk4MjQ4MCwiZXhwIjoxNjU1OTg0MjgwfQ.aKnfIs_KnRSASZC8C1GYJCLZsA7pbhPc8QX9ql7Xf08",
    "refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRiNmJkMTZhLTIyZjUtNDExYS1hN2U0LTEwY2Q3ODcxMzU1YiIsImlhdCI6MTY1NTk4MjQ4MCwiZXhwIjoxNjU1OTg0MjgwfQ.aKnfIs_KnRSASZC8C1GYJCLZsA7pbhPc8QX9ql7Xf08",
    "status": 1
  }
}
```

{% endtab %}

{% tab title="401: Unauthorized Unauthorized" %}

```javascript
{
    "ok": false,
    "statusCode": 401,
    "data": {},
    "message": "Incorrect email and password pair"
}
```

{% endtab %}
{% endtabs %}
