Hotline: 0985.305.307
Trang chủ / Hướng Dẫn / Hướng dẫn sử dụng hệ thống quản lý hoá điện tử Viettel

tieu de bai viet

Hướng dẫn sử dụng hệ thống quản lý hoá điện tử Viettel

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

CHI TIẾT
5.Cấu hình cho Gmail, Hotmail, Yahoo, Outlook


1. Gmail

Cấu hình chấp nhận cho gửi mail từ server của SInvoice

  • Truy cập link https://accounts.google.com/b/0/DisplayUnlockCaptcha và chọn tiếp tục (Continue)
  • Truy cập link https://myaccount.google.com/lesssecureapps
  • Bật tùy chọn Cho phép ứng dụng kém an toàn (Allow users to manage their access to less secure apps)

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

Cấu hình các thông số trên hệ thống

  • Địa chỉ server: smtp.gmail.com
  • Cổng: 587
  • Loại bảo mật STARTTLS

 

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

Chú ý: Nên dùng 01 trình duyệt để displayUnlockCaptcha và bật lesssecureapps cho gmail, còn 01 trình duyệt khác vào trang hóa đơn điện tử để cấu hình email.

Chú ý:

1. Quy định của Google đối với tài khoản email:

- Một ngày gửi được tối đa cho 500 người nhận (đối với tài khoản trial)

Trong trường hợp 1 email người dùng định nghĩa có 1 người trong danh sách To, 1 người trong danh sách CC thì sẽ tính là 2 người nhận.

Đối với cấu hình email đang để CC và công ty có số lượng người nhận trong 1 ngày quá 500 người

==> Google sẽ không cho phép gửi email.

Vì vậy, doanh nghiệp cần kiểm tra thông tin người nhận gửi đi trong một ngày để đảm bảo gửi được email đến người mua.

Chi tiết quy định của google trong link đính kèm.

https://group-mail.com/sending-email/email-send-limits-and-options/

2. Trường hợp người dùng đã nhập đúng các thông tin nhưng vẫn không cấu hình được gmail.

Nguyên nhân: Google bảo mật nhiều lớp

Mỗi một lần người dùng vào gmail từ những nguồn PC/Device khác nhau, google sẽ kiểm tra xác minh lại thông tin người đó là chính chủ đăng ký email qua số điện thoại đã đăng ký

Để cấu hình thành công email và chắc chắn email sẽ được gửi đến người mua

Trước đó, người dùng cần vào trình duyệt, đăng nhập vào gmail, hệ thống sẽ gửi thông báo trên màn hình

 

 

 

  • Người dùng cần vào điện thoại, lấy mã code google gửi, nhấn Yes tại giao diện trên
  • Người dùng nhập vào mã code hệ thống đã gửi, vào gmail check mail như bình thường
  • Người dùng quay lại giao diện cấu hình email trên hệ thống hóa đơn điện tử, thực hiện cấu hình lại xem hệ thống còn quay nữa không

Máy tính cấu hình email và máy tính xác nhận mã code google phải cùng là 1 địa chỉ IP.

 

2. Yahoo mail

Cấu hình chấp nhận cho gửi mail từ server của SInvoice

  • Truy cập link https://login.yahoo.com/account/security
  • Đăng nhập vào và nhấn chọn Allow apps that use less secure sign in

 

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

Cấu hình các thông số trên hệ thống

  • Địa chỉ server: smtp.mail.yahoo.com
  • Cổng: 587
  • Loại bảo mật STARTTLS

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

3. Hotmail

Cấu hình các thông số trên hệ thống

  • Địa chỉ server: smtp.live.com
  • Cổng: 587
  • Loại bảo mật STARTTLS

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

 

4. Outlook

Trường hợp người dùng cấu hình outlook cần cấu hình theo hướng dẫn sau:

Nhập thông tin từ cấu hình outlook:

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

vào dữ liệu cần cấu hình email Hóa đơn điện tử:

Cấu hình cho Gmail, Hotmail, Yahoo, Outlook cho hoá đơn điện tử

 

 

Tài liệu tích hợp api và webservice hợp đồng điện tử scontract

Tài liệu tích hợp api và webservice hợp đồng điện tử scontract

CHI TIẾT

Tài liệu tích hợp api và webservice hợp đồng điện tử

 

