# Lấy Token

> Mỗi request API được xác thực bằng **Token API** ở header `Token` (một số API cần thêm `ShopId`). Bạn tự lấy token trong vài phút ngay trên Developer Portal, ở mục **Quản lý token** của tài khoản — không cần nhờ GHN cấp.

## Đăng nhập ở đâu

| Môi trường | URL |
| --- | --- |
| Production | https://developer.ghn.vn |
| Staging | https://developer.ghn.dev |

## Các bước

1. Mở Developer Portal của môi trường tương ứng, bấm nút **Đăng nhập** ở góc phải header.

![Trang chủ Developer Portal với nút Đăng nhập ở góc phải header](https://developer.ghn.dev/docs-assets/token/step-1-developer-home.png)

2. Đăng nhập bằng số điện thoại rồi qua bước xác thực.

![Màn hình đăng nhập: nhập số điện thoại, hoặc chọn Google, Apple, tài khoản nội bộ GHN](https://developer.ghn.dev/docs-assets/token/step-1-login.png)

3. Sau khi đăng nhập, mở menu tài khoản ở góc phải header rồi chọn [Quản lý token](/account).

![Menu tài khoản mở ra với mục Quản lý token, Cấu hình webhook và Đăng xuất](https://developer.ghn.dev/docs-assets/token/step-3-account-menu.png)

4. Ở thẻ **Token API**, bấm **biểu tượng con mắt**. Hệ thống gửi mã OTP 6 chữ số về số điện thoại của tài khoản; nhập mã đó thì token hiện ra, bấm **biểu tượng copy** để sao chép.

![Thẻ Token API sau khi nhập OTP, token đã hiện rõ và nút copy đã bật](https://developer.ghn.dev/docs-assets/token/step-4-token-revealed.png)

5. Tuỳ chọn nhưng nên làm: giới hạn máy chủ được dùng token bằng cách thêm IP vào **Danh sách IP được phép sử dụng** ngay dưới thẻ Token API. Danh sách còn trống thì mọi IP đều gọi được; thêm IP đầu tiên vào là chỉ những IP đó gọi được — nhớ thêm đủ IP của tất cả máy chủ trước khi lên production.

6. Cần nhận callback trạng thái đơn hoặc ticket? Cũng trong menu tài khoản, chọn [Cấu hình webhook](/account/webhook) là bạn tự khai endpoint được — xem [Callback trạng thái đơn](https://developer.ghn.dev/vi/docs/webhook/callback-order-status.md).

## Cách dùng

```bash
curl -X GET "https://online-gateway.ghn.vn/shiip/public-api/master-data/province" \
  -H "Token: <token-cua-ban>" \
  -H "ShopId: <shop-id-cua-ban>"
```

## Lưu ý

- **Giữ token bí mật** — coi như mật khẩu. Đừng commit vào git hay để lộ trong code phía trình duyệt.
- **Staging và Production là hai tài khoản riêng biệt**, token riêng. Token của `developer.ghn.dev` không dùng được cho Production.
- Mặc định token gọi được từ mọi IP. Muốn chắc hơn thì thêm IP công khai của máy chủ vào danh sách IP được phép sử dụng — khi danh sách đã có IP, chỉ những IP đó mới gọi được API.
- Một số API cần thêm `ShopId` — bạn xem trong thông tin tài khoản của mình.
