Gói dịch vụ & thanh toán

Đăng ký cửa hàng - Bước 2: Xác minh OTP

Endpoint công khai xác minh mã OTP, tạo tài khoản (nếu chưa có) và cửa hàng mới ở trạng thái dùng thử

Chỉ có trên Hubport SaaS

Đây là endpoint công khai phục vụ trang đăng ký cửa hàng của Hubport SaaS. Trên bản cài đặt riêng (máy chủ riêng), endpoint trả HTTP 404 error_saas_mode_inactive.

Endpoint

POST /v1/platformsignups/verify

Không cần đăng nhập. Gọi sau Bước 1: Gửi OTP.

Request Body

TênKiểuBắt buộcMô tả
signup_idstringCósignup_id nhận được ở Bước 1
otpstringCóMã OTP 6 chữ số nhận qua email
passwordstringCó- Email chưa có tài khoản Hubport: mật khẩu cho tài khoản mới, tối thiểu 8 ký tự.
- Email đã có tài khoản Hubport: nhập mật khẩu hiện tại của tài khoản đó; cửa hàng mới được thêm vào tài khoản hiện có
{
  "signup_id": "6f1c2a7e-3b9d-4c51-9a8e-2f0b7d4e1c33",
  "otp": "482913",
  "password": "<MAT_KHAU>"
}

Response Schema

HTTP 201 - Created

TrườngKiểuMô tả
company_idintID cửa hàng vừa tạo
trial_ends_atintThời điểm hết hạn dùng thử (Unix timestamp)
{
  "company_id": 1532,
  "trial_ends_at": 1760922000
}

Sau khi tạo thành công, đăng nhập bằng POST /v1/users/authenticatefinish với email, password và company_id vừa nhận để lấy JWT (xem User Login Token). Hubport cũng gửi email chào mừng tới chủ cửa hàng.

Workflow & Logic

  1. Kiểm đăng ký đang mở và phiên đăng ký còn hiệu lực.
  2. Kiểm mã OTP: tối đa 5 lần nhập sai cho mỗi phiên đăng ký; quá số lần thì phiên bị khoá, phải đăng ký lại từ Bước 1.
  3. Email đã có tài khoản: kiểm mật khẩu hiện tại, sau đó kiểm số cửa hàng tối đa mà tài khoản được làm chủ.
  4. Tạo tài khoản (nếu email chưa có tài khoản) và cửa hàng mới; người đăng ký là chủ cửa hàng.
  5. Cửa hàng bắt đầu ở trạng thái dùng thử (trial) với đầy đủ chức năng, kể cả phần trả phí (xem Gói, dùng thử & giới hạn).

Error Codes

HTTPMã lỗiMô tả
403error_signup_disabledHubport đang tạm ngừng nhận đăng ký mới
403error_signup_max_companies_reachedNền tảng tạm thời không nhận thêm cửa hàng mới
404error_signup_not_foundsignup_id không tồn tại, đã hoàn tất, đã bị thay thế bởi lần đăng ký mới hơn hoặc đã thất bại
404error_saas_mode_inactiveKhông phải Hubport SaaS
409error_signup_in_progressPhiên đăng ký đang được xử lý bởi một request khác
410error_otp_expiredMã OTP đã hết hạn, đăng ký lại từ Bước 1
422error_otp_invalidMã OTP sai. detail.attempts_left là số lần thử còn lại
422error_password_requiredThiếu mật khẩu
422error_password_length_invalidMật khẩu tài khoản mới quá ngắn. detail.min_password_length là độ dài tối thiểu, detail.attempts_left là số lần thử còn lại. Nhập lại được với cùng OTP
422error_account_password_invalidEmail đã có tài khoản nhưng mật khẩu hiện tại không đúng. Tính là một lần nhập sai; detail.attempts_left là số lần thử còn lại
422error_company_limit_reachedTài khoản của email này đã làm chủ số cửa hàng tối đa (kèm detail.max_companies_per_user). Chỉ trả khi mật khẩu hiện tại đúng. Phiên đăng ký kết thúc
422error_screenname_existed, ...Dữ liệu đăng ký không còn hợp lệ (vd screenname vừa bị cửa hàng khác sử dụng). Phiên đăng ký kết thúc, phải đăng ký lại từ Bước 1
429error_otp_too_many_attemptsĐã nhập sai quá số lần cho phép, đăng ký lại từ Bước 1
502error_identity_unavailableHệ thống tài khoản tạm thời không phản hồi. Có thể thử lại với cùng signup_id và OTP

Ví dụ OTP sai:

{
  "error": ["error_otp_invalid"],
  "detail": {
    "attempts_left": 3
  }
}

Ví dụ

curl -X POST "https://api.hubport.vn/v1/platformsignups/verify" \
  -H "Content-Type: application/json" \
  -d '{"signup_id":"6f1c2a7e-3b9d-4c51-9a8e-2f0b7d4e1c33","otp":"482913","password":"<MAT_KHAU>"}'

On this page