| Phiên bản | 1.0 |
| Base URL | https://api.example.com/v1 |
| Hệ thống | Hệ thống Xác thực |
| Module | EMAIL - Thông báo Email |
| Ngày tạo | 2026-08-05 |
| Tác giả | Nam Nguyen |
| SRS liên quan | SRS Thông báo Email |
| Yêu cầu SRS | Endpoint API |
|---|---|
| FR-001 Gửi Email Xác minh | RabbitMQ: verification.email |
| FR-002 Gửi lại Email Xác minh | RabbitMQ: verification.email |
| FR-003 Theo dõi Giao Email | POST /api/webhooks/email/delivered |
| FR-004 Ghi log Sự kiện Email | RabbitMQ: log.events |
Các endpoint webhook yêu cầu xác thực chữ ký.
X-Webhook-Signature: HMAC-SHA256 của request body
{
"success": true,
"data": { ... },
"meta": {
"requestId": "req-abc-123",
"timestamp": "2026-07-24T10:30:00Z"
}
}
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Dữ liệu đầu vào không hợp lệ",
"details": [
{ "field": "email", "message": "Định dạng email không hợp lệ" }
]
}
}
| HTTP Status | Mã lỗi | Mô tả |
|---|---|---|
| 400 | EMAIL_001 | Địa chỉ email không hợp lệ |
| 400 | EMAIL_002 | Không tìm thấy mẫu email |
| 502 | EMAIL_003 | Lỗi nhà cung cấp - giao email thất bại |
| 429 | EMAIL_004 | Vượt quá giới hạn tốc độ |
| 401 | EMAIL_005 | Chữ ký webhook không hợp lệ |
| Loại Endpoint | Yêu cầu/phút | Burst |
|---|---|---|
| Endpoint webhook | 100 | 50 |
| Gửi email (mỗi người dùng) | 5 | 2 |
Nhận callback trạng thái giao email từ nhà cung cấp email.
Yêu cầu:
{
"verification_id": "string (bắt buộc)",
"status": "delivered | failed (bắt buộc)",
"provider_message_id": "string (bắt buộc)",
"error_message": "string | null (tùy chọn)"
}
Phản hồi 200:
{
"success": true,
"message": "Webhook đã được xử lý"
}
Phản hồi 400:
{
"success": false,
"error": "Payload webhook không hợp lệ"
}
Tất cả endpoint danh sách hỗ trợ phân trang offset.
GET /email/logs?page=2&limit=20
Hàng đợi cho yêu cầu xác minh email từ module AUTH.
| Sự kiện | Người gửi | Mô tả |
|---|---|---|
| verification.email.requested | AUTH | Người dùng yêu cầu xác minh email |
| verification.email.resent | AUTH | Người dùng gửi lại xác minh email |
{
"user_id": "uuid",
"email": "string",
"channel": "email",
"otp": "string",
"verification_id": "string"
}
Hàng đợi để gửi sự kiện giao email đến module Logger.
| Sự kiện | Người gửi | Mô tả |
|---|---|---|
| email.event.logged | Sự kiện giao email (đã gửi, đã giao, thất bại) |
| Ngày | Phiên bản | Thay đổi |
|---|---|---|
| 2026-07-24 | 1.0.0 | Phát hành ban đầu |