SMS OTP là hình thức gửi mã xác thực (verify) bằng tin nhắn SMS. Cũng là hình thức được sử dụng phổ biến nhất hiện nay. Mã OTP sẽ gồm số và chữ được gửi bằng SMS về số điện thoại đã đăng ký. Hệ thống xác minh phải được lập trình tích hợp và nhập mã OTP thì mới có thể thực hiện các giao thức tiếp theo như: đăng ký tài khoản, xác minh giao dịch, mật khẩu…
MẪU API CỦA DỊCH VỤ SMS OTP
Mã OTP sẽ được tạo ngẫu nhiên, chỉ sử dụng được 1 lần duy nhất và có thời hạn sử dụng ngắn (30s, 60s). Mô hình chung:

Mô tả chung:
- Khách hàng sử dụng điện thoại gởi tin nhắn lên tổng đài theo cú pháp do bên ĐỐI TÁC tự chọn (ví dụ: DT [khoảng cách] [các tham số]…).
- Khi tin nhắn đến được tổng đài , hệ thống sẽ request webservices của ĐỐI TÁC. ĐỐI TÁC có thể tạo webservices theo dạng SOAP (wsdl) hoặc đơn giản nhất là sử dụng dạng GET (http).
- ĐỐI TÁC xử lý và trả kết quả về là nội dung tin nhắn cần gởi cho khách hàng (MT).
- Hệ thống Gateway nhận được kết quả trả về từ ĐỐI TÁC sẽ gởi nội dung đó xuống điện thoại khách hàng.
QUY TRÌNH TÍCH HỢP
Đối tác được cung cấp thông tin code mẫu, tài khoản demo để tiến hành dựng api và test thử nghiệm. Khi nhận được kết quả tin nhắn trả về (không kể đúng sai – miễn là có kết quả trả về) thì api được xem là đúng. Việc còn lại chờ đăng ký mã OTP và cấu hình lại cho chính xác dịch vụ.

Các bước thực hiện:
- ĐỐI TÁC tiến hành code webservices và gởi định dạng link api, miêu tả chi tiết cho chúng tôi.
- Chúng tôi tiến hành mở đầu số OTP và test thử.
- Chúng tôi gởi link và account web report cho ĐỐI TÁC.
- Chúng tôi cung cấp IP server sử dụng webservices để phía ĐỐI TÁC filter, chỉ cho phép IP của chúng tôi sử dụng webservices.
Gợi ý viết webservices:
Cách dễ nhất để viết webservices dùng dạng GET như sau: http://doitac.com/apisms/?id=0&phone=84938877236&shortcode=xxxx&gateway=vtlxxxx&sms=454e4249454e20313233343536&checksum=c404225e8cee5468aa8c257b4ce7268f
Trong đó:
Id: là message_id là số định danh cho 1 tin nhắn lên của khách hàng (id=0 là tin nhắn test từ hệ thống của chúng tôi).
Phone: là số điện thoại khách hàng.
Shortcode: là đầu số mà khách hàng nhắn lên.
Gateway: là định danh cho nhà mạng.
SMS: là nội dung tin nhắn của khách hàng nhắn lên. Tin nhắn phải được mã hóa hexa để loại trừ các trường hợp trong tin nhắn có ký tự đặc biệt không gửi qua webservices được.
Checksum: là trường để tăng tính bảo mật cho web services. Hai bên thỏa thuận với nhau 1 key ví dụ “xxxxxxxxxx”.
Công thức tính checksum là: checksum = MD5(“xxxxxxxxxx “+Id+Phone+Shortcode+sms).
Khi truyền tham số qua, bên ĐỐI TÁC kiểm tra lại xem checksum có hợp lệ không trước khi xử lý.
Ghi chú:
- Phải tạo ra link API trước trên hệ thống (A) trước.
- Khi khách hàng nhắn tin thì tổng đài sẽ tự gọi API từ hệ thống (A) và API sẽ phái trả kết quả.
- Hệ thống (A) sẽ lấy kết quả trả ngược về cho khách hàng.