# Changelog

Thay đổi của API, máy chủ MCP, SDK và tài liệu dành cho developer, mới nhất trước.

## 2026-10-28

- **Quyền:** `domains:registrant` (mới, chỉ token cá nhân) cho bốn route [hồ sơ chủ thể tên miền](/docs/domain-registrant), tách khỏi `domains:owner`; `domains:write` đổi nhãn "Đăng ký, gia hạn và quản lý tên miền"; `orders:write` (mới) cho [báo giá](/docs/api/post-quote), [giỏ hàng](/docs/api/post-carts) và [đặt đơn](/docs/api/post-order) — đặt đơn trừ số dư cần thêm `billing:write`.

## 2026-10-27

- **Identity & SSO:** access token và ID token OAuth có hạn mặc định 86400 giây (24 giờ), không phải 3600: sửa ở [Đăng nhập bằng Tino](/docs/oauth), [Đăng nhập từ CLI](/docs/cli-login), [MCP](/docs/mcp), [SDK](/docs/sdk). Vẫn đọc `expires_in` của mỗi câu trả lời thay vì ghi cứng.
- **TinoPay, TinoPage Builder, TinoWAF:** gateway `/v1` mở các route của ba dịch vụ cho token ứng dụng OAuth và token API cá nhân, quyền mới `tinopay:read`, `tinopay:write`, `tinopay:owner` (chỉ token cá nhân), `builder:read`, `builder:write`, `waf:read`, `waf:write`: bảng ở [Đăng nhập bằng Tino](/docs/oauth), [Bắt đầu với TinoPay](/docs/tinopay-start), [Bắt đầu với TinoPage Builder](/docs/builder-start).
- **Máy chủ MCP:** trang [Kết nối Claude, ChatGPT với Tino (MCP)](/docs/mcp): ứng dụng MCP khác đăng nhập OAuth bằng cách tự đăng ký client (`POST https://api.tino.vn/oauth/register`, RFC 7591); token API cá nhân là phương án thay thế. Claude Code nhận diện bằng Client ID Metadata Document, mặc định xin đủ các quyền máy chủ MCP liệt kê, gồm cả quyền ghi.
- **Identity & SSO:** trang mới [Đăng nhập từ CLI và ứng dụng không có backend](/docs/cli-login): ứng dụng tự đăng ký (`POST https://api.tino.vn/oauth/register`, RFC 7591), đăng nhập bằng mã thiết bị (RFC 8628: `POST /oauth/device_authorization`, khách nhập mã ở `https://auth.tino.vn/oauth/device`, CLI hỏi `POST /oauth/token`), ví dụ bash, Node.js, Python. Trang [Đăng nhập bằng Tino](/docs/oauth) thêm hai endpoint mới và grant `urn:ietf:params:oauth:grant-type:device_code`.
- **Domains:** trang mới [Hồ sơ chủ thể tên miền](/docs/domain-registrant) và 4 route: [tên miền chờ hoàn tất hồ sơ](/docs/api/get-domains-pending), [xem](/docs/api/get-domains-id-registrant) và [lưu chủ thể](/docs/api/put-domains-id-registrant) của tên miền đang chờ, [chủ thể đã dùng](/docs/api/get-registrants); cả bốn cần `domains:owner` (chỉ token API cá nhân), số giấy tờ trong `reason` được che. Tra whois gọi được cả qua `/v1` bằng token: [`GET /v1/whois/{domain}`](/docs/api/get-v1-whois-domain).
- **TinoWAF, TinoPay, MCP:** mục API [TinoWAF](/docs/waf): 19 route `/v1/service/{id}/waf/…` (website, mức bảo vệ, chống tấn công khẩn cấp, tên miền, máy chủ gốc, nhật ký sự kiện, chặn hoặc cho phép IP), quyền `waf:read`, `waf:write`. TinoPay thêm 9 route: [cấu trúc mã thanh toán](/docs/api/tinopay-get-pay-codes), [tích hợp Sapo](/docs/api/tinopay-get-sapo-integrations), [nhật ký đối soát Sapo](/docs/api/tinopay-get-sapo-order-logs). Trang [MCP](/docs/mcp) thêm tool của 6 quyền TinoPay, TinoPage Builder, TinoWAF.

## 2026-10-26