MỤC LỤC

  1. BẢNG GHI NHẬN THAY ĐỔI 2
  2. Thông tin chung. 2
  3. Danh sách api 4

3.1. Đăng nhập. 4

3.2. Tạo khách hàng. 5

3.3.       Lấy danh sách khách hàng của doanh nghiệp. 10

3.4. Lấy danh sách loại hợp đồng. 15

3.5. Lấy danh sách hợp đồng cha đã ký. 16

3.6. Tạo hợp đồng từ file chỉ có 1 khách hàng cá nhân ký. 17

3.7. API xem hợp đồng. 21

3.10. Lấy danh sách hợp đồng tôi lập. 25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.      BẢNG GHI NHẬN THAY ĐỔI

 

*A – Tạo mới, M – Sửa đổi, D – Xóa bỏ

Ngày

thay đổi

Vị trí

thay đổi

A*

M, D

Nguồn gốc

Phiên

bản cũ

Mô tả thay đổi

Phiên

bản mới

02/03/2020

Toàn bộ

A

Tạo mới tài liệu

 

 

v2.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.      Thông tin chung

Response của server trả về ở dạng base64 , phải thực hiện decode base64 để chuyển thành dạng json

Hướng dẫn decode response

Bước 1. Lấy token hiện tại của tài khoản đăng nhập(nếu chưa đăng nhập bỏ qua bước này). Ví dụ token hiện tại: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyMTA1MjAyMDM5LTEyMCIsInNhbHQiOiJAK15RSDFLX3J5IiwiZXhwIjoxNjIyNzM5NjAwLCJpYXQiOjE2MjE5MTAwODMsInVzZXJuYW1lIjoiMjEwNTIwMjAzOS0xMjAifQ.V2y0lPToUmiFNLTKQCYu2za88GqqqscQ6z1QBVsUwmk4U_BkbH2ZXdvKai_QFyfNyTK6lulZhza4HjkXkUJ-_w

Bước 2. Encode base64 token ở trên được chuỗi base64 mới.

Ví dụ với token trên: ZXlKaGJHY2lPaUpJVXpVeE1pSjkuZXlKemRXSWlPaUl5TVRBMU1qQXlNRE01TFRFeU1DSXNJbk5oYkhRaU9pSkFLMTVSU0RGTFgzSjVJaXdpWlhod0lqb3hOakl5TnpNNU5qQXdMQ0pwWVhRaU9qRTJNakU1TVRBd09ETXNJblZ6WlhKdVlXMWxJam9pTWpFd05USXdNakF6T1MweE1qQWlmUS5WMnkwbFBUb1VtaUZOTFRLUUNZdTJ6YTg4R3FxcXNjUTZ6MVFCVnNVd21rNFVfQmtiSDJaWGR2S2FpX1FGeWZOeVRLNmx1bFpoemE0SGprWGtVSi1fdw==

Bước 3. Giả sử response nhận được ở server như sau:

ZXlKaGJHY2lPaUpJVXpVeE1pSjkuZXlKemRXSWlPaUl5TVRBMU1qQXlNRE01TFRFeU1DSXNJbk5oYkhRaU9pSkFLMTVSU0RGTFgzSjVJaXdpWlhod0lqb3hOakl5TnpNNU5qQXdMQ0pwWVhRaU9qRTJNakU1TVRBd09ETXNJblZ6WlhKdVlXMWxJam9pTWpFd05USXdNakF6T1MweE1qQWlmUS5WMnkwbFBUb1VtaUZOTFRLUUNZdTJ6YTg4R3FxcXNjUTZ6MVFCVnNVd21rNFVfQmtiSDJaWGR2S2FpX1FGeWZOeVRLNmx1bFpoemE0SGprWGtVSi1fdw==eyJjb2RlIjoiMjAwIiwibWVzc2FnZSI6Ik9LIiwiZGF0YSI6IntcImlzUGFyZW50XCI6dHJ1ZSxcInVzZXJUeXBlXCI6MSxcInBlcm1pc3Npb25zXCI6WzAsMSwyLDMsNCw1LDZdfSIsInN1Y2Nlc3MiOnRydWV9

Phần bôi đỏ chính là token đã được encode base64(dấu hiệu nhận biết là đoạn ==eyj), Xoá phần bôi đỏ đi, phần còn lại decode base64 ta nhận được dữ liệu json mà server trả về

