# API Tạo Token

- Anchor: `bankhub-vi-api-tao-token`
- URL: https://developer.sepay.vn/vi/bankhub/api/tao-token.md
- Description: API tạo access token cung cấp bearer token để xác thực cho các API Bank Hub khác. Token có thời gian hiệu lực giới hạn và cần được làm mới khi hết hạn.

**POST** `https://bankhub-api-sandbox.sepay.vn/v1/token`
```http
Authorization: Basic {base64(client_id:client_secret)}
Content-Type: application/json
```


- API này tạo access token để xác thực cho các API Bank Hub khác.
- Token được trả về có thời gian hiệu lực giới hạn (TTL).
- Sử dụng **Basic Authentication** với `client_id` và `client_secret` được SePay cấp.

<!-- Params table -->

> **Lưu ý** (info)
>
> - Sử dụng **Basic Authentication**: Encode chuỗi `client_id:client_secret` thành Base64 và đặt vào header `Authorization: Basic {base64_string}`
> - Gửi request với body rỗng
> - Access token có thời gian hiệu lực theo giá trị `ttl` (tính bằng giây)
> - Khi token hết hạn, cần gọi lại API này để lấy token mới
>

| Code | Name | Description |
|------|------|-------------|
| 401 | Unauthenticated | Client ID hoặc Client Secret không hợp lệ hoặc bị vô hiệu hóa |






**RESPONSE 201**


```json
{
  "code": 201,
  "access_token": "5e79079684d93027ed1d7e414b04543b1d6ef164",
  "ttl": 60000
}
```





**RESPONSE 401 - Lỗi xác thực**


```json
{
  "code": 401,
  "message": "Unauthenticated"
}
```








---

### Sử dụng Access Token

- Sau khi lấy được `access_token`, bạn cần sử dụng nó trong header `Authorization` với format `Bearer` cho tất cả các API Bank Hub khác:


### Làm mới Token

- Token có thời gian hiệu lực giới hạn (được chỉ định bởi trường `ttl`). Khi token hết hạn, các API sẽ trả về lỗi `401 Unauthorized`. Lúc này bạn cần:

- Gọi lại API `/v1/token` để lấy token mới
- Cập nhật token mới vào hệ thống của bạn
- Tiếp tục sử dụng token mới cho các API tiếp theo

> **Lưu ý** (warn)
>
> - Lưu trữ token an toàn, không để lộ ra client-side
> - Implement cơ chế refresh token tự động trước khi hết hạn
> - Xử lý lỗi 401 bằng cách tự động lấy token mới và retry request
>

---
