Quyết định 522/QĐ-TTYQG năm 2025 về “Tài liệu kỹ thuật đặc tả API Hệ thống cơ sở dữ liệu về dược” phiên bản 1.0 do Trung tâm Thông tin y tế Quốc gia, Bộ Y tế ban hành
| Số hiệu | 522/QĐ-TTYQG |
| Ngày ban hành | 18/12/2025 |
| Ngày có hiệu lực | 01/01/2026 |
| Loại văn bản | Quyết định |
| Cơ quan ban hành | Bộ Y tế |
| Người ký | Đỗ Trường Duy |
| Lĩnh vực | Công nghệ thông tin,Thể thao - Y tế |
|
BỘ Y TẾ |
CỘNG HÒA XÃ HỘI
CHỦ NGHĨA VIỆT NAM |
|
Số: 522/QĐ-TTYQG |
Hà Nội, ngày 18 tháng 12 năm 2025 |
BAN HÀNH “ TÀI LIỆU KỸ THUẬT ĐẶC TẢ API HỆ THỐNG CƠ SỞ DỮ LIỆU VỀ DƯỢC” PHIÊN BẢN 1.0
GIÁM ĐỐC TRUNG TÂM THÔNG TIN Y TẾ QUỐC GIA
Luật Dược số 105/2016/QH13 ngày 06/04/2016;
Luật sửa đổi, bổ sung một số điều của Luật Dược ngày 21/11/2024;
Nghị định số 163/2025/NĐ-CP ngày 29/6/2025 của Chính phủ quy định chi tiết một số điều và biện pháp để tổ chức, hướng dẫn thi hành Luật Dược;
Thông tư số 11/TT-BYT ngày 16/05/2025 của Bộ y tế Sửa đổi, bổ sung một số điều của Thông tư số 02/2018/TT-BYT ngày 22 tháng 01 năm 2018 của Bộ trƣởng Bộ Y tế quy định về thực hành tốt cơ sở bán lẻ thuốc, Thông tư số 03/2018/TT-BYT ngày 09 tháng 02 năm 2018 của Bộ trưởng Bộ Y tế quy định về thực hành tốt phân phối thuốc, nguyên liệu làm thuốc, Thông tư số 36/2018/TT- BYT ngày 22 tháng 11 năm 2018 của Bộ trưởng Bộ Y tế quy định về thực hành tốt bảo quản thuốc, nguyên liệu làm thuốc;
Quyết định 2233/QĐ-BYT ngày 19/05/2023 của Bộ y tế về việc ban hành Quy chế Tổ chức và Hoạt động của Trung tâm Thông tin y tế Quốc gia;
Quyết định 3485/QĐ-BYT ngày 18/11/2024 của Bộ Y tế về việc giao nhiệm vụ xây dựng, phát triển và quản lý, vận hành Hệ thống cơ sở dữ liệu về dược.
Quyết định 2909/QĐ-BYT ngày 14/09/2025 về việc phê duyệt nhiệm vụ và dự toán kinh phí mua sắm tài sản, trang thiết bị, thuê hàng hóa, dịch vụ công nghệ thông tin của các đơn vị sử dụng ngân sách thuộc, trực thuộc Bộ Y tế năm 2025;
Theo đề xuất của Trưởng phòng Dự án thông tin y tế.
QUYẾT ĐỊNH:
Điều 1. Ban hành kèm theo Quyết định này “Tài liệu kỹ thuật đặc tả API Hệ thống cơ sở dữ liệu về dược” phiên bản 1.0 (Phụ lục ban hành kèm theo Quyết định này)
Điều 2. Các đối tượng thực hiện liên thông dữ liệu dược phẩm với Hệ thống cơ sở dữ liệu về dược theo bộ tài liệu đặc tả này bao gồm: Các cơ sở sản xuất thuốc và nguyên liệu làm thuốc, cơ sở nhập khẩu, cơ sở bán buôn phân phối, nhà thuốc, quầy thuốc, cơ sở bán lẻ, cơ sở tổ chức chuỗi nhà thuốc theo Luật dược sửa đổi 2024, các đơn vị cung cấp phần mềm trong lĩnh vực dược.
Điều 3. Quyết định này có hiệu lực kể từ ngày 01/01/2026.
Điều 4. Các Ông/Bà Lãnh đạo các Phòng, đơn vị thuộc Trung tâm Thông tin y tế Quốc gia và Thủ trưởng các đơn vị liên quan chịu trách nhiệm thi hành quyết định này./.
|
|
GIÁM ĐỐC |
“TÀI LIỆU KỸ THUẬT ĐẶC TẢ API HỆ THỐNG CƠ SỞ DỮ LIỆU VỀ
DƯỢC” PHIÊN BẢN 1.0
(Ban hành kèm theo Quyết định số 522/QĐ-TTYQG ngày 18 tháng 12 năm 2025 của
Giám đốc Trung tâm Thông tin y tế Quốc gia)
1.1. Mục đích
Tài liệu đặc tả API được ban hành nhằm mục đích thiết lập tiêu chuẩn kỹ thuật thống nhất trên toàn quốc cho việc kết nối, đồng bộ và trao đổi dữ liệu dược phẩm theo thời gian thực giữa các phần mềm quản lý dược (phần mềm quản lý nhà thuốc, phần mềm quản lý kho phân phối, phần mềm ERP nhà máy sản xuất/nhập khẩu, …) với Hệ thống cơ sở dữ liệu về dược do Trung tâm Y tế Quốc gia - Bộ Y tế vận hành.
1.2. Phạm vi áp dụng
- Áp dụng cho toàn bộ các nghiệp vụ được Bộ Y tế quy định phải báo cáo, kết nối hoặc chia sẻ dữ liệu với Hệ thống cơ sở dữ liệu về dược, bao gồm:
● Thông tin thuốc, nguyên liệu làm thuốc, lô sản xuất, hoạt chất, giấy phép lưu hành, …
● Dữ liệu vận hành: báo cáo nhập - xuất - tồn, phân phối, điều chuyển, kiểm kê.
|
BỘ Y TẾ |
CỘNG HÒA XÃ HỘI
CHỦ NGHĨA VIỆT NAM |
|
Số: 522/QĐ-TTYQG |
Hà Nội, ngày 18 tháng 12 năm 2025 |
BAN HÀNH “ TÀI LIỆU KỸ THUẬT ĐẶC TẢ API HỆ THỐNG CƠ SỞ DỮ LIỆU VỀ DƯỢC” PHIÊN BẢN 1.0
GIÁM ĐỐC TRUNG TÂM THÔNG TIN Y TẾ QUỐC GIA
Luật Dược số 105/2016/QH13 ngày 06/04/2016;
Luật sửa đổi, bổ sung một số điều của Luật Dược ngày 21/11/2024;
Nghị định số 163/2025/NĐ-CP ngày 29/6/2025 của Chính phủ quy định chi tiết một số điều và biện pháp để tổ chức, hướng dẫn thi hành Luật Dược;
Thông tư số 11/TT-BYT ngày 16/05/2025 của Bộ y tế Sửa đổi, bổ sung một số điều của Thông tư số 02/2018/TT-BYT ngày 22 tháng 01 năm 2018 của Bộ trƣởng Bộ Y tế quy định về thực hành tốt cơ sở bán lẻ thuốc, Thông tư số 03/2018/TT-BYT ngày 09 tháng 02 năm 2018 của Bộ trưởng Bộ Y tế quy định về thực hành tốt phân phối thuốc, nguyên liệu làm thuốc, Thông tư số 36/2018/TT- BYT ngày 22 tháng 11 năm 2018 của Bộ trưởng Bộ Y tế quy định về thực hành tốt bảo quản thuốc, nguyên liệu làm thuốc;
Quyết định 2233/QĐ-BYT ngày 19/05/2023 của Bộ y tế về việc ban hành Quy chế Tổ chức và Hoạt động của Trung tâm Thông tin y tế Quốc gia;
Quyết định 3485/QĐ-BYT ngày 18/11/2024 của Bộ Y tế về việc giao nhiệm vụ xây dựng, phát triển và quản lý, vận hành Hệ thống cơ sở dữ liệu về dược.
Quyết định 2909/QĐ-BYT ngày 14/09/2025 về việc phê duyệt nhiệm vụ và dự toán kinh phí mua sắm tài sản, trang thiết bị, thuê hàng hóa, dịch vụ công nghệ thông tin của các đơn vị sử dụng ngân sách thuộc, trực thuộc Bộ Y tế năm 2025;
Theo đề xuất của Trưởng phòng Dự án thông tin y tế.
QUYẾT ĐỊNH:
Điều 1. Ban hành kèm theo Quyết định này “Tài liệu kỹ thuật đặc tả API Hệ thống cơ sở dữ liệu về dược” phiên bản 1.0 (Phụ lục ban hành kèm theo Quyết định này)
Điều 2. Các đối tượng thực hiện liên thông dữ liệu dược phẩm với Hệ thống cơ sở dữ liệu về dược theo bộ tài liệu đặc tả này bao gồm: Các cơ sở sản xuất thuốc và nguyên liệu làm thuốc, cơ sở nhập khẩu, cơ sở bán buôn phân phối, nhà thuốc, quầy thuốc, cơ sở bán lẻ, cơ sở tổ chức chuỗi nhà thuốc theo Luật dược sửa đổi 2024, các đơn vị cung cấp phần mềm trong lĩnh vực dược.
Điều 3. Quyết định này có hiệu lực kể từ ngày 01/01/2026.
Điều 4. Các Ông/Bà Lãnh đạo các Phòng, đơn vị thuộc Trung tâm Thông tin y tế Quốc gia và Thủ trưởng các đơn vị liên quan chịu trách nhiệm thi hành quyết định này./.
|
|
GIÁM ĐỐC |
“TÀI LIỆU KỸ THUẬT ĐẶC TẢ API HỆ THỐNG CƠ SỞ DỮ LIỆU VỀ
DƯỢC” PHIÊN BẢN 1.0
(Ban hành kèm theo Quyết định số 522/QĐ-TTYQG ngày 18 tháng 12 năm 2025 của
Giám đốc Trung tâm Thông tin y tế Quốc gia)
1.1. Mục đích
Tài liệu đặc tả API được ban hành nhằm mục đích thiết lập tiêu chuẩn kỹ thuật thống nhất trên toàn quốc cho việc kết nối, đồng bộ và trao đổi dữ liệu dược phẩm theo thời gian thực giữa các phần mềm quản lý dược (phần mềm quản lý nhà thuốc, phần mềm quản lý kho phân phối, phần mềm ERP nhà máy sản xuất/nhập khẩu, …) với Hệ thống cơ sở dữ liệu về dược do Trung tâm Y tế Quốc gia - Bộ Y tế vận hành.
1.2. Phạm vi áp dụng
- Áp dụng cho toàn bộ các nghiệp vụ được Bộ Y tế quy định phải báo cáo, kết nối hoặc chia sẻ dữ liệu với Hệ thống cơ sở dữ liệu về dược, bao gồm:
● Thông tin thuốc, nguyên liệu làm thuốc, lô sản xuất, hoạt chất, giấy phép lưu hành, …
● Dữ liệu vận hành: báo cáo nhập - xuất - tồn, phân phối, điều chuyển, kiểm kê.
● Dữ liệu bán lẻ: hoá đơn bán lẻ thuốc theo quy định.
- API được sử dụng cho mục đích kết nối tự động giữa các phần mềm nội bộ của các cơ sở dược và hệ thống cơ sở dữ liệu về dược, không dành cho ứng dụng người dùng cuối.
1.3. Đối tượng áp dụng
- Cơ sở sản xuất thuốc và nguyên liệu làm thuốc.
- Cơ sở nhập khẩu.
- Cơ sở bán buôn, phân phối.
- Nhà thuốc, quầy thuốc, cơ sở bán lẻ.
- Cơ sở tổ chức chuỗi nhà thuốc theo Luật dược sửa đổi 2024.
- Doanh nghiệp phát triển phần mềm trong lĩnh vực dược.
1.4. Khái niệm, thuật ngữ
|
STT |
Thuật ngữ/Từ viết tắt |
Mô tả |
|
1 |
API |
Application Programming Interface Giao diện lập trình ứng dụng |
|
2 |
HTTP |
HyperText Transfer Protocol Giao thức truyền tải siêu văn bản |
|
3 |
HTTPS/TLS |
Giao thức truyền dữ liệu an toàn qua mạng, sử dụng chứng chỉ TLS 1.3 để mã hóa. Bắt buộc cho tất cả API call. |
|
4 |
JSON |
JavaScript Object Notation Định dạng dữ liệu nhẹ, dễ đọc, dùng để trao đổi thông tin giữa phần mềm và API. |
|
5 |
OAuth 2.0 |
Tiêu chuẩn ủy quyền mở, sử dụng để xác thực và cấp quyền truy cập API mà không chia sẻ mật khẩu. |
|
6 |
Token (Access Token) |
Chuỗi mã hoá tạm thời được cấp sau khi xác thực, dùng để uỷ quyền các API Request. Token sẽ hết hạn sau một khoảng thời gian cụ thể |
|
7 |
Cơ sở Dược |
Tên gọi chung cho Cơ sở sản xuất/Cơ sở nhập khẩu/Cơ sở phân phối/Cơ sở bán lẻ dược phẩm |
|
STT |
Nội dung |
Mô tả |
|
1 |
Kiểu API |
RESTful API |
|
2 |
Giao thức |
HTTPS |
|
3 |
Phiên bản hiện hành |
v2 (bắt buộc từ 01/01/2026) |
|
4 |
Định dạng dữ liệu |
JSON (UTF-8) |
|
5 |
Xác thực |
OAuth2 + Bearer Token |
|
STT |
Nội dung |
Mô tả |
|
1 |
Base URL Production |
https://api.csdlduoc.com.vn/v2 |
|
2 |
Base URL Sandbox |
https://api-sandbox.csdlduoc.com.vn/v2 |
Để sử dụng môi trường sandbox của Hệ thống Cơ sở dữ liệu về Dược, các nhà cung cấp phần mềm vui lòng liên hệ theo số điện thoại: 19008255 nhánh 2 hoặc email: [email protected] hoặc gửi Công văn về Trung tâm Thông tin Y tế Quốc gia - Bộ Y tế, ngõ 135, Núi Trúc - Giảng Võ - Hà Nội.
|
STT |
Nhóm API |
Tên API |
URL |
|
1 |
Xác thực |
Xác thực bằng tài khoản |
POST /auth/login |
|
2 |
Danh mục |
Hoạt chất |
GET /master/active-ingredients |
|
3 |
Đơn vị tính |
GET /master/units |
|
|
4 |
Quốc gia |
GET /master/countries |
|
|
5 |
Nhóm thuốc |
GET /master/drug-groups |
|
|
6 |
Đường dùng |
GET /master/routes |
|
|
7 |
Nhà sản xuất |
GET /master/manufactures |
|
|
8 |
Tỉnh/Thành phố |
GET /master/provinces |
|
|
9 |
Xã/Phường |
GET /master/communes |
|
|
10 |
Thuốc |
Danh sách thuốc |
GET /master/drugs |
|
11 |
Thông tin chi tiết thuốc |
GET /master/drugs/{drug_id} |
|
|
12 |
Giao dịch nhập - xuất - điều chuyển - kiểm kho |
Tạo phiếu nhập kho |
POST /transactions/stock-in |
|
13 |
Xem thông tin chi tiết phiếu nhập kho |
GET /transaction/stock- in/{transaction_id} |
|
|
14 |
Tra cứu trạng thái xử lý phiếu nhập kho |
GET /transaction/stock- in/{transaction_id}/status |
|
|
15 |
Tạo phiếu xuất kho |
POST /transactions/stock-out |
|
|
16 |
Xem thông tin chi tiết phiếu xuất kho |
GET /transactions/stock- out/{transaction_id} |
|
|
17 |
Tra cứu trạng thái xử lý phiếu xuất kho |
GET /transactions/stock- out/{transaction_id}/status |
|
|
18 |
Tạo phiếu kiểm kho |
POST /transactions/stock-taking |
|
|
19 |
Tra cứu trạng thái/xem thông tin phiếu kiểm kho |
GET /transactions/stock- taking/{transaction_id} |
|
|
20 |
Tra cứu trạng thái xử lý phiếu kiểm kho |
GET /transactions/stock- taking/{transaction_id}/status |
|
|
21 |
Báo cáo tồn kho |
Gửi báo cáo tồn kho theo tháng |
POST /inventory-reports/monthly |
|
22 |
Gửi báo cáo tồn kho theo quý |
POST /inventory-reports/quarterly |
|
|
23 |
Gửi báo cáo tồn kho theo năm |
POST /inventory-reports/yearly |
|
|
24 |
Xem chi tiết báo cáo tồn kho |
GET /inventory-reports/{reportId} |
|
|
25 |
Kiểm tra trạng thái xử lý báo cáo |
GET /inventory- reports/{reportId}/status |
|
|
26 |
Hoá đơn bán lẻ thuốc |
Gửi dữ liệu hoá đơn bán lẻ thuốc |
POST /invoices |
|
27 |
Xem thông tin chi tiết hoá đơn bán lẻ thuốc |
GET /invoices/{invoiceId} |
|
|
28 |
Tra cứu trạng thái xử lý hoá đơn bán lẻ thuốc |
GET /invoices/{invoiceId}/status |
5.1.1. Xác thực bằng tài khoản
Được sử dụng để xác thực người dùng (cơ sở kinh doanh dược). Nếu xác thực thành công hệ thống sẽ cấp Access Token. Access Token được sử dụng để gọi các API nghiệp vụ.
a) Request
- Method: POST
- URL: /auth/login
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
- Body:
|
TT |
Tên trường |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
username |
string |
200 |
x |
Tên đăng nhập của cơ sở dược được cấp phát để liên thông dữ liệu. |
|
2 |
password |
string |
200 |
x |
Mật khẩu đăng nhập của cơ sở kinh doanh dược được cấp đã được mã hoá Base64. Ví dụ: nếu mật khẩu đăng nhập của cơ sở kinh doanh dược là “123456a@” thì trường này phải truyền giá trị là “MTIzNDU2YUA=” |
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
access_token |
string |
JWT Token được sử dụng để gọi các API nghiệp vụ |
|
2 |
token_type |
string |
Loại token. Mặc định là: “Bearer” |
|
3 |
expires_in |
integer |
Thời gian hiệu lực của access_token (giây). |
● 400: Thiếu tên đăng nhập hoặc mật khẩu
● 401: Tên đăng nhập hoặc mật khẩu không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/active-ingredients
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách các hoạt chất |
|
3.1 |
id |
string |
Mã hoạt chất |
|
3.2 |
name |
string |
Tên hoạt chất |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 403: Không có quyền truy cập
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/units
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách các đơn vị tính |
|
3.1 |
id |
string |
Mã đơn vị tính |
|
3.2 |
name |
string |
Tên đơn vị tính |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 404: Tài nguyên không tồn tại
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/units
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách các đơn vị tính |
|
3.1 |
id |
string |
Mã quốc gia (ISO-3166) |
|
3.2 |
name |
string |
Tên quốc gia |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 404: Tài nguyên không tồn tại
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/units
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách nhóm thuốc |
|
3.1 |
id |
string |
Mã nhóm thuốc |
|
3.2 |
name |
string |
Tên nhóm thuốc |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Tên đăng nhập hoặc mật khẩu không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/units
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách các đơn vị tính |
|
3.1 |
id |
string |
Mã đường dùng |
|
3.2 |
name |
string |
Tên đường dùng |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/manufacturers
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách các đơn vị tính |
|
3.1 |
id |
string |
Mã nhà sản xuất |
|
3.2 |
name |
string |
Tên nhà sản xuất |
|
3.3 |
country_id |
string |
Mã quốc gia |
|
3.4 |
province_id |
string |
Địa chỉ của nhà sản xuất - Mã tỉnh/thành phố |
|
3.5 |
commune_id |
string |
Địa chỉ của nhà sản xuất - Mã xã/phường |
|
3.6 |
street |
string |
Địa chỉ của nhà sản xuất - Số nhà, tên đường, … |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/provinces
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách Tỉnh/Thành phố |
|
3.1 |
id |
string |
Mã tỉnh/thành phố |
|
3.2 |
name |
string |
Tên tỉnh/thành phố |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/communes
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
|
3 |
province_id |
string |
|
Mã tỉnh/thành phố |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách Xã/Phường |
|
3.1 |
id |
string |
Mã Xã/Phường |
|
3.2 |
name |
string |
Tên Xã/Phường |
|
3.3 |
province_id |
string |
Mã Tỉnh/Thành phố |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
a) Request
- Method: GET
- URL: /master/drugs
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Bắt buộc |
Mô tả |
|
1 |
page |
integer |
|
Số trang cần lấy (mặc định là 1) |
|
2 |
page_size |
integer |
|
Số bản ghi trên mỗi trang (mặc định là 20, tối đa 50) |
- Path Variables:
N/A
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
page |
integer |
Số trang dữ liệu |
|
2 |
total |
integer |
Tổng số bản ghi |
|
3 |
data |
array |
Danh sách các thuốc |
|
3.1 |
id |
string |
Mã định danh thuốc |
|
3.2 |
name |
string |
Tên thuốc |
|
3.3 |
drug_group_id |
string |
Mã nhóm thuốc |
|
3.4 |
registration_number |
string |
Số giấy phép lưu hành |
|
3.5 |
active_ingredient_list |
array |
Danh sách các hoạt chất |
|
3.5.1 |
active_ingredient_list[].id |
string |
Mã hoạt chất |
|
3.5.2 |
active_ingredient_list[].name |
string |
Tên hoạt chất |
|
3.5.3 |
active_ingredient_list[].is_main_active_ingre dient |
boolean |
Cho biết hoạt chất có phải là hoạt chất chính không. Các giá trị: - true: Đây là hoạt chất chính - false: Không phải là hoạt chất chính |
|
3.6 |
strength |
string |
Hàm lượng |
|
3.7 |
route_id |
string |
Mã đường dùng |
|
3.8 |
prescription_status |
integer |
Phân loại thuốc kê đơn. Chi tiết tại mục 6.4.4. |
|
3.9 |
special_control_type |
integer |
Phân loại thuốc kiểm soát đặc biệt. Chi tiết tại mục 6.4.5. |
|
3.10 |
packagings |
array |
Các quy cách đóng gói của thuốc |
|
3.10.1 |
packagings[].unit_id |
string |
Mã đơn vị tính |
|
3.10.2 |
packagings[].unit_name |
string |
Tên đơn vị tính |
|
3.10.3 |
packagings[].conversion_rate_to_base |
integer |
Tỷ lệ quy đổi so với đơn vị tính cơ bản |
|
3.10.4 |
packagings[].gtin |
string |
Mã GTIN tương ứng với cấp độ đóng gói |
|
3.10.5 |
packagings[].is_basic_unit |
boolean |
Cho biết đây có phải đơn vị tính cơ bản không. - true: Đơn vị tính cơ bản - false : Không phải đơn vị tính cơ bản. |
|
3.11 |
manufacturer |
object |
Thông tin nhà sản xuất |
|
3.11.1 |
manufacturer.id |
string |
Mã nhà sản xuất |
|
3.11.2 |
manufacturer.name |
string |
Tên nhà sản xuất |
|
3.11.3 |
manufacturer.country |
string |
Mã quốc gia sản xuất |
|
3.12 |
approval_date |
date |
Ngày cấp số giấy phép lưu hành. |
|
3.13 |
expiry_date |
date |
Ngày hết hiệu lực lưu hành. |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.3.2. Thông tin chi tiết thuốc
a) Request
- Method: GET
- URL: /master/drugs/{drug_id}
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
drug_id |
string |
20 |
x |
Mã định danh thuốc/Số giấy phép lưu hành |
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
id |
string |
Mã định danh thuốc |
|
2 |
name |
string |
Tên thuốc |
|
3 |
registration_number |
string |
Số giấy phép lưu hành |
|
4 |
drug_group_id |
string |
Mã nhóm thuốc |
|
5 |
active_ingredient_list |
array |
Danh sách các hoạt chất |
|
5.1 |
active_ingredient_list[].id |
string |
Mã hoạt chất |
|
5.2 |
active_ingredient_list[].name |
string |
Tên hoạt chất |
|
5.3 |
active_ingredient_list[].is_main_active_ingredient |
boolean |
Cho biết hoạt chất có phải là hoạt chất chính không. Các giá trị: - true: Đây là hoạt chất chính - false: Không phải là hoạt chất chính |
|
6 |
strength |
string |
Hàm lượng |
|
7 |
route_id |
string |
Mã đường dùng |
|
8 |
prescription_status |
integer |
Phân loại thuốc kê đơn. Chi tiết tại mục 6.4.4. |
|
9 |
special_control_type |
integer |
Phân loại thuốc kiểm soát đặc biệt. Chi tiết tại mục 6.4.5. |
|
10 |
packagings |
array |
Các quy cách đóng gói của thuốc |
|
10.1 |
packagings[].unit_id |
string |
Mã đơn vị tính |
|
10.2 |
packagings[].unit_name |
string |
Tên đơn vị tính |
|
10.3 |
packagings[].quantity |
integer |
Số lượng quy đổi so với đơn vị tính cơ bản |
|
10.4 |
packagings[].gtin |
string |
Mã GTIN tương ứng với cấp độ đóng gói |
|
10.5 |
packagings[].is_basic_unit |
boolean |
Cho biết đây có phải đơn vị tính cơ bản không. Các giá trị: - true: Đơn vị tính cơ bản - false : Không phải đơn vị tính cơ bản. |
|
11 |
manufacturer |
object |
Nhà sản xuất |
|
11.1 |
manufacturer.id |
string |
Mã nhà sản xuất |
|
11.2 |
manufacturer.name |
string |
Tên nhà sản xuất |
|
11.3 |
manufacturer.country |
string |
Mã quốc gia sản xuất |
|
12 |
approval_date |
date |
Ngày cấp số giấy phép lưu hành. |
|
13 |
expiry_date |
date |
Ngày hết hiệu lực lưu hành. |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 403: Không có quyền truy cập
● 404: Thuốc không tồn tại
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.4. Giao dịch Nhập - Xuất - Điều chuyển - Kiểm kho
API tạo giao dịch nhập kho (nhập hàng từ nhà cung cấp, nhập đầu kỳ…).
a) Request
- Method: POST
- URL: /transactions/stock-in
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
N/A
- Body:
|
TT |
Tên trường |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_date |
datetime |
|
x |
Ngày/giờ nhập kho. |
|
2 |
reason |
string |
20 |
x |
Lý do nhập/Loại phiếu nhập kho. Chi tiết tại Mục 6.4.1. |
|
3 |
supplier_id |
string |
50 |
|
Mã định danh nhà cung cấp. Nếu reason là “supplier”. |
|
4 |
source_store_id |
string |
50 |
|
Mã định danh chi nhánh xuất kho (nếu cơ sở có chuỗi nhà thuốc) trong trường hợp reason là “transfer-in” |
|
5 |
source_warehouse_id |
string |
50 |
|
Mã kho xuất trong trường hợp reason là “transfer-in” |
|
6 |
target_store_id |
string |
50 |
|
Mã định danh chi nhánh nhập kho (nếu cơ sở có chuỗi nhà thuốc) trong trường hợp reason là “transfer-in” |
|
7 |
target_warehouse_id |
string |
50 |
|
Mã kho nhập trong trường hợp reason là “transfer-in” |
|
8 |
reference_number |
string |
50 |
x |
Số chứng từ nhập kho |
|
9 |
note |
string |
500 |
|
Ghi chú |
|
10 |
items |
array |
|
x |
Danh sách thuốc trong phiếu nhập |
|
10.1 |
items[].drug_id |
string |
20 |
x |
Mã định danh thuốc |
|
10.2 |
items[].unit_id |
string |
20 |
x |
Mã đơn vị tính |
|
10.3 |
items[].quantity |
integer |
|
x |
Số lượng |
|
10.4 |
items[].batch_no |
string |
50 |
x |
Số lô sản xuất |
|
10.5 |
items[].expiry_date |
date |
|
x |
Hạn sử dụng |
|
10.6 |
items[].manufacturer |
object |
|
|
Thông tin chi tiết nhà sản xuất |
|
10.6.1 |
items[].manufacturer.id |
string |
20 |
|
Mã nhà sản xuất |
|
10.6.2 |
items[].manufacturer.name |
string |
200 |
|
Tên nhà sản xuất |
|
10.6.3 |
items[].manufacturer.country |
string |
5 |
|
Mã quốc gia sản xuất |
|
10.7 |
items[].gtin |
string |
50 |
|
Mã GTIN tương ứng với từng cấp độ đóng gói |
|
10.8 |
items[].price |
float |
|
|
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của giao dịch |
|
2 |
status |
string |
Trạng thái tiếp nhận/xử lý của hệ thống. Chi tiết tại Mục 6.2. |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.4.2. Xem thông tin chi tiết Phiếu nhập kho
API xem thông tin chi tiết phiếu nhập kho (nhập hàng từ nhà cung cấp, nhập đầu kỳ…).
a) Request
- Method: GET
- URL: /transactions/stock-in/{transaction_id}
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_id |
string |
50 |
x |
Mã Id của phiếu nhập kho |
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của phiếu nhập kho |
|
2 |
transaction_date |
datetime |
Ngày/giờ nhập kho |
|
3 |
reason |
string |
Lý do nhập. Chi tiết tại Mục 6.4.1 |
|
4 |
supplier_id |
string |
Mã định danh nhà cung cấp trong trường hợp reason có giá trị là “supplier” |
|
5 |
source_store_id |
string |
Mã định danh chi nhánh nhập kho (nếu cơ sở có chuỗi nhà thuốc) trong trường hợp reason là “transfer-in” |
|
6 |
source_warehouse_id |
string |
Mã kho nhập trong trường hợp reason là “transfer-in” |
|
7 |
target_store_id |
string |
Mã định danh chi nhánh xuất kho (nếu cơ sở có chuỗi nhà thuốc) trong trường hợp reason là “transfer-in” |
|
8 |
target_warehouse_id |
string |
Mã kho xuất trong trường hợp reason là “transfer-in” |
|
9 |
reference_number |
string |
Số chứng từ |
|
10 |
items |
array |
Danh sách thuốc có trong phiếu nhập |
|
10.1 |
items[].drug_id |
string |
Mã định danh thuốc |
|
10.2 |
items[].unit_id |
string |
Mã đơn vị tính |
|
10.3 |
items[].quantity |
integer |
Số lượng |
|
10.4 |
items[].batch_no |
string |
Số lô sản xuất |
|
10.5 |
items[].expiry_date |
date |
Hạn sử dụng |
|
10.6 |
items[].manufacturer |
object |
Thông tin nhà sản xuất |
|
10.6.1 |
items[].manufacturer.id |
string |
Mã nhà sản xuất |
|
10.6.2 |
items[].manufacturer.name |
string |
Tên nhà sản xuất |
|
10.6.3 |
items[].manufacturer.country |
string |
Mã quốc gia sản xuất |
|
10.7 |
items[].gtin |
string |
Mã gtin tương ứng với cấp độ đóng gói |
|
10.8 |
items[].price |
float |
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
11 |
status |
string |
Trạng thái tiếp nhận/xử lý của hệ thống đối với phiếu nhập kho. |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 403: Không được phép truy cập
● 404: Phiếu nhập kho không tồn tại
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.4.3. Xem trạng thái xử lý Phiếu nhập kho
API xem trạng thái xử lý phiếu nhập kho của hệ thống.
a) Request
- Method: GET
- URL: /transactions/stock-in/{transaction_id}/status
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_id |
string |
50 |
x |
Mã Id của giao dịch nhập kho |
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của giao dịch |
|
2 |
status |
string |
Trạng thái xử lý của hệ thống. Tham khảo Mục 6.2. |
|
3 |
messages |
array[string] |
Danh sách các thông báo lỗi của hệ thống nếu có. |
|
4 |
submitted_at |
datetime |
Thời gian hệ thống tiếp nhận. |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 403: Không được phép truy cập
● 404: Phiếu nhập kho không tồn tại
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
API tạo giao dịch xuất kho.
a) Request
- Method: POST
- URL: /transactions/stock-out
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
N/A
- Body:
|
TT |
Tên trường |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_date |
dateti me |
|
x |
Ngày/giờ xuất kho |
|
2 |
reason |
string |
20 |
x |
Loại phiếu xuất kho/Lý do xuất kho. Chi tiết tại Mục 6.4.2. |
|
3 |
source_store_id |
string |
50 |
|
Mã định danh chi nhánh xuất kho (nếu cơ sở có chuỗi nhà thuốc) trong trường hợp reason là “transfer-out” |
|
4 |
source_warehouse_id |
string |
50 |
|
Mã kho xuất trong trường hợp là phiếu xuất điều chuyển (giá trị của reason là transfer-out) |
|
5 |
target_store_id |
string |
50 |
|
Mã định danh chi nhánh nhập kho (nếu cơ sở có chuỗi nhà thuốc) trong trường hợp reason là “transfer-out” |
|
6 |
target_warehouse_id |
string |
50 |
|
Mã kho nhập trong trường hợp là phiếu xuất điều chuyển (giá trị của reason là transfer-out) |
|
7 |
supplier_id |
string |
50 |
|
Mã định danh nhà cung cấp trong trường hợp xuất hàng trả lại nhà cung cấp (giá trị của trường reason là “return”) |
|
8 |
reference_number |
string |
50 |
x |
Số chứng từ xuất kho |
|
9 |
note |
string |
500 |
|
Ghi chú |
|
10 |
items |
array |
|
x |
Danh sách thuốc trong phiếu xuất kho |
|
10.1 |
items[].drug_id |
string |
20 |
x |
Mã định danh thuốc |
|
10.2 |
items[].unit_id |
string |
20 |
x |
Mã đơn vị tính |
|
10.3 |
items[].quantity |
integer |
|
x |
Số lượng |
|
10.4 |
items[].batch_no |
string |
20 |
x |
Số lô sản xuất |
|
10.5 |
items[].expiry_date |
date |
|
x |
Hạn sử dụng |
|
10.6 |
items[].manufacturer |
object |
|
|
Nhà sản xuất |
|
10.6.1 |
items[].manufacturer.id |
string |
20 |
|
Mã nhà sản xuất |
|
10.6.2 |
items[].manufacturer.name |
string |
200 |
|
Tên nhà sản xuất |
|
10.6.3 |
items[].manufacturer.count ry |
string |
5 |
|
Mã quốc gia sản xuất |
|
10.7 |
items[].gtin |
string |
50 |
|
Mã GTIN tương ứng với từng cấp độ đóng gói |
|
10.8 |
items[].price |
float |
|
|
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của giao dịch |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.4.5. Xem thông tin chi tiết Phiếu xuất kho
API xem thông tin chi tiết giao dịch xuất kho (nhập hàng từ nhà cung cấp, nhập đầu kỳ…).
a) Request
- Method: GET
- URL: /transactions/stock-in/{transaction_id}
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_id |
string |
50 |
x |
Mã Id của giao dịch nhập kho |
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của giao dịch |
|
2 |
transaction_date |
datetime |
Ngày giờ xuất kho |
|
3 |
reason |
string |
Loại phiếu xuất kho/Lý do xuất. Chi tiết tại Mục 6.4.2. |
|
4 |
source_store_id |
string |
Mã định danh chi nhánh xuất kho (nếu cơ sở có chuỗi nhà thuốc) trong trường hợp reason là “transfer-out” |
|
5 |
source_warehouse_id |
string |
Mã định danh kho xuất trong trường hợp phiếu xuất điều chuyển (giá trị của reason là “transfer-out”) |
|
6 |
target_store_id |
string |
Mã định danh chi nhánh nhập kho (nếu cơ sở có chuỗi nhà thuốc) trong trường hợp reason là “transfer-out” |
|
7 |
target_warehouse_id |
string |
Mã định danh kho nhập trong trường hợp phiếu xuất điều chuyển (giá trị của reason là “transfer-out”) |
|
8 |
supplier_id |
datetime |
Mã định danh nhà cung cấp trường trường phiếu xuất trả nhà cung cấp (giá trị reason là “return”) |
|
9 |
reference_number |
string |
Số chứng từ |
|
10 |
note |
string |
Ghi chú |
|
11 |
items |
array |
Danh sách thuốc có trong phiếu nhập |
|
11.1 |
items[].drug_id |
string |
Mã định danh thuốc |
|
11.2 |
items[].unit_id |
string |
Mã đơn vị tính |
|
11.3 |
items[].quantity |
integer |
Số lượng |
|
11.4 |
items[].batch_no |
string |
Số lô sản xuất |
|
11.5 |
items[].expiry_date |
date |
Hạn sử dụng |
|
11.6 |
items[].manufacturer |
object |
Thông tin nhà sản xuất |
|
11.6.1 |
items[].manufacturer.id |
string |
Mã nhà sản xuất |
|
11.6.2 |
items[].manufacturer.name |
string |
Tên nhà sản xuất |
|
11.6.3 |
items[].manufacturer.country |
string |
Mã quốc gia sản xuất |
|
11.7 |
items[].gtin |
string |
Mã GTIN tương ứng với cấp độ đóng gói |
|
11.8 |
items[].price |
float |
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
12 |
status |
string |
Trạng thái xử lý của hệ thống đối với phiếu xuất kho. Chi tiết tại Mục 6.2. |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 403: Không được phép truy cập
● 404: Phiếu xuất kho không tồn tại
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.4.6. Xem trạng thái xử lý Phiếu xuất kho
API xem trạng thái xử lý phiếu xuất kho của hệ thống.
a) Request
- Method: GET
- URL: /transactions/stock-out/{transaction_id}/status
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_id |
string |
50 |
x |
Mã Id của giao dịch xuất kho |
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của giao dịch |
|
2 |
status |
string |
Trạng thái xử lý của hệ thống. Chi tiết tại Mục 6.2. |
|
3 |
messages |
array[string] |
Danh sách các thông báo lỗi của hệ thống nếu có. |
|
4 |
submitted_at |
datetime |
Thời gian hệ thống tiếp nhận. |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 403: Không được được phép truy cập
● 404: Phiếu xuất kho không tồn tại.
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
API tạo giao dịch kiểm kho
a) Request
- Method: POST
- URL: /transactions/stock-taking
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
N/A
- Body:
|
TT |
Tên trường |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_date |
datetime |
|
x |
Ngày/giờ kiểm kho. |
|
2 |
store_id |
string |
50 |
|
Mã chi nhánh (trong trường hợp cơ sở kinh doanh dược có nhiều chi nhánh). |
|
3 |
warehouse_id |
string |
50 |
|
Mã kho (trong trường hợp cơ sở kinh doanh dược hoặc các chi nhánh của cơ sở kinh doanh dược có nhiều kho). |
|
4 |
reference_number |
string |
50 |
x |
Số chứng từ kiểm kho |
|
5 |
note |
string |
500 |
|
Ghi chú |
|
6 |
items |
array |
|
x |
Danh sách thuốc kiểm kho |
|
6.1 |
items[].drug_id |
string |
20 |
x |
Mã định danh thuốc |
|
6.2 |
items[].unit_id |
string |
20 |
x |
Mã đơn vị tính |
|
6.3 |
items[].quantity |
integer |
|
x |
Số lượng |
|
6.4 |
items[].batch_no |
string |
50 |
x |
Số lô sản xuất |
|
6.5 |
items[].expiry_date |
date |
|
x |
Hạn sử dụng |
|
6.6 |
items[].manufacturer |
object |
|
|
Thông tin nhà sản xuất |
|
6.6.1 |
items[].manufacturer.id |
string |
20 |
|
Mã nhà sản xuất |
|
6.6.2 |
items[].manufacturer.name |
string |
200 |
|
Tên nhà sản xuất |
|
6.6.3 |
items[].manufacturer.country |
string |
5 |
|
Mã quốc gia sản xuất |
|
6.7 |
items[].gtin |
string |
50 |
|
Mã GTIN tương ứng với cấp độ đóng gói |
|
6.8 |
items[].price |
float |
|
|
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
6.9 |
items[].system_quantity |
int |
|
x |
Tồn hệ thống |
|
6.10 |
items[].actual_quantiy |
int |
|
x |
Tồn thực tế |
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của giao dịch |
|
2 |
status |
string |
Trạng thái xử lý của hệ thống. Chi tiết tại Mục 6.2 |
- 400: Định dạng dữ liệu không hợp lệ
- 401: Access token hết hạn hoặc không hợp lệ
- 429: Vượt quá giới hạn request cho phép
- 500: Lỗi hệ thống
5.4.8. Xem chi tiết Phiếu kiểm kho
API xem thông tin chi tiết phiếu kiểm kho của cơ sở kinh doanh dược
a) Request
- Method: GET
- URL: /transactions/stock-taking/{transaction_id}
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_id |
string |
50 |
x |
Mã Id của giao dịch nhập kho |
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của giao dịch |
|
2 |
transaction_date |
string |
Ngày kiểm kho |
|
3 |
facility_id |
string |
Mã chi nhánh (trong trường hợp cơ sở kinh doanh dược có nhiều chi nhánh). |
|
4 |
warehouse_id |
string |
Mã kho (trong trường hợp cơ sở kinh doanh dược hoặc các chi nhánh của cơ sở kinh doanh dược có nhiều kho). |
|
5 |
reference_number |
string |
Số chứng từ |
|
6 |
note |
string |
Ghi chú |
|
7 |
items |
array |
Danh sách thuốc trong phiếu kiểm kho |
|
7.1 |
items[].drug_id |
string |
Mã định danh thuốc |
|
7.2 |
items[].unit_id |
string |
Mã đơn vị tính |
|
7.3 |
items[].quantity |
integer |
Số lượng |
|
7.4 |
items[].batch_no |
string |
Số lô sản xuất |
|
7.5 |
items[].expiry_date |
date |
Hạn sử dụng |
|
7.6 |
items[].manufacturer |
object |
Mã định danh nhà sản xuất |
|
7.6.1 |
items[].manufacturer.id |
string |
Mã nhà sản xuất |
|
7.6.2 |
items[].manufacturer.name |
string |
Tên nhà sản xuất |
|
7.6.3 |
items[].manufacturer.country |
string |
Mã quốc gia sản xuất |
|
7.6.4 |
items[].gtin |
string |
Mã GTIN tương ứng với cấp độ đóng gói |
|
7.7 |
items[].price |
float |
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
7.8 |
items[].system_quantity |
integer |
Tồn hệ thống |
|
7.9 |
items[].actual_quantity |
integer |
Tồn thực tế |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 403: Không được phép truy cập
● 404: Phiếu kiểm kho không tồn tại
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.4.9. Xem trạng thái xử lý phiếu kiểm kho
API xem trạng thái xử lý phiếu kiểm kho của hệ thống.
a) Request
- Method: GET
- URL: /transactions/stock-taking/{transaction_id}/status
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
transaction_id |
string |
50 |
x |
Mã Id của giao dịch kiểm kho |
- Body:
N/A
b) Response
- 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
transaction_id |
string |
Mã ID của giao dịch |
|
2 |
status |
string |
Trạng thái xử lý của hệ thống. Chi tiết tại Mục 6.2. |
|
3 |
messages |
array[string] |
Danh sách các thông báo lỗi của hệ thống nếu có. |
|
4 |
submitted_at |
datetime |
Thời gian hệ thống tiếp nhận. |
- 400: Định dạng dữ liệu không hợp lệ
- 401: Access token hết hạn hoặc không hợp lệ
- 403: Không được phép truy cập
- 404: Phiếu kiểm kho không tồn tại
- 429: Vượt quá giới hạn request cho phép
- 500: Lỗi hệ thống
5.5. Báo cáo xuất nhập tồn kho
5.5.1. Gửi báo cáo xuất nhập tồn theo tháng
API gửi báo cáo xuất nhập tồn theo tháng
a) Request
- Method: POST
- URL: /inventory-reports/monthly
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
N/A
- Body:
|
TT |
Tên trường |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
period |
string |
10 |
x |
Tháng báo cáo. Định dạng: YYYY-MM |
|
2 |
store_id |
string |
50 |
|
Mã chi nhánh (trong trường hợp cơ sở kinh doanh dược có nhiều chi nhánh). |
|
3 |
warehouse_id |
string |
50 |
|
Mã kho (trong trường hợp cơ sở kinh doanh dược hoặc các chi nhánh của cơ sở kinh doanh dược có nhiều kho). |
|
4 |
items |
array |
|
x |
Danh sách thuốc kiểm kho |
|
4.1 |
items[].drug_id |
string |
20 |
x |
Mã định danh thuốc |
|
4.2 |
items[].unit_id |
string |
20 |
x |
Mã đơn vị tính |
|
4.3 |
items[].batch_no |
string |
50 |
x |
Số lô sản xuất |
|
4.4 |
items[].expiry_date |
date |
|
x |
Hạn sử dụng |
|
4.5 |
items[].manufacturer |
object |
|
|
Thông tin nhà sản xuất |
|
4.5.1 |
items[].manufacturer.id |
string |
20 |
|
Mã nhà sản xuất |
|
4.5.2 |
items[].manufacturer.name |
string |
200 |
|
Tên nhà sản xuất |
|
4.5.3 |
items[].manufacturer.country |
string |
5 |
|
Mã quốc gia sản xuất |
|
4.6 |
items[].gtin |
string |
50 |
|
Mã GTIN tương ứng với cấp độ đóng gói |
|
4.7 |
items[].price |
float |
|
|
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
4.8 |
items[].quantity_begin |
integer |
|
x |
Số lượng tồn đầu tháng |
|
4.9 |
items[].quantity_in |
integer |
|
x |
Số lượng nhập trong tháng |
|
4.10 |
items[].quantity_out |
integer |
|
x |
Số lượng xuất trong tháng |
|
4.11 |
items[].quantity_end |
integer |
|
x |
Số lượng tồn cuối tháng |
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
report_id |
string |
Mã ID của báo cáo |
|
2 |
status |
string |
Trạng thái tiếp nhận/xử lý báo cáo. Chi tiết tại Mục 6.2 |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.5.2. Gửi báo cáo xuất nhập tồn theo quý
API gửi báo cáo xuất nhập tồn theo quý
a) Request
- Method: POST
- URL: /inventory-reports/quarterly
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
N/A
- Body:
|
TT |
Tên trường |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
period |
string |
10 |
x |
Quý báo cáo. Định dạng: YYYY-Qn. Ví dụ: 2025-Q1, 2025-Q2, 2025-Q3, 2025-Q4 |
|
2 |
store_id |
string |
50 |
|
Mã chi nhánh (trong trường hợp cơ sở kinh doanh dược có nhiều chi nhánh). |
|
3 |
warehouse_id |
string |
50 |
|
Mã kho (trong trường hợp cơ sở kinh doanh dược hoặc các chi nhánh của cơ sở kinh doanh dược có nhiều kho). |
|
4 |
items |
array |
|
x |
Danh sách thuốc kiểm kho |
|
4.1 |
items[].drug_id |
string |
20 |
x |
Mã định danh thuốc |
|
4.2 |
items[].unit_id |
string |
20 |
x |
Mã đơn vị tính |
|
4.3 |
items[].batch_no |
string |
50 |
x |
Số lô sản xuất |
|
4.4 |
items[].expiry_date |
date |
|
x |
Hạn sử dụng |
|
4.5 |
items[].manufacturer |
object |
|
|
Thông tin nhà sản xuất |
|
4.5. |
items[].manufacturer.id |
string |
20 |
|
Mã nhà sản xuất |
|
4.5. |
items[].manufacturer.name |
string |
200 |
|
Tên nhà sản xuất |
|
4.5. |
items[].manufacturer.country |
string |
5 |
|
Mã quốc gia sản xuất |
|
4.5. |
items[].gtin |
string |
50 |
|
Mã GTIN tương ứng với cấp độ đóng gói |
|
4.6 |
items[].price |
float |
|
|
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
4.7 |
items[].quantity_begin |
integer |
|
x |
Số lượng tồn đầu tháng |
|
4.8 |
items[].quantity_in |
integer |
|
x |
Số lượng nhập trong tháng |
|
4.9 |
items[].quantity_out |
integer |
|
x |
Số lượng xuất trong tháng |
|
4.10 |
items[].quantity_end |
integer |
|
x |
Số lượng tồn cuối tháng |
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
report_id |
string |
Mã ID của báo cáo |
|
2 |
status |
string |
Trạng thái tiếp nhận/xử lý báo cáo. Chi tiết tại Mục 6.2 |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.5.3. Gửi báo cáo xuất nhập tồn theo năm
API gửi báo cáo xuất nhập tồn theo năm
a) Request
- Method: POST
- URL: /inventory-reports/yearly
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
N/A
- Body:
|
TT |
Tên trường |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
period |
string |
4 |
x |
Năm báo cáo. Ví dụ: 2025, 2026 |
|
2 |
store_id |
string |
50 |
|
Mã chi nhánh (trong trường hợp cơ sở kinh doanh dược có nhiều chi nhánh). |
|
3 |
warehouse_id |
string |
50 |
|
Mã kho (trong trường hợp cơ sở kinh doanh dược hoặc các chi nhánh của cơ sở kinh doanh dược có nhiều kho). |
|
4 |
items |
array |
|
x |
Danh sách thuốc |
|
4.1 |
items[].drug_id |
string |
|
x |
Mã định danh thuốc |
|
4.2 |
items[].unit_id |
string |
|
x |
Mã đơn vị tính |
|
4.3 |
items[].batch_no |
string |
|
x |
Số lô sản xuất |
|
4.4 |
items[].expiry_date |
date |
|
x |
Hạn sử dụng |
|
4.5 |
items[].manufacturer |
object |
|
|
Mã định danh nhà sản xuất |
|
4.5.1 |
items[].manufacturer.id |
string |
|
|
Mã nhà sản xuất |
|
4.5.2 |
items[].manufacturer.name |
string |
|
|
Tên nhà sản xuất |
|
4.5.3 |
items[].manufacturer.country |
string |
|
|
Mã quốc gia sản xuất |
|
4.6 |
items[].gtin |
string |
|
|
Mã GTIN tương ứng với cấp độ đóng gói |
|
4.7 |
items[].price |
float |
|
|
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
4.8 |
items[].quantity_begin |
integer |
|
x |
Số lượng tồn đầu năm |
|
4.9 |
items[].quantity_in |
integer |
|
x |
Số lượng nhập trong năm |
|
4.10 |
items[].quantity_out |
integer |
|
x |
Số lượng xuất trong năm |
|
4.11 |
items[].quantity_end |
integer |
|
x |
Số lượng tồn cuối năm |
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
report_id |
string |
Mã ID của báo cáo |
|
2 |
status |
string |
Trạng thái tiếp nhận/xử lý báo cáo. Chi tiết tại Mục 6.2 |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.5.4. Xem chi tiết báo cáo tồn kho
API xem chi tiết báo cáo tồn kho.
a) Request
- Method: GET
- URL: /inventory-reports/{report_id}
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
report_id |
string |
50 |
x |
Mã Id của báo cáo tồn kho đã gửi |
- Body:
N/A
b) Response
- 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
report_id |
string |
Mã ID của báo cáo |
|
2 |
type |
string |
Loại báo cáo. Chi tiết tại Mục 6.4.3. |
|
3 |
period |
string |
Chu kỳ báo cáo. - Nếu chu kỳ báo cáo là tháng (monthly) thì giá trị có định dạng: YYYY-MM. Ví dụ: 2025-09, 2025-10, …. - Nếu chu kỳ báo cáo là quý (quarter) thì giá trị có định dạng: YYYY- Qn. Ví dụ: 2025-Q1, 2025-Q2, 2025-Q3, 2025-Q4. - Nếu chu kỳ báo cáo là năm (yearly) thì giá trị có định dạng: YYYY. Ví dụ: 2025, 2026, … |
|
4 |
store_id |
string |
Mã chi nhánh trong trường hợp cơ sở có chuỗi nhà thuốc |
|
5 |
warehouse_id |
string |
Mã kho trong trường hợp quản lý nhiều kho |
|
6 |
items |
array |
Danh sách thuốc trong báo cáo tồn kho |
|
6.1 |
items[].drug_id |
string |
Mã định danh thuốc |
|
6.2 |
items[].unit_id |
string |
Mã đơn vị tính |
|
6.3 |
items[].batch_no |
string |
Số lô sản xuất |
|
6.4 |
items[].expiry_date |
date |
Hạn sử dụng |
|
6.5 |
items[].manufacturer |
object |
Thông tin nhà sản xuất |
|
6.5.1 |
items[].manufacturer.id |
string |
Mã nhà sản xuất |
|
6.5.2 |
items[].manufacturer.name |
string |
Tên nhà sản xuất |
|
6.5.3 |
items[].manufacturer.country |
string |
Mã quốc gia sản xuất |
|
6.5.4 |
items[].gtin |
string |
Mã GTIN tương ứng với cấp độ đóng gói |
|
6.6 |
items[].price |
float |
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
6.7 |
items[].quantity_begin |
integer |
Số lượng tồn đầu tháng |
|
6.8 |
items[].quantity_in |
integer |
Số lượng nhập trong tháng |
|
6.9 |
items[].quantity_out |
integer |
Số lượng xuất trong tháng |
|
6.10 |
items[].quantity_end |
integer |
Số lượng tồn cuối tháng |
|
7 |
status |
string |
Trạng thái xử lý của hệ thống. Tham khảo tại Mục 6.2. Bảng mã trạng thái xử lý của hệ thống. |
- 400: Định dạng dữ liệu không hợp lệ
- 401: Access token hết hạn hoặc không hợp lệ
- 403: Báo cáo tồn kho không tồn tại hoặc không được phép truy cập.
- 429: Vượt quá giới hạn request cho phép
- 500: Lỗi hệ thống
5.5.5. Kiểm tra trạng thái xử lý Báo cáo
API kiểm tra trạng thái xử lý báo cáo tồn kho do các cơ sở gửi lên.
a) Request
- Method: GET
- URL: /inventory-report/{report_id}/status
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
report_id |
string |
50 |
x |
Mã Id của báo cáo |
- Body:
N/A
b) Response
- 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
report_id |
string |
Mã ID của báo cáo |
|
2 |
store_id |
string |
Mã ID của chi nhánh trường hợp cơ sở gồm chuỗi nhà thuốc |
|
3 |
warehouse_id |
string |
Mã ID của kho trong trường hợp có nhiều kho |
|
4 |
type |
string |
Loại báo cáo. Chi tiết tại Mục 6.4.3 |
|
5 |
period |
string |
Chu kỳ báo cáo. - Nếu chu kỳ báo cáo là tháng (monthly) thì giá trị có định dạng: YYYY- MM. Ví dụ: 2025-09, 2025-10, …. - Nếu chu kỳ báo cáo là quý (quarter) thì giá trị có định dạng: YYYY- Qn. Ví dụ: 2025-Q1, 2025-Q2, 2025-Q3, 2025-Q4. - Nếu chu kỳ báo cáo là năm (yearly) thì giá trị có định dạng: YYYY. Ví dụ: 2025, 2026, … |
|
6 |
status |
string |
Trạng thái xử lý của hệ thống. Chi tiết tại Mục 6.2. Bảng mã trạng thái xử lý của hệ thống. |
|
7 |
submitted_at |
datetime |
Thời gian hệ thống tiếp nhận. |
|
8 |
messages |
array[string] |
Danh sách các thông báo lỗi của hệ thống nếu có. |
- 400: Định dạng dữ liệu không hợp lệ
- 401: Access token hết hạn hoặc không hợp lệ
- 403: Không được phép truy cập
- 404: Báo cáo không tồn tại.
- 429: Vượt quá giới hạn request cho phép
- 500: Lỗi hệ thống
5.6.1. Gửi hoá đơn bán lẻ thuốc
API dùng để gửi hoá đơn bán lẻ thuốc (bán theo đơn hoặc bán thông thường) từ hệ thống nhà thuốc lên Hệ thống cơ sở dữ liệu về Dược.
a) Request
- Method: POST
- URL: /invoices
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
N/A
- Body:
|
TT |
Tên trường |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
invoice_date |
datetime |
|
x |
Thời điểm lập hoá đơn |
|
2 |
invoice_no |
string |
50 |
x |
Số hoá đơn |
|
3 |
store_id |
string |
50 |
|
Mã chi nhánh (trong trường hợp cơ sở kinh doanh dược có nhiều chi nhánh) |
|
4 |
prescription_code |
string |
50 |
|
Mã đơn thuốc quốc gia |
|
5 |
customer_name |
string |
200 |
|
Tên khách hàng |
|
6 |
customer_phone |
string |
20 |
|
Số điện thoại khách hàng |
|
7 |
note |
string |
500 |
|
Ghi chú |
|
8 |
items |
array |
|
x |
Danh sách thuốc kiểm kho |
|
8.1 |
items[].drug_id |
string |
20 |
x |
Mã định danh thuốc |
|
8.2 |
items[].unit_id |
string |
20 |
x |
Mã đơn vị tính |
|
8.3 |
items[].quantity |
integer |
|
x |
Số lượng |
|
8.4 |
items[].batch_no |
string |
50 |
x |
Số lô sản xuất |
|
8.5 |
items[].expiry_date |
date |
|
x |
Hạn sử dụng |
|
8.6 |
items[].manufacturer |
object |
|
|
Thông tin nhà sản xuất |
|
8.6.1 |
items[].manufacturer.id |
string |
20 |
|
Mã nhà sản xuất |
|
8.6.2 |
items[].manufacturer.name |
string |
200 |
|
Tên nhà sản xuất |
|
8.6.3 |
items[].manufacturer.country |
string |
5 |
|
Mã quốc gia sản xuất |
|
8.7 |
items[].gtin |
string |
50 |
|
Mã GTIN tương ứng với cấp độ đóng gói |
|
8.8 |
items[].price |
float |
|
|
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
8.9 |
items[].usage_instruction |
string |
500 |
|
Hướng dẫn sử dụng |
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
invoice_id |
string |
Mã ID của hoá đơn bán lẻ thuốc |
|
2 |
status |
string |
Trạng thái xử lý của hệ thống. Chi tiết tại Mục 6.2 |
- 400: Định dạng dữ liệu không hợp lệ
- 401: Access token hết hạn hoặc không hợp lệ
- 429: Vượt quá giới hạn request cho phép
- 500: Lỗi hệ thống
5.6.2. Xem thông tin chi tiết hoá đơn bán lẻ thuốc
API xem thông tin chi tiết hoá đơn bán lẻ thuốc
a) Request
- Method: GET
- URL: /invoices/{invoice_id}
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Dữ liệu tối đa |
Bắt buộc |
Mô tả |
|
1 |
invoice_id |
string |
50 |
x |
Mã Id của hoá đơn bán lẻ thuốc |
- Body:
N/A
b) Response
● 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
invoice_id |
datetime |
Mã Id của hoá đơn bán lẻ thuốc |
|
2 |
invoice_date |
datetime |
Thời điểm lập hoá đơn |
|
3 |
invoice_no |
string |
Số hoá đơn |
|
4 |
store_id |
string |
Mã chi nhánh (trong trường hợp cơ sở kinh doanh dược có nhiều chi nhánh) |
|
5 |
prescription_code |
string |
Mã đơn thuốc quốc gia |
|
6 |
customer_name |
string |
Tên khách hàng |
|
7 |
customer_phone |
string |
Số điện thoại khách hàng |
|
8 |
note |
string |
Ghi chú |
|
9 |
items |
array |
Danh sách thuốc kiểm kho |
|
9.1 |
items[].drug_id |
string |
Mã định danh thuốc |
|
9.2 |
items[].unit_id |
string |
Mã đơn vị tính |
|
9.3 |
items[].quantity |
integer |
Số lượng |
|
9.4 |
items[].batch_no |
string |
Số lô sản xuất |
|
9.5 |
items[].expiry_date |
date |
Hạn sử dụng |
|
9.6 |
items[].manufacturer |
object |
Thông tin nhà sản xuất |
|
9.6.1 |
items[].manufacturer.id |
string |
Mã nhà sản xuất |
|
9.6.2 |
items[].manufacturer.name |
string |
Tên nhà sản xuất |
|
9.6.3 |
items[].manufacturer.country |
string |
Mã quốc gia sản xuất |
|
9.7 |
items[].gtin |
string |
Mã GTIN tương ứng với cấp độ đóng gói |
|
9.8 |
items[].price |
float |
Đơn giá (độ chính xác tới 2 chữ số thập phân). |
|
9.9 |
items[].usage_instruction |
string |
Hướng dẫn sử dụng |
|
10 |
status |
string |
Trạng thái tiếp nhận/xử lý của hệ thống. Chi tiết tại Mục 6.2 |
● 400: Định dạng dữ liệu không hợp lệ
● 401: Access token hết hạn hoặc không hợp lệ
● 403: Không được phép truy cập
● 404: Hoá đơn bán lẻ thuốc không tồn tại
● 429: Vượt quá giới hạn request cho phép
● 500: Lỗi hệ thống
5.6.3. Xem trạng thái xử lý hoá đơn bán lẻ thuốc
API xem trạng thái xử lý hoá đơn bán lẻ thuốc của hệ thống.
a) Request
- Method: GET
- URL: /invoices/{invoice_id}/status
- Headers:
|
TT |
Thuộc tính |
Bắt buộc |
Giá trị |
Mô tả |
|
1 |
Content-Type |
x |
application/json |
|
|
2 |
Authorization |
x |
Bearer {access_token} |
access_token nhận được từ các API xác thực |
- Query Params:
N/A
- Path Variables:
|
TT |
Thuộc tính |
Kiểu dữ liệu |
Độ dài tối đa |
Bắt buộc |
Mô tả |
|
1 |
invoice_id |
string |
50 |
x |
Mã Id của hoá đơn bán lẻ thuốc |
- Body:
N/A
b) Response
- 200: Thành công. Dữ liệu được trả về dưới định dạng json
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
invoice_id |
string |
Mã ID của hoá đơn bán lẻ thuốc |
|
2 |
status |
string |
Trạng thái xử lý của hệ thống. Chi tiết tại Mục 6.2. |
|
3 |
messages |
array[string] |
Danh sách các thông báo lỗi của hệ thống nếu có. |
|
4 |
submitted_at |
datetime |
Thời gian hệ thống tiếp nhận. |
- 400: Định dạng dữ liệu không hợp lệ
- 401: Access token hết hạn hoặc không hợp lệ
- 403: Không được phép truy cập
- 404: Hoá đơn bán lẻ thuốc không tồn tại
- 429: Vượt quá giới hạn request cho phép
- 500: Lỗi hệ thống
6.1. Phản hồi của hệ thống
Các phản hồi của hệ thống theo http code (400, 401, 403, 429, 500) có cấu trúc như sau:
|
TT |
Tên trường |
Kiểu dữ liệu |
Mô tả |
|
1 |
error |
string |
Mã lỗi |
|
2 |
error_description |
string |
Mô tả chi tiết lỗi |
6.2. Bảng mã trạng thái xử lý của hệ thống
|
TT |
Giá trị |
Mô tả |
|
1 |
accepted |
Dữ liệu đã được hệ thống tiếp nhận để xử lý. |
|
2 |
processing |
Dữ liệu đang được hệ thống xử lý |
|
3 |
completed |
Dữ liệu đã được xử lý xong |
|
4 |
error |
Có lỗi xảy ra trong quá trình xử lý dữ liệu (Lỗi hệ thống) |
|
5 |
rejected |
Hệ thống từ chối xử lý do dữ liệu gửi lên không tuân thủ các ràng buộc, logic yêu cầu. |
6.3. Kiểu dữ liệu
6.3.1. Datetime
Datetime là dữ liệu kiểu chuỗi có định dạng là YYYY-MM- DDThh:mm:ss. Trong đó:
- YYYY: gồm 4 chữ số biểu diễn năm.
- MM: gồm 2 chữ số biểu diễn tháng.
- DD: gồm 2 chữ số biểu diễn ngày.
- T: ký tự phân tách ngày và giờ.
- hh: 2 chữ số biểu diễn giờ nằm trong khoảng 00-23.
- mm: gồm 2 chữ số biểu diễn phút trong khoảng 00-59.
- ss: gồm 2 chữ số biểu diễn giây trong khoảng 00-59.
Múi giờ mặc định là giờ Hà Nội (GMT+7).
Ví dụ: 2025-12-07T16:24:20
6.3.2. Date
Date là dữ liệu kiểu chuỗi (string) có định dạng là YYYY-MM-DD. Trong đó:
- YYYY: gồm 4 chữ số biểu diễn năm.
- MM: gồm 2 chữ số biểu diễn tháng.
- DD: gồm 2 chữ số biểu diễn ngày. Ví dụ: 2025-12-07
6.4. Từ điển dữ liệu
6.4.1. Loại phiếu nhập kho/Lý do nhập kho
|
STT |
Giá trị |
Mô tả |
|
1 |
supplier |
Nhập từ nhà cung cấp |
|
2 |
opening-balance |
Nhập tồn đầu kỳ |
|
3 |
return |
Nhập trả lại từ khách hàng |
|
4 |
transfer-in |
Nhập điều chuyển |
|
5 |
manufactured |
Nhập kho thành phẩm |
|
6 |
imported |
Nhập khẩu |
6.4.2. Loại phiếu xuất kho/Lý do xuất kho
|
STT |
Giá trị |
Mô tả |
|
1 |
sale-wholesale |
Xuất bán buôn |
|
2 |
sale-retail |
Xuất bán lẻ |
|
3 |
transfer-out |
Xuất điều chuyển |
|
4 |
return |
Xuất trả hàng nhà cung cấp |
|
5 |
recall |
Xuất thu hồi theo công văn/khuyến cáo của Bộ Y tế |
|
6 |
destroy |
Xuất huỷ |
|
7 |
other |
Xuất khác |
6.4.3. Loại báo cáo
|
STT |
Giá trị |
Mô tả |
|
1 |
monthly |
Báo cáo tháng |
|
2 |
quarterly |
Báo cáo quý |
|
3 |
yearly |
Báo cáo năm |
6.4.4. Phân loại thuốc kê đơn
|
STT |
Giá trị |
Mô tả |
|
1 |
0 |
Thuốc không kê đơn |
|
2 |
1 |
Thuốc kê đơn |
6.4.5. Phân loại thuốc kiểm soát đặc biệt
|
STT |
Giá trị |
Mô tả |
|
1 |
0 |
Thuốc không kiểm soát đặc biệt |
|
2 |
1 |
Thuốc gây nghiện, chứa dược chất gây nghiện |
|
3 |
2 |
Thuốc hướng thần, chứa dược chất hướng thần |
|
4 |
3 |
Thuốc tiền chất, chứa tiền chất |
|
5 |
4 |
Thuốc độc |
|
6 |
5 |
Thuốc cấm dùng cho các bộ, ngành |
|
7 |
6 |
Thuốc phóng xạ |
Đăng xuất
Việc làm Hồ Chí Minh