Ví dụ với response ở trên, response nhận được sau khi decode:

{

   "code":"200",

   "message":"OK",

   "data":"{\"isParent\":true,\"userType\":1,\"permissions\":[0,1,2,3,4,5,6]}",

   "success":true

}

 

Trong đó phải chú ý đến các trường data, success:

data:là dữ liệu nhận được từ server ở dạng string, cần parse về json để sử dụng

success: thể hiện có lỗi xảy ra hay không, success=true thành công, success=true lỗi.

Nếu response nhận được từ server KHÔNG chứa token thì có thể decode luôn để lấy data

 

3.      Danh sách api

3.1. Đăng nhập

Endpint: /auth/login

Method: POST

Request

Tên trường

Kiểu dữ liệu

IN

Mô tả

password

String

body

Mật khẩu

username

String

body

Username

captcha

String

body

Captcha: Khi đăng nhập sai quá 5 lần, hệ thống sẽ yêu cầu xác thực reCAPTCHA và bắt buộc phải gửi  captcha token lên server mới có thể đăng nhập được. Nếu chưa nhập sai mật khẩu 5 lần thì không phải gửi captcha

 

Response

Name

In

Type

Description

enterpriseId

enterpriseId

String

ID doanh nghiệp

fullName

 

fillName

String

Tên doang nghiệp

isParent

isParent

bool

Có phải doanh nghiệp cha hay không

permissions

permissions

Array<int>

Danh sách quyền

tenantId

tenantId

string

tenantId

token

 

string

Token để sử dụng cho những request sau

userId

 

string

User id

userType

 

number

Loại user

username

 

string

username

 

 

 

 Example

{

   "token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwic2FsdCI6InZnVmhKODFhY0EiLCJleHAiOjE2MjI3Mzk2MDAsImlhdCI6MTYyMTkxMTE3NiwidXNlcm5hbWUiOiIxMjM0NTY3ODkwIn0.bUpDvQZF8DZEsjvF86VbJ1KwBsDBY916mPwmj7HHvmYMBYsLnsqkcvb0FX50_VzBNTtZkZ95gMMP8HRQdR_Cyw",

   "tenantId":"NTRmJSMkc0EmKjEu003d",

   "userId":"NWE0ZmQkaHNBKjQwNAu003du003d",

   "enterpriseId":"NTRmc0EmKjMzNgu003du003d",

   "username":"1234567890",

   "fullName":"khách hàng test xem có gửi tài khoản không",

   "isParent":false,

   "userType":5,

   "permissions":[

      0,

      1,

      6

   ]

}

3.2. Tạo khách hàng

Tạo khách hàng gồm 2 bước

Bước 1. Upload danh sách tệp đính kèm lên và lấy lại đường dẫn

Bước 2. Đưa thông tin khác hàng lên

  1. API upload file đính kèm

Endpoint: file/upload/customer/

Method: POST

Request

Name

In

Type

Description

file

Formdata

binary

File upload qua form data. Có thể gửi nhiều file cùng 1 lúc, chỉ chấp nhập file pdf hoặc file ảnh

Authorization

header

String

Bearer <token>

Code ví dụ gửi file formdata javascript

var myHeaders = new Headers();

myHeaders.append("Authorization", "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyMTA1MjAyMDM5LTEyMCIsInNhbHQiOiIqSCkzKkMxOWQ9IiwiZXhwIjoxNjIyNzM5NjAwLCJpYXQiOjE2MjE5MTIxOTYsInVzZXJuYW1lIjoiMjEwNTIwMjAzOS0xMjAifQ.9sDjRAwGvLJgNP4L8CbXzYDvTIhZuzMQA_h85_F5jukwOmR_63sTMCyRDdG1JdEQev4iS57SQemn7n70cjqnvQ");

 

var formdata = new FormData();

formdata.append("file", fileInput.files[0], "sample.pdf");

formdata.append("file", fileInput.files[0], "ky_lo.pdf");

 

var requestOptions = {

  method: 'POST',

  headers: myHeaders,

  body: formdata,

  redirect: 'follow'

};

 

fetch("http://10.60.156.247:8441/scontract-web-api-private/api/file/upload/customer/", requestOptions)

  .then(response => response.text())

  .then(result => console.log(result))

  .catch(error => console.log('error', error));

 

Response

Response

Description

