# Authentication API

<details>

<summary>API Specification</summary>

* URL: \<API\_GATEWAY>/api/partnership/v1/login
* Method: POST
* Description: Authentication API for Booker and PreBooker
* Security requirement: [Encrypt data and include a digital signature.](https://developer.gotadi.com/english/corporate-agent-partner-ca/security-requirements)

</details>

<details>

<summary>Request</summary>

Signature data schema

ACCESSCODE|agencyInfo.partnerRefCode|userInfo.partnerRefCode|userInfo.email|userInfo.phoneNumber

Example:

```json
{
    "agencyInfo": {
        "partnerRefCode": "CHI_NHANH_123",
        "fullName": "Chi nhanh Sai Gon",
        "shortName": "Cty X, Chi nhanh Sai Gon",
        "taxCode": "123456",
        "faxNumber": "123456",
        "phoneNumber": "0123456789",
        "address": "194 Nguyen Thi Minh Khai, Phuong 17, Quan Phu Nhuan",
        "email": "user_y@partner_x.com",
        "representativeName": "Nguyen Van A",
        "representativePhone": "0123456789",
        "representativeEmail": "user_y@partner_x.com",
        "extends": {
            "key": "value",
            "key1": "value1"
        }
    },
    "userInfo": {
        "partnerRefCode": "USER_123",
        "firstName": "Nguyen",
        "lastName": "Van A",
        "address": "194 Nguyen Thi Minh Khai, Phuong 17, Quan Phu Nhuan",
        "email": "user_y@partner_x.com",
        "phoneNumber": "0932909474",
        "roles": [
            "BOOKER", "PRE_BOOKER"
        ],
        "extends": {
            "key": "value",
            "key1": "value1"
        }
    },
    "signature": "..."
}
```

</details>

<details>

<summary>Response</summary>

#### Example

```json
{
    "url": "https://uat-v2-vendor.gotadi.com/?merchant_code=A::1_29001&access_token=...",
    "signature": "...",
    "errorCode": "00"
}
```

</details>

<details>

<summary>HTTP Code</summary>

* &#x20;400: Bad Request
* 401: Unauthorized
* 403: Forbidden
* 404: Not Found
* 500: Unknown Internal Error
* 503: Service Unavailable

</details>
