Câu hỏi thường gặp
Câu hỏi và câu trả lời về Bulk SMS API
39 câu trả lời về tài khoản, gửi tin, giá cả, báo cáo giao nhận và API, được kiểm tra dựa trên các giới hạn trong mã. Đối với các endpoint và trường, Tham khảo API có chi tiết.
Dịch vụ
BulkSMSAPI là gì?
Một API SMS hàng loạt dành cho nhà phát triển: gửi một tin nhắn hoặc một batch lên đến 10,000 số mỗi yêu cầu đến 227 quốc gia qua REST, theo dõi mọi tin nhắn với webhooks được ký và thanh toán cho mỗi tin nhắn từ số dư trả trước. Một console web gửi chiến dịch từ danh sách dán hoặc CSV mà không cần mã.
Ai sử dụng API SMS hàng loạt?
Các nhóm sản phẩm và kỹ thuật gửi tin nhắn từ hệ thống của họ: mã đăng nhập và đăng ký, cập nhật đơn hàng và giao hàng, nhắc lịch hẹn, cảnh báo thanh toán, thông báo dịch vụ và chiến dịch marketing. Bất kỳ ai có thể thực hiện yêu cầu HTTPS đều có thể sử dụng nó.
Tôi có thể gửi đến những quốc gia nào?
227 quốc gia và vùng lãnh thổ, được liệt kê cùng với giá cả trên trang giá và trang quốc gia. Một yêu cầu có thể trộn các quốc gia: mỗi số được định giá theo quốc gia mà nó thuộc về.
Có phí hàng tháng hoặc hợp đồng không?
Không. Bạn thanh toán cho mỗi segment tin nhắn từ số dư trả trước và không có phí hàng tháng, phí thiết lập hoặc khối lượng tối thiểu. Số dư không có ngày hết hạn.
Có bản dùng thử miễn phí không?
Tài khoản bắt đầu với số dư bằng không và lần nạp tiền đầu tiên sẽ mở mọi thứ. Lần nạp tiền đầu tiên thêm một khoản thưởng lên đến 40%, vì vậy các tin nhắn đầu tiên có chi phí thấp hơn. Giá cả được công khai và endpoint ước tính cùng với console hiển thị chi phí chính xác trước khi bất kỳ thứ gì được gửi đi.
Tài khoản và API keys
Làm thế nào để tạo tài khoản?
Mở Get API key. Trình duyệt của bạn sẽ tạo một account key bắt đầu bằng acct_; sao chép hoặc lưu nó dưới dạng tệp văn bản, xác nhận rằng bạn đã lưu nó và tài khoản đã sẵn sàng. Account key là cách đăng nhập duy nhất: không có email hoặc mật khẩu để quản lý.
Điều gì xảy ra nếu tôi mất account key?
Chúng tôi chỉ lưu trữ một hash được mã hóa của nó, vì vậy không ai có thể hiển thị lại nó, kể cả đội hỗ trợ của chúng tôi. Hãy giữ nó trong trình quản lý mật khẩu. Khi bạn vẫn đăng nhập, console tiếp tục hoạt động và bạn có thể liên hệ hỗ trợ từ đó.
Làm thế nào để lấy API key?
Trên trang API keys trong console, sau khi nạp tiền lần đầu được ghi nhận. Đặt tên cho key, tạo và sao chép một lần: key bắt đầu bằng bsa_live_. Mỗi tài khoản có thể có 10 key hoạt động, mỗi key có tên riêng và bộ đếm giới hạn tốc độ.
Tôi có thể dùng key khác nhau cho môi trường production và staging không?
Có. Tạo một key cho mỗi ứng dụng hoặc môi trường và đặt tên cho nó. Mỗi key hiển thị lần cuối được sử dụng, và thu hồi một key không ảnh hưởng đến các key khác.
Tôi có thể tạo bao nhiêu tài khoản?
Tối đa 3 tài khoản trên mỗi địa chỉ mạng. Hầu hết các nhóm chỉ cần một tài khoản với nhiều API key.
Gửi tin nhắn
Một yêu cầu có thể gửi đến bao nhiêu số?
POST /v1/batches xử lý tối đa 10,000 số mỗi yêu cầu, có thể là một nội dung chung hoặc nội dung riêng cho từng số. Console hỗ trợ 50,000 số mỗi chiến dịch. Danh sách lớn hơn sẽ được chia thành nhiều yêu cầu.
Tin nhắn được gửi nhanh như thế nào?
Hàng đợi chạy mỗi 2 giây và xử lý tối đa 1,200 tin nhắn mỗi phút cho mỗi tài khoản, theo thứ tự nhận được. Một tin nhắn đơn lẻ thường được gửi đi trong vài giây sau yêu cầu.
Số điện thoại nên theo định dạng nào?
Định dạng E.164 quốc tế: dấu cộng, mã vùng và số điện thoại, ví dụ +14155550123. Khoảng trắng, dấu gạch ngang, dấu ngoặc và tiền tố 00 sẽ được tự động loại bỏ; các số trùng lặp hoặc không thể đọc được sẽ được đặt sang một bên và không tính phí.
Tin nhắn có thể dài bao nhiêu?
Tối đa 10 segments: 1,530 ký tự GSM-7 hoặc 670 Unicode. Mỗi segment chứa 160 ký tự GSM-7 hoặc 70 Unicode; văn bản dài hơn sẽ được chia thành các phần 153 hoặc 67 ký tự và ghép lại trên điện thoại.
Tại sao tin nhắn của tôi sử dụng nhiều segments hơn dự kiến?
Chỉ cần một ký tự ngoài bảng chữ cái GSM-7, như dấu ngoặc kép, emoji hoặc chữ cái như á, ç, sẽ chuyển toàn bộ văn bản sang Unicode với 70 ký tự mỗi segment. Trình soạn thảo console sẽ chỉ ra các ký tự này, và POST /v1/estimates trả về định dạng mã hóa trước khi gửi.
Tôi có thể lên lịch gửi tin nhắn không?
Có. Thêm send_at vào yêu cầu API, hoặc chọn thời gian trong console, từ 2 phút đến 45 ngày sau. Một lô tin nhắn đã lên lịch có thể hủy cho đến khi bắt đầu gửi, và toàn bộ chi phí sẽ được hoàn lại vào số dư.
Mỗi người nhận có thể nhận nội dung khác nhau không?
Có. Qua API, gửi một lô tin nhắn với cấu trúc {to, text} cho mỗi người nhận. Trong console, dán hoặc tải lên danh sách có cột bổ sung và sử dụng merge fields {{1}} đến {{9}} trong nội dung.
Có thêm dòng từ chối nhận tin vào tin nhắn của tôi không?
Thiết lập nội dung từ chối nhận tin một lần trong Cài đặt, ví dụ liên kết hoặc địa chỉ email, và console sẽ thêm vào chiến dịch khi bạn tích chọn. Qua API bạn kiểm soát toàn bộ nội dung, nên tự thêm dòng này vào tin nhắn marketing. Số trong danh sách không gửi sẽ bị bỏ qua bởi cả console và API, và không tính phí.
Tôi có thể gửi tin nhắn thử trước không?
Có. Console có tính năng gửi thử đến một số trước khi chạy chiến dịch, và qua API bạn có thể gửi một tin nhắn đến điện thoại của mình bằng POST /v1/messages.
Giá cả và thanh toán
Một tin nhắn SMS có giá bao nhiêu?
Tùy thuộc vào quốc gia của số nhận: mỗi nước có một mức giá mỗi segment bằng USD, từ $0.00247 (Brazil). Trang bảng giá và GET /v1/pricing liệt kê tất cả các nước.
Chi phí một lô tin nhắn được tính thế nào?
Với mỗi người nhận: giá mỗi segment của nước đó nhân với số segments trong nội dung. Tổng chi phí được trừ vào số dư khi yêu cầu được chấp nhận, và phản hồi hiển thị trong trường cost.
Nạp tiền tối thiểu là bao nhiêu?
$40. Bạn có thể nạp bất kỳ số tiền nào từ $40 đến $5,000. Lần nạp đầu tiên được tặng thêm tối đa 40%, hiển thị rõ trước khi thanh toán.
Thanh toán như thế nào?
Trong console, mục Billing sẽ mở cửa sổ thanh toán. Bạn chọn số tiền và thanh toán bằng tiền điện tử, trang thanh toán hiển thị chính xác số tiền và địa chỉ. Trang payments liệt kê từng bước.
Tin nhắn gửi thất bại có được hoàn tiền không?
Có. Khi tin nhắn thất bại, số tiền sẽ tự động hoàn về số dư ngay lập tức, hiển thị dòng hoàn tiền trong sổ cái. Lô tin nhắn đã lên lịch nếu hủy sẽ được hoàn tiền đầy đủ.
Tôi có thể rút số dư không?
Số dư dùng để thanh toán tin nhắn và lưu trữ trong tài khoản không có thời hạn. Tiền hoàn lại từ tin nhắn thất bại hoặc hủy cũng sẽ về lại số dư.
Giá có thay đổi không?
Giá có thể thay đổi khi chi phí mạng thay đổi. Danh sách hiện tại có ghi ngày, API trả về ngày với từng mức giá, và tin nhắn đã được chấp nhận giữ nguyên giá lúc gửi.
Báo cáo và trạng thái gửi
Làm sao biết tin nhắn đã gửi thành công?
Mỗi tin nhắn chuyển từ trạng thái queued sang sent rồi delivered hoặc failed. Thêm URL webhook trong console để nhận sự kiện có chữ ký cho mỗi trạng thái cuối, hoặc truy vấn GET /v1/messages/{id} và GET /v1/batches/{id}.
Webhook được ký như thế nào?
Theo chuẩn Standard Webhooks: headers webhook-id, webhook-timestamp và webhook-signature, với chữ ký là HMAC-SHA256 của id, timestamp và body nguyên bản dùng khóa whsec_. Tài liệu có mã xác thực cho Node.js, Python, PHP và Go.
Nếu endpoint webhook bị lỗi thì sao?
Mỗi sự kiện được thử tối đa 10 lần trong 24 giờ, mỗi lần thử đều ghi lại trong console với mã HTTP. Bạn cũng có thể truy vấn endpoint tin nhắn bất cứ lúc nào.
Tại sao tin nhắn gửi thất bại?
Thiết bị có thể tắt quá lâu, số điện thoại không còn hoạt động, hoặc mạng từ chối tin nhắn. Trạng thái failed kèm mã lỗi và số tiền được hoàn lại.
Dữ liệu tin nhắn lưu trữ bao lâu?
Các lô tin nhắn, tin nhắn và sổ cái số dư được lưu trong tài khoản và API. Nhật ký request ghi 500 lần gọi API gần nhất, nhật ký webhook ghi 500 lần gửi gần nhất.
Dành cho nhà phát triển
Có SDK không?
API dùng JSON qua HTTPS nên thư viện chuẩn của mọi ngôn ngữ đều đủ dùng. Tài liệu có đầy đủ mẫu curl, Node.js, Python, PHP và Go, file OpenAPI spec tại /openapi.json sinh client có kiểu cho hầu hết ngôn ngữ.
Giới hạn request là bao nhiêu?
600 request mỗi phút cho mỗi API key. Mỗi phản hồi có headers X-RateLimit-Limit, X-RateLimit-Remaining và X-RateLimit-Reset, phản hồi 429 có thêm Retry-After.
Làm sao thử lại an toàn sau timeout?
Gửi POST request với header Idempotency-Key và thử lại với key đó. Trong 24 giờ, cùng key và body sẽ nhận lại kết quả đầu thay vì gửi lại.
Có thể kiểm tra giá mà không cần API key không?
Có. GET /v1/pricing và GET /v1/pricing/{country} là public, nên trang thanh toán hoặc dashboard có thể hiển thị giá trực tiếp.
Tôi có thể xem những gì mã của tôi đã gửi ở đâu?
Trong console có một nhật ký yêu cầu hiển thị phương thức, đường dẫn, trạng thái và thời gian của 500 lần gọi API gần nhất, bên cạnh các batch, tin nhắn và nhật ký webhook.
Console
Tôi có thể gửi mà không cần viết mã không?
Có. Trong console, bạn có thể dán số điện thoại hoặc tải lên một file CSV với tối đa 50,000 dòng, viết nội dung với các trường hợp nhất, kiểm tra bản xem trước cho từng người nhận và chi phí theo quốc gia, sau đó gửi ngay hoặc đặt lịch gửi.
Console hiển thị những gì?
Số dư, các batch gần đây với số lượng trực tiếp, từng batch với các tin nhắn và trạng thái của nó, nạp tiền và sổ cái, khóa API, cài đặt và giao nhận webhook, nhật ký yêu cầu, bảng giá, vé hỗ trợ và cài đặt.
Tôi liên hệ hỗ trợ như thế nào?
Từ trang Hỗ trợ trong console. Câu hỏi về thanh toán có thể được đặt từ ngày đầu tiên; các chủ đề khác sẽ mở sau khi lần nạp tiền đầu tiên được ghi nhận.
Vẫn còn thắc mắc?
Tài khoản đã đăng nhập có thể mở một vé hỗ trợ từ console. Câu hỏi về thanh toán có thể được đặt từ ngày đầu tiên.