[

   {

      "path":"3A5E01F061A4824426571281C957FFD46FF43846180C7752C37FBE2C01932DD7",

      "fileName":"sample.pdf",

      "fileSize":3028

   },

   {

      "path":"EBFA517A78DBDEE357292CC454F13E0099DDCDC729303E23D28BE8AE214C7C62",

      "fileName":"ky_lo.pdf",

      "fileSize":236374

   }

]

Trả về danh sách tương ứng với với file upload lên

 

path: đường dẫn tương đối trên server, dùng đường dẫn này cho bước tiếp theo

fileName: Tên file

fileSize:  dung lượng file

 

  1. API lưu thông tin hợp đồng

Endpoint: /customer/add

Method: POST

Request

Name

In

required

Type

Description

accountNumber

Body

No

String

Số tài khoản ngân hàng

address

Body

Yes

String

Địa chỉ

attachments

Body

No

array

Danh sách file đính kèm là danh sách lấy được

từ api upload file

bankBranch

Body

No

String

Tên chi nhánh ngân hàng

bankName

Body

No

Number

Tên ngân hàng

birthday

Body

No

Number

Ngày sinh

certificateId

Body

Yes

Number

Loại giấy tờ:

30000: CMTND

30001: Hộ chiếu

30002: Giấy tờ khác

certificateNo

Body

Yes

Number

Số giấy tờ

cityId

Body

Yes

Number

Id thành phố

customerType

Body

Yes

Number

Loại khách hàng:

10000 là khách hàng cá nhân

districtId

Body

Yes

String

Huyện id

email

Body

Yes

String

email

enterpriseId

Body

Yes

String

Id doanh nghiệp nhận được khi đăng nhập

fax

Body

No

String

fax

issuedAt

Body

Yes

String

Nơi cấp giấy tờ

issuedDate

Body

Yes

String

Ngày cấp giấy tờ

name

Body

Yes

String

Tên khách hàng

phone

Body

Yes

String

Số điện thoại khách hàng

representativeCertificateId

Body

 

Number

30000

 

sex

Body

No

Bool

Giới tính

True: nam

False: nữ

status

Body

 

Bool

true

wardId

Body

No

String

Xã id

 

Example

{

   "enterpriseId":"NTRmc0EmKjI5NQ==",

   "customerType":10000,

   "name":"tên kh",

   "status": true,

   "certificateId":30000,

   "certificateNo":"32323232",

   "issuedDate":"2021-05-24T17:00:00.000Z",

   "issuedAt":"543353",

   "representativeCertificateId":30000,

   "birthday":"2021-05-24T17:00:00.000Z",

   "sex":true,

   "accountNumber":"543534534",

   "bankName":"ngân hang abc",

   "bankBranch":"chi nhánh ngân hang",

   "phone":"0978610265",

   "fax":"4335545",

   "email":"muoinguyen01@viettel.com.vn",

   "address":"địa chỉ 1",

   "cityId":"A076",

   "wardId":"A076002001",

   "districtId":"A076002",

   "attachments":[

   {

      "path":"3A5E01F061A4824426571281C957FFD46FF43846180C7752C37FBE2C01932DD7",

      "fileName":"sample.pdf",

      "fileSize":3028

   },

   {

      "path":"EBFA517A78DBDEE357292CC454F13E0099DDCDC729303E23D28BE8AE214C7C62",

      "fileName":"ky_lo.pdf",

      "fileSize":236374

   }

]}

 

Response Parameters

Name

In

Type

Description

 

body

String

Mã khách hàng

 

 

Example

NWQ4NGYlZGhzQSYqMjg3

3.3.       Lấy danh sách khách hàng của doanh nghiệp

Endpoint:   /customer/filter

Method: POST

Request

Name

In

Type

Description

enterpriseId

Body

String

Id doanh nghiệp hiện tại

enterpriseTypeId

Body

Array<String>

Loại khách hàng:

Cá nhân: ["10000"]

