POST/api/public/access-request/email/start-verification

Gửi mã xác nhận gồm 6 chữ số, có hiệu lực trong 10 phút đến địa chỉ email đã cung cấp — bước đầu tiên trước khi nộp đơn truy cập.

`POST /api/public/access-request/email/start-verification` bắt đầu xác minh email cho một yêu cầu cấp quyền truy cập công khai. Request không cần đăng nhập và chứa địa chỉ cần kiểm tra trong trường body `email`. Khi xử lý thành công, hệ thống sẽ gửi một mã xác nhận gồm sáu chữ số, có hiệu lực trong mười phút. Response chứa `ok`, một `verification_id`, `expires_in_minutes` và `resend_cooldown_seconds`. `verification_id` phải được sử dụng cùng với chính địa chỉ email đó và mã đã nhận trong route Verify tiếp theo. Đây không phải là token đăng nhập và không được lưu làm mã định danh người dùng lâu dài hoặc ghi nhật ký công khai. Endpoint này không idempotent. Nhiều lần gọi thành công có thể tạo ra nhiều quy trình xác minh hoặc mã mới. Vì vậy, áp dụng giới hạn nghiêm ngặt theo IP là mười yêu cầu trong vòng 15 phút. Ngoài ra, phản hồi còn cho biết thời gian khóa gửi lại là 60 giây. Trong thời gian này, giao diện không được kích hoạt gửi lại và cần hiển thị rõ ràng thời gian chờ còn lại. Nếu vượt quá giới hạn, route sẽ trả về `429 RATE_LIMIT_EXCEEDED`. Nếu mã không thể được gửi do lỗi phân phối, `502 MAIL_NOT_SENT` được ghi nhận trong tài liệu. Các trường hợp này cần được xử lý riêng: giới hạn tần suất được giải quyết bằng cách chờ, còn lỗi email đòi hỏi một địa chỉ có thể nhận thư và việc gửi thư hoạt động bình thường. Thông tin bí mật hoặc dữ liệu nội bộ của máy chủ email không được đưa vào thông báo lỗi. Trường hợp thành công đã được xác minh trực tiếp với một `verification_id` thật. Tin nhắn tương ứng được nhận qua một máy chủ Fake-SMTP riêng và mã sáu chữ số được đọc từ nội dung email thực tế. Ngoài ra, trường hợp phủ định 429 cũng đã được quan sát sau các lần gọi lặp lại. Chỉ chính bằng chứng này mới được nêu ra; điều đó chưa có nghĩa là một yêu cầu cấp quyền truy cập hoặc một giao dịch thanh toán đã hoàn tất thành công.

Xác thực & bảo mật

Không cần xác thực

strictLimiter: 10 yêu cầu / 15 phút, liên kết IP.

Giới hạn tần suất: 10 Anfragen pro 15 Minuten (IP-basiert)

Lũy đẳng (idempotent): Không

Tham số

email(body, string, bắt buộc)— Địa chỉ email cần xác minh

Request mẫu

{"email":"max@example.com"}

Response mẫu

{"ok":true,"verification_id":"<UUID>","expires_in_minutes":10,"resend_cooldown_seconds":60}

Mã lỗi

429 RATE_LIMIT_EXCEEDED — Quá nhiều yêu cầu gửi đến điểm cuối nhạy cảm này.
502 MAIL_NOT_SENT — Không thể gửi mã xác nhận (lỗi gửi email).

Bằng chứng kiểm thử trực tiếp

Thành công (200, verification_id thực tế) đã được xác minh trực tuyến; email liên quan đã nhận qua server SMTP giả của riêng mình, mã 6 chữ số được trích xuất từ nội dung email thực tế. Trường hợp lỗi 429 được quan sát sau nhiều lần gọi.

← Biểu mẫu công khai