- **Tên miền:** trang [Tra whois tên miền](/docs/api/get-whois-domain) (`GET https://api.tino.vn/whois/<tên miền>`): route công khai, không cần token; cách đọc `available`, `error`, `raw` khi bị giới hạn tần suất.
- **TinoPage Builder:** mục mới: [Bắt đầu với TinoPage Builder](/docs/builder-start) và trang cho 14 route của API dịch vụ `https://api.tino.vn/service/<id>/builder/…` (tổng quan tài khoản và hạn mức, website, tạo website bằng AI, đăng, tạm ngưng, xoá, tên miền riêng, liên hệ và đơn hàng, vé đăng nhập một lần), gọi bằng token đăng nhập của chủ dịch vụ.

## 2026-10-24

- **Tino Uptime:** mục mới: [Bắt đầu với Tino Uptime](/docs/uptime-start) và trang cho 20 route của API dịch vụ `https://api.tino.vn/service/<id>/uptime/…` (gói, mức dùng, monitor, uptime, kết quả kiểm, sự cố, kênh cảnh báo), gọi bằng token đăng nhập của chủ dịch vụ.

## 2026-10-22

- **TinoPay:** route merchant bỏ tiền tố `/v2/services`, nay là `https://api.tino.vn/service/<id>/tinopay/…`; đường cũ trả 404 `invalid method`. Thêm 11 route: [thông báo Telegram, Zalo, Lark](/docs/tinopay-notifications) và [API token](/docs/tinopay-start#api-token). Nhận diện dịch vụ TinoPay theo `product_type` (`tinopay`) thay cho tên dịch vụ; đặt timeout ít nhất 100 giây ([Bắt đầu với TinoPay](/docs/tinopay-start)).

## 2026-10-21

- **Tài liệu:** developers.tino.vn có trang cho từng route của gateway `/v1` (tham số, ví dụ cURL, JavaScript, PHP, SDK, mẫu response), [API Reference](/docs/reference) theo sản phẩm, [OpenAPI 3.1](/openapi.json), `llms.txt` và bản Markdown của mọi trang.
- **Tài liệu:** thêm trang [Kết nối Claude, ChatGPT với Tino (MCP)](/docs/mcp), [Token API cá nhân](/docs/personal-tokens), [SDK & Ví dụ](/docs/sdk), [Môi trường thử nghiệm](/docs/sandbox).
- **Tài liệu:** mục TinoPay: [Bắt đầu với TinoPay](/docs/tinopay-start), [Nhận webhook TinoPay](/docs/tinopay-webhook) và trang cho từng route của API merchant TinoPay.

## 2026-10-20

- **Đăng nhập bằng Tino:** OAuth 2.0 Authorization Code + PKCE (S256) và OpenID Connect; issuer `https://api.tino.vn`, trang đăng nhập và đồng ý `https://auth.tino.vn/oauth/consent`. Xem [Đăng nhập bằng Tino](/docs/oauth).
- **Gateway `/v1`:** gọi API thay khách ở `https://api.tino.vn/v1/<route>`; mỗi route cần một quyền, ngoài quyền trả 403 `insufficient_scope`. Xem [Gọi API Tino](/docs/api).
- **Token API cá nhân** (`tinopat_`): khách tạo ở `https://auth.tino.vn/me/security`, chọn quyền, hạn dùng, giới hạn IP; quyền `domains:owner` chỉ token cá nhân có và bắt buộc giới hạn IP.
- **Máy chủ MCP** `https://api.tino.vn/mcp`: Claude, Claude Code, ChatGPT đăng nhập OAuth; ứng dụng MCP khác dùng token cá nhân. Không có tool huỷ dịch vụ.

## SDK 1.2.0 (2026-10-13)

- Nhóm `backorder`: đấu giá tên miền .vn. Bản 1.2.0 có trên PyPI; npm và Packagist đang ở 1.1.0.

## SDK 1.1.0 (2026-08-04)

- Xác minh số điện thoại của tài khoản; mã gửi qua Zalo, số chưa có Zalo thì qua SMS.

## SDK 1.0.0 (2026-08-02)

- SDK Python, Node.js, PHP và tài liệu hợp đồng cho từng thao tác: [tinovn/tino-sdk](https://github.com/tinovn/tino-sdk).
