Tổng quan
econtractid API là API RESTful cho phép tích hợp đầy đủ chức năng ký hợp đồng điện tử vào hệ thống của bạn.
Base URL Production
https://api.econtractid.vn/api
Base URL Sandbox
https://sandbox-api.econtractid.vn/api
Xác thực
Tất cả API đều yêu cầu xác thực. Có 2 phương thức:
1. Bearer Token (JWT)
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
2. API Key
X-API-Key: eck_live_xxxxxxxxxxxxxxxxxxxx
Xem chi tiết tại Xác thực & Phân quyền.
Định dạng Request
Content-Type: application/json
Accept: application/json
Định dạng Response
Tất cả response đều có cấu trúc chuẩn:
{
"statusCode": 200,
"message": "Thành công",
"data": { ... },
"meta": {
"page": 1,
"limit": 20,
"total": 100,
"totalPages": 5
}
}
| Trường | Kiểu | Mô tả |
|---|
statusCode | number | HTTP status code |
message | string | Thông báo kết quả |
data | object / array | Dữ liệu trả về |
meta | object | Phân trang (chỉ có với danh sách) |
Phân trang
Các API danh sách hỗ trợ phân trang qua query params:
GET /api/contracts?page=1&limit=20&sortBy=createdAt&order=DESC
| Param | Mặc định | Mô tả |
|---|
page | 1 | Số trang |
limit | 20 | Số bản ghi mỗi trang (tối đa 100) |
sortBy | createdAt | Trường sắp xếp |
order | DESC | ASC hoặc DESC |
Rate Limiting
| Loại | Giới hạn |
|---|
Xác thực (/auth/*) | 10 request / phút |
| API thông thường | 100 request / phút |
| Upload file | 10 request / phút |
Khi vượt giới hạn, API trả về 429 Too Many Requests.
Sandbox & Testing
Môi trường sandbox cho phép test toàn bộ luồng mà không ảnh hưởng dữ liệu thật.
Trong sandbox, email thông báo sẽ chỉ gửi tới địa chỉ đã đăng ký trong tài khoản developer — không gửi tới email bên ký thực tế.
Tạo tài khoản sandbox tại developer.econtractid.vn.
SDK & Thư viện
| Ngôn ngữ | Package |
|---|
| JavaScript / TypeScript | npm install @econtractid/sdk |
| PHP | composer require econtractid/sdk |
| Python | pip install econtractid-sdk |
import { econtractidClient } from '@econtractid/sdk';
const client = new econtractidClient({
apiKey: process.env.econtractid_API_KEY,
baseUrl: 'https://api.econtractid.vn/api',
});
const contracts = await client.contracts.list({ page: 1, limit: 10 });