Skip to main content

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ườngKiểuMô tả
statusCodenumberHTTP status code
messagestringThông báo kết quả
dataobject / arrayDữ liệu trả về
metaobjectPhâ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
ParamMặc địnhMô tả
page1Số trang
limit20Số bản ghi mỗi trang (tối đa 100)
sortBycreatedAtTrường sắp xếp
orderDESCASC hoặc DESC

Rate Limiting

LoạiGiới hạn
Xác thực (/auth/*)10 request / phút
API thông thường100 request / phút
Upload file10 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 / TypeScriptnpm install @econtractid/sdk
PHPcomposer require econtractid/sdk
Pythonpip 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 });