Công ty tư nhân: ["10001”]

Cơ quan chính quyền: ["10002”]

Cơ quan chính phủ: [“10003”]

Doanh nghiệp nhà nước: [“10004”]

keyword

Body

String

Tìm theo email, điện thoại, tên khách hàng

page

Body

Number

Số trang: dùng để phân trang

pageSize

Body

Number

Số lượng bản ghi trong 1 trang: dùng để phân trang

taxCodeOrCertificateNo

Body

String

Tìm theo mã số thuế , CMTND, số giấy tờ

status

Body

Array<Int>

Để mặc định = [0, 1]

Authorization

header

String

Bearer <token>

Example

{

   "tenantId":"NTRmJSMkc0EmKjE=",

   "page":0,

   "pageSize":10,

   "enterpriseId":"NTRmc0EmKjI5NQ==",

   "taxCodeOrCertificateNo":"taxCodeOrCertificateNo",

   "keyword":"keyword",

   "status":[0, 1],

   "enterpriseTypeId":["10000"]

}

Response

Name

In

Type

Description

currentPage

body

Number

Trả về danh sách tương ứng với với file upload lên

 

path: đường dẫn tương đối trên server, dùng đường dẫn này cho bước tiếp theo

fileName: Tên file

fileSize:  dung lượng file

totalRow

body

Number

 

pageSize

body

Number

 

dataRow

 

[

{

         "id":String,

         "customerId”: String,

         "enterpriseId":String,

         "customerType":Number,

         "name":String,

         "status":Bool,

         "createdBy":String,

         "certificateId":Number,

         "certificateNo":String,

         "issuedDate": Date,

         "issuedAt":String,

         "representativeCertificateId":30000,

         "sex":Bool,

         "phone":String,

         "email": String,

         "address":String,

         "wardId":String,

         "cityId":String,

         "districtId":String,

         "isDeleted":Bool,

         "version":0,

         "isSkipVersion":false,

         "hasPermission":true,

         "attachments":[

         ]

      }

]

Id: Id bản ghi

customerId: id khách hàng

enterpriseId: id doanh nghiệp của khách hàng

customerType: Loại khách hàng

name: Tên khách hàng

status:

createdBy: Id của user tạo khách hàng

certificateId:Loại giấy tờ

certificateNo: Số giấy tờ

issuedDate: Ngày cấp giấy tờ

issuedAt: Nơi cấp giấy tờ

sex: giới tính

phone: Số điện thoại

email

address: Địa chỉ chi tiết

wardId: id xã

cityId: id tỉnh

districtId: id huyện

isDeleted: khách hàng đã bị xoá chưa

 

 

Example

{

   "currentPage":0,

   "pageSize":10,

   "totalRow":2,

   "dataRow":[

      {

         "id":"NWQ4NGYlZGhzQSYqMjg3",

         "customerId":"NTRmc0EmKjQ4Mgu003du003d",

         "enterpriseId":"NTRmc0EmKjI5NQu003du003d",

         "customerType":10000,

         "name":"fdfdfdfdfdfd",

         "status":true,

         "createdBy":"NWE0ZmQkaHNBKjM1Mwu003du003d",

         "certificateId":30000,

         "certificateNo":"dfdfđ",

         "issuedDate":"May 25, 2021 12:00:00 AM",

         "issuedAt":"fdfd",

         "representativeCertificateId":30000,

         "sex":true,

         "phone":"0978610265",

         "email":"muoinguyen01@viettel.com.vn",

         "address":"hfhfghgf",

         "wardId":"A076003002",

         "cityId":"A076",

         "districtId":"A076003",

         "isDeleted":false,

         "version":0,

         "isSkipVersion":false,

         "hasPermission":true,

         "attachments":[

           

         ]

      },

      {

         "id":"NWQ4NGYlZGhzQSYqMjg2",

         "customerId":"NTRmc0EmKjQ4MQu003du003d",

         "enterpriseId":"NTRmc0EmKjI5NQu003du003d",

         "customerType":10000,

         "name":"tên kh",

         "status":true,

         "createdBy":"NWE0ZmQkaHNBKjM1Mwu003du003d",

         "certificateId":30002,

         "certificateNo":"32323232",

         "issuedDate":"May 25, 2021 12:00:00 AM",

         "issuedAt":"543353",

         "representativeCertificateId":30000,

         "birthday":"May 25, 2021 12:00:00 AM",

         "sex":false,

         "accountNumber":"543534534",

         "bankName":"ngân hang abc",

         "bankBranch":"chi nhánh ngân hang",

         "phone":"0978610265",

         "fax":"4335545",

         "email":"muoinguyen01@viettel.com.vn",

         "address":"chân sai vặt",

         "wardId":"A076002001",

         "cityId":"A076",

         "districtId":"A076002",

         "isDeleted":false,

         "version":4,

         "isSkipVersion":false,

         "hasPermission":true,

         "attachments":[

            {

               "id":"NWQ4NGYlZGhzQSYqMTE0",

               "path":"20210525/243027BD0F920DD5497CB0CBCC652959C76761DB3810B44E7E717D7976ECD972.pdf",

               "fileName":"PL01_Checklist_Kiemsoat_scontract.pdf",

               "isDeleted":false,

               "fileSize":183294

            },

            {

               "id":"NWQ4NGYlZGhzQSYqMTE1",

               "path":"20210525/79082B3A3991EC8E5992DC66152D09F6123454A17EBEDE8AEB70EB410F4B38DF.pdf",

               "fileName":"BM01_PYC_Scontract_3710293_NFS-signed.pdf",

               "isDeleted":false,

               "fileSize":284164

            }

         ]

      }

   ]

}

 

3.4. Lấy danh sách loại hợp đồng

Endpoint: common/enterprise/service-type/<enterpriseId>

Method: GET

Request

Name

In

Type

Description

enterpriseId

Query

string

Id của doanh nghiệp muốn lấy danh sách loại hợp đồng

Authorization

header

String

Bearer <token>

Example

common/enterprise/service-type/ NTRmc0EmKjI5NQ==

Response

Name

Description

[

   {

      "id":242,

      "name":"điện",

      "nameAlias":"dien"

   },

   {

      "id":245,

      "name":"hợp đồng có mẫu sử dụng",

      "nameAlias":"hop dong co mau su dung"

   },

   {

      "id":243,

      "name":"Hợp đồng điện",

      "nameAlias":"hop dong dien"

   },

]

Trả về danh sách loại hợp đồng

id: id của serviceType

name: tên serviceType

nameAlias

 

3.5. Lấy danh sách hợp đồng cha đã ký

Endpoint: /contract/parent-by-name?filter=<keyword>

Method: GET

Request

Name

In

Type

Description

filter

Query

string

Keyword truyền vào để tìm kiếm hợp đồng cha

Authorization

header

String

Bearer <token>

Example

/contract/parent-by-name?filter=hopdongcha

Response

Response

Description

[

   {

      "id":"NTA0ZHMkZCNzQSYqJioxMDQ1MQu003du003d",

      "name":"đổi loại hđ 3",

      "code":"doiloaihd3",

      "serviceType":229,

      "filePath":"20210129/EEE974EED7423539D657BD2B2DC0DA3B8135CEB9451E45AD2498CB154EBA02CD.pdf"

   }

]

Trả về danh sách hợp đồng

id: id của hợp đồng

name: tên hợp đồng

code: Mã hợp đồng

serviceType: ServiceType id

filePath: đường dẫn file hợp đồng chính

 

3.6. Tạo hợp đồng từ file chỉ có 1 khách hàng cá nhân ký

Các bước tạo hợp đồng từ file

Bước 1: upload file hợp đồng lên server, nhận lại đường dẫn

Bước 2: upload file đính kèm hợp đồng(nếu có), nhận lại đường dẫn

Bước 3: Lưu thông tin chi tiết hợp đồng

 

  1. API upload file đính kèm

Endpoint: /contract/upload/file

Method: POST

Request

Name

In

Type

Description

file

Formdata

binary

Với file hợp đồng chính, chỉ upload 1 file

Authorization

header

String

Bearer <token>

Code ví dụ gửi file formdata javascript(Tương tự upload file đính kèm khách hàng, chỉ khác đường dẫn file)

Response

Response

Description

A5EBFC96407F03766F46729C84C48C6D1C1593B42E04D412755C3DE1D39063B7

Trả về đường dẫn file hợp đồng đã được mã hoá, dùng giá trị này cho các bước tiếp theo

 

  1. API upload file đính kèm

Endpoint: /file/upload/contractAttachment

Method: POST

Mô tả:

File đính kèm không bắt buộc, chỉ khi upload file đính kèm lên mới cần gọi api này

Request

Name

In

Type

Description

file

Formdata

binary

Với file hợp đồng chính, chỉ upload 1 file

Authorization

header

String

Bearer <token>

Code ví dụ gửi file formdata javascript(Tương tự upload file đính kèm khách hàng, chỉ khác đường dẫn file)

Response

Response

Description

[

   {

      "fileName":"sample.pdf",

      "fileSize":3028,

      "path":"A7D559822E70EB7DA5DED2A5C6045A45E34069A400FA055BF281834F09BD7C35"

   },

   {

      "fileName":"ky_lo.pdf",

      "fileSize":236374,

      "path":"1954FF558531A7BC082903595BF776A0FB174E4597550EB0769D70AD012D35EC"

   }

]

Trả về danh sách đường dẫn cho các file upload

filename: Tên file upload

fileSize: dung lượng file

path: đường dẫn của file đã được mã hoá

 

  1. API lưu thông tin chi tiết hợp đồng

Endpoint: /contract/file

Method: POST

Mô tả:

File đính kèm không bắt buộc, chỉ khi upload file đính kèm lên mới cần gọi api này

Request

Name

In

Required

Type

Description

code

body

Yes

String

Mã hợp đồng

name

body

Yes

String

Tên hợp đồng

parentId

body

No

String

Mã hợp đồng cha(nếu có)

enterpriseId

body

Yes

String

Mã doanh nghiệp tạo hợp đồng

filePath

body

Yes

String

Đường dẫn file hợp đồng chính  nhận được ở bước trên

expiredDate

body

No

Date

Ngày hết hạn hợp đồng

newUploadContractAttachments

body

No

Array<{

fileName: "sample.pdf"

fileSize: 3028

path: "A7D559822E70E”

}>

Danh sách file đính kèm nhận được ở bước trên

serviceType

body

Yes

Number

Service type id

enterpriseSign

body

Yes

Array<{

certificateNo: "1234567890"

customerId: "NWQ4NGYlZGhzQSYqMjQ2"

email: "muoinv@is.viettel.com.vn"

enterpriseId: "NTRmc0EmKjMzNg=="

enterpriseName: ""

isCreatedSide: false

isSignNoLogin: false

name: "khách hàng test xem có gửi tài khoản không"

order: 1

phone: "0978610265"

status: 1

useDataForTemplate: false

}>

Danh sách chủ thể ký,

Với Trường hợp chỉ có 1 khách hàng cá nhân ký thì danh sách này chỉ có 1 phần tử chứa thông tin của khách hàng cá nhân

certificateNo: Số giấy tờ Kh

customerId: Id khách hàng

email: email khách hàng

enterpriseId: enterprise id khách hàng

enterpriseName: enterpriseName của khách hàng

isCreatedSide: Có phải chủ thể tạo hay không

isSignNoLogin: có cho phép ký không đăng nhập hay không

name: tên khách hàng

order: Thứ tự ký, trường hợp này auto = 1

phone: Số điện thoại

status: 1 : Nháp

useDataForTemplate: Có fill thông tin vào mẫu hợp đồng hay khong

signPage

body

Yes

Number

Trang chứa chữ ký

userSign

body

No

Array

Danh sách người ký, với trường hợp chỉ có 1 khách hàng cá nhân ký thì danh sách này rỗng

Authorization

header

 

String

Bearer <token>

Response

Response

Description

{

   "code":"CREATED",

   "message":"Tạo mới thành công.",

   "success":true

}

 

 

 

3.7. API xem hợp đồng

  1. Xem thông tin hợp đồng

EndPoint: /contract/<contractId>

Method: GET

Request

Name

In

Type

Description

contractId

Query params

string

Id của hợp đồng

Authorization

header

String

Bearer <token>

 

Response

Response

Description

{

   "contractDTO":{

      "id":"NTA0ZHMkZCNzQSYqJioxMTc0OAu003du003d",

      "code":"mahopdong123456",

      "name":"tên hợp đồng",

      "parentId":"NTA0ZHMkZCNzQSYqJioxMDM5Ngu003du003d",

      "enterpriseId":"NTRmc0EmKjI5NQu003du003d",

      "documentTypeEnterpriseId":"NWFyNCNmQSYmKjEwMwu003du003d",

      "status":1,

      "filePath":"CD78860682F3B65B8EA82A97B6013337BC59EC44C7C6C5EE47CC80F683988792",

      "typeId":1,

      "isDeleted":false,

      "createdBy":"NWE0ZmQkaHNBKjM1Mwu003du003d",

      "expiredDate":"May 25, 2021 12:00:00 AM",

      "isSended":false,

      "version":0,

      "serviceType":232,

      "contractAttachments":[

        

      ],

      "newUploadContractAttachments":[

         {

            "id":"NTA0ZHMkZCNzQSYqJioxMzgw",

            "fileName":"sample.pdf",

            "fileSize":3028,

            "path":"A7D559822E70EB7DA5DED2A5C6045A45E34069A400FA055BF281834F09BD7C35",

            "isDeleted":false,

            "isNewUpload":true

         },

         {

            "id":"NTA0ZHMkZCNzQSYqJioxMzgx",

            "fileName":"ky_lo.pdf",

            "fileSize":236374,

            "path":"1954FF558531A7BC082903595BF776A0FB174E4597550EB0769D70AD012D35EC",

            "isDeleted":false,

            "isNewUpload":true

         }

      ],

      "isDifferentEnterprise":false,

      "signPage":1

   },

   "inMultiSignProgress":false,

   "creatorSide":true,

   "serviceType":{

      "id":232,

      "name":"loại hợp đồng 2"

   },

   "isBlockSign":false,

   "isAutoSign":false,

   "isCaSignExpire":false

}

Id: Mã hợp đồng

code: Mã hợp đồng

name: Tên hợp đồng

parentId: Mã hợp đồng cha

enterpriseId: id doanh nghiệp tạo hợp đồng

status: trạng thái hợp đồng

1: Nháp

2: Đang xử lý

3:

4:

5:

filePath: đường dẫn file pdf chính

isDeleted: Đã xoá hay chưa

createdBy: Id người tạo

expiredDate: Ngày hết hạn

serviceType: Mã loại hợp đồng

newUploadContractAttachments: Danh sách file đính kèm hợp đồng

inMultiSignProgress: hợp đồng có đang ký theo lô hay không

isDifferentEnterprise: Hợp đồng có đang được xem bởi khách hàng hay không

creatorSide: hợp đồng có được xem bởi

 

  1. API xem file pdf hợp đồng

EndPoint: /file/view/contract-by-path

Method: POST

 

Request

 

In

Type

Description

 

Body

{

   "mainContractId":"NTA0ZHMkZCNzQSYqJioxMTc0OQ==",

   "referenceContractId":null,

   "pdfFilePath":"CCC687C91E3F9CFFB0C39D64C02A4C561CE9DB167CC538192566DD6CF2589E87"

}

mainContractId : Id của hợp đồng

referenceContractId: id của hợp đồng liên kết, trong trường hợp này để null

pdfFilePath: đường dẫn file pdf hợp đông

Authorization

header

String

Bearer <token>

 

  1. Response

Response

Description

Byte array

File pdf hợp đồng ở dạng byte array

 

3.10. Lấy danh sách hợp đồng tôi lập

Endpoint: contract/filter-mine

Method: POST

 

Request

Type

Dữ liệu đầu vào

Bắt buộc

Mô tả

header

Bearer <token>

 

 

body

{

   "nameOrCode":"mã",

   "status":1,

   "customer":"email",

   "page":0,

   "pageSize":10,

   "createdTimeFrom":"2021-05-24T17:00:00.000Z",

   "createdTimeTo":"2021-05-25T17:00:00.000Z",

   "taxCode":null,

   "serviceType":242,

   "sorts":null

}

 

nameOrCode: tên hoặc mã hợp đồng

status: trạng thái hợp đồng

1: Nháp

2: Đang xử lý

3: Đã từ chối

4: Hoàn thành

5: Đã huỷ

customer: tìm theo tên hoặc email khách hàng

createdTimeFrom: thời gian tạo hợp đồng từ ngày

createdTimeTo: thời gian tạo hợp đồng đến ngày

serviceType: Id loại hợp đồng

 

 

Response

Response

Mô tả

{

  "code": "200",

  "message": "OK",

  "data": {

    "currentPage": 0,

    "pageSize": 10,

    "totalRow": 1,

    "dataRow": [

      {

        "id": "NTA0ZHMkZCNzQSYqJioxMTEyNw==",

        "name": "HDD22 - hợp đồng trao đổi tài sản",

        "createdUser": "test",

        "typeId": 1,

        "allName": "test",

        "receivedTime": "Apr 5, 2021 10:12:56 AM"

      }

    ]

  },

  "success": true

}