Đường dẫn môi trường : https://api.meinvoice.vn

Đặc tả các API kết nối tới MEINVOICE.VN

1. Thực hiện Đăng nhập qua API để lấy JWT (Access Token)

NOTE : Phương thức đăng nhập response sẽ trả về Access Token dùng để xác thực người dùng và gọi đến các Api tiếp theo

Phương thức

Method URL
POST /api/v2/oauth

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
TaxCode Mã số thuế

Body
Key Value Description
grant_type password Loại ủy quyền
username Tên tài khoản Tên tài khoản đăng nhập
password Mật khẩu

Hàm gọi Ajax

    var access_token;
    $.ajax({
        type: "POST",
        url: "https://api.meinvoice.vn/api/v2/oauth",
        dataType: 'json',
        headers: {'TaxCode': 'Mã_Số_Thuế'},
        data: { "grant_type": "password", "username": userName, "password": password },
        success: function (result, status, sender) {
            //JWT được trả về qua result.access_token
            access_token = result.access_token;
        }
    });
Response
Key Value Description
CompanyID VD : 1962 Mã công ty
FullName VD : Nguyễn Bá Hiệu Tên người dùng
RoleType VD : 1 Loại phân quyền
TaxCode VD : 0101243150-103 Mã số thuế
UserID VD : 831016ff-cac0-4a9d-8c2e-6ae9123dc41e ID User
UserName VD : nbhieu@software.misa.com.vn Tên đăng nhập
access_token VD : 831016ff-cac0-4a9d-8c2e-6ae9123dc41e Token dùng để lấy thông tin người dùng, sử dụng để gọi các api tiếp theo
expires_in VD : 1209599 Thời gian hết hạn của access token tính theo giây
token_type VD : bearer Loại token

2. Thực hiện Lấy thông tin User

Phương thức

Method URL
GET /api/v2/user/getcurent

Trong đó

Request header
Key Value
ContentType application/json;
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
     $.ajax({
        type: "GET",
        url: "https://api.meinvoice.vn/api/v2/user/getcurent",
        dataType: 'json',
        async: false,
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: null,
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });

3. Lấy danh sách vật tư hàng hóa

Phương thức

Method URL
GET /InventoryItem/Get?start=0&length=100&sort=ModifiedDate

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế


Body
Key Value Description
start VD: 0 Lấy bắt đầu từ số {start}
length VD : 100 Số lượng bản ghi lấy về
sort VD : ModifiedDate Sắp xếp dữ liệu theo {sort} Sắp xếp dữ liệu theo {sort}

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
     $.ajax({
        type: "GET",
        url: "https://api.meinvoice.vn/InventoryItem/Get?start=0&length=100&sort=ModifiedDate",
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: null,
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });

4. Lấy danh sách Khách hàng

Phương thức

Method URL
GET /AccountObject/Get?start=0&length=100&sort=ModifiedDate&accountObjectType=-1

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế


Body
Key Value Description
start VD: 0 Lấy bắt đầu từ số {start}
length VD : 100 Số lượng bản ghi lấy về
sort VD : ModifiedDate Sắp xếp dữ liệu theo {sort} Sắp xếp dữ liệu theo {sort}
accountObjectType VD : -1 Loại khách hàng: 0 - Tổ chức, 1 - Cá nhân, -1 - Tất cả

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
     $.ajax({
        type: "GET",
        url: "https://api.meinvoice.vn/AccountObject/Get?start=0&length=100&sort=ModifiedDate&accountObjectType=-1",
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: null,
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });

5. Lấy danh sách hóa đơn

Phương thức

Method URL
GET /SAInvoice/Get?start=0&length=100&sort=ModifiedDate&fromDate=2019-07-18&toDate=2019-09-18

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế


Body
Key Value Description
start VD: 0 Lấy bắt đầu từ số {start}
length VD : 100 Số lượng bản ghi lấy về
sort VD : ModifiedDate Sắp xếp dữ liệu theo {sort} Sắp xếp dữ liệu theo {sort}
fromDate VD : 2019-07-18 Từ thời gian
toDate VD : 2019-09-18 Đến thời gian

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
     $.ajax({
        type: "GET",
        url: "https://api.meinvoice.vn/SAInvoice/Get?start=0&length=100&sort=ModifiedDate&fromDate=2019-07-18&toDate=2019-09-18",
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: null,
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });

6. Lấy chi tiết hóa đơn

Phương thức

Method URL
GET /SAInvoice/Get?id=02389110-b38e-4812-b83e-4377d1b04529

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế


Body
Key Value Description
id VD: 02389110-b38e-4812-b83e-4377d1b04529 Mã hóa đơn cần lấy

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
     $.ajax({
        type: "GET",
        url: "https://api.meinvoice.vn/SAInvoice/Get?id=02389110-b38e-4812-b83e-4377d1b04529",
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: null,
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });

7. Thêm hóa đơn

Phương thức

Method URL
POST /SAInvoice/Insert

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế


Body
Key Value Description
param VD: Xem hàm JS Chuỗi dữ liệu hóa đơn

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
    var pram = {};
    param.detail = "[{'RefDetailID':'d02f415a-b663-45c9-8e60-5ca0555f8b4d', 'RefID':'d02f415a-b663-45c9-8e60-5ca0555f8b4c','InventoryItemName':'Áo sơ mi nữ','Description':'Áo sơ mi nữ','InventoryItemType':0,'Quantity':1.0,'UnitPrice':350000.0,'AmountOC':350000.0,'Amount':350000.0,'DiscountRate':5.55,'DiscountAmountOC':19425.0,'DiscountAmount':19425.0,'VATRate':10.0,'VATAmountOC':33058.0,'VATAmount':33058.0,'IsTemp':false,'IsPromotion':false,'SortOrder':1},{'RefDetailID':'d02f415a-b663-45c9-8e60-5ca0555f8b4e','RefID':'a62391ba-d6ec-4cc7-b3eb-b2592af194f7','InventoryItemName':'Áo sơ mi nam','Description':'Áo sơ mi nam','InventoryItemType':0,'Quantity':1.0,'UnitPrice':500000.0,'AmountOC':500000.0,'Amount':500000.0,'DiscountRate':5.0,'DiscountAmountOC':25000.0,'DiscountAmount':25000.0,'VATRate':10.0,'VATAmountOC':47500.0,'VATAmount':47500.0,'IsTemp':false,'IsPromotion':false,'SortOrder':2}]";
    param.data = "{'RefID':'4e3f34c5-9aaf-4ff9-bedd-6d857cd1b2f2','RefType':0,'AccountObjectID':'fc1150e3-28fd-4cff-817e-3863a7d1a07e','AccountObjectTaxCode':null,'AccountObjectName':'Công ty A1','AccountObjectAddress':'Hà Nội','ContactName':null,'ReceiverName':'Khách mua','receiveremail':'a @bcd.com','ReceiverMobile':'0983299792','PaymentMethod':'TM/CK','InvTemplateNo':'01GTKT0/001','InvTypeCode':'01GTKT','InvSeries':'AB/19E','InvNo':' < Chưa cấp số> ','VATRate':10.0,'TotalSaleAmountOC':850000.0,'TotalDiscountAmountOC':44425.0,'TotalVATAmountOC':80558.0,'TotalAmountOC':886133.0,'InvDate':'/Date(1566957347884)/','CurrencyID':'VND','ExchangeRate':1,'TotalSaleAmount':850000.0,'TotalDiscountAmount':44425.0,'TotalVATAmount':80558.0,'TotalAmount':886133.0,'PublishStatus':0,'EInvoiceStatus':1,'CompanyID':9480,'CompanyTaxCode':'0101243150-186','TotalAmountWithVAT':886133.0}";

     $.ajax({
        type: "POST",
        url: "https://api.meinvoice.vn/SAInvoice/Insert",
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: JSON.Stringfy(param),
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });

8. Chỉnh sửa/ cập nhật hóa đơn

Phương thức

Method URL
POST /SAInvoice/Update

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế


Body
Key Value Description
param VD: Xem hàm JS Chuỗi dữ liệu hóa đơn

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
    var pram = {};
    param.detail = "[{'RefDetailID':'d02f415a-b663-45c9-8e60-5ca0555f8b4d', 'RefID':'d02f415a-b663-45c9-8e60-5ca0555f8b4c','InventoryItemName':'Áo sơ mi nữ','Description':'Áo sơ mi nữ','InventoryItemType':0,'Quantity':1.0,'UnitPrice':350000.0,'AmountOC':350000.0,'Amount':350000.0,'DiscountRate':5.55,'DiscountAmountOC':19425.0,'DiscountAmount':19425.0,'VATRate':10.0,'VATAmountOC':33058.0,'VATAmount':33058.0,'IsTemp':false,'IsPromotion':false,'SortOrder':1},{'RefDetailID':'d02f415a-b663-45c9-8e60-5ca0555f8b4e','RefID':'a62391ba-d6ec-4cc7-b3eb-b2592af194f7','InventoryItemName':'Áo sơ mi nam','Description':'Áo sơ mi nam','InventoryItemType':0,'Quantity':1.0,'UnitPrice':500000.0,'AmountOC':500000.0,'Amount':500000.0,'DiscountRate':5.0,'DiscountAmountOC':25000.0,'DiscountAmount':25000.0,'VATRate':10.0,'VATAmountOC':47500.0,'VATAmount':47500.0,'IsTemp':false,'IsPromotion':false,'SortOrder':2}]";
    param.data = "{'RefID':'4e3f34c5-9aaf-4ff9-bedd-6d857cd1b2f2','RefType':0,'AccountObjectID':'fc1150e3-28fd-4cff-817e-3863a7d1a07e','AccountObjectTaxCode':null,'AccountObjectName':'Công ty A1','AccountObjectAddress':'Hà Nội','ContactName':null,'ReceiverName':'Khách mua','receiveremail':'a @bcd.com','ReceiverMobile':'0983299792','PaymentMethod':'TM/CK','InvTemplateNo':'01GTKT0/001','InvTypeCode':'01GTKT','InvSeries':'AB/19E','InvNo':' < Chưa cấp số> ','VATRate':10.0,'TotalSaleAmountOC':850000.0,'TotalDiscountAmountOC':44425.0,'TotalVATAmountOC':80558.0,'TotalAmountOC':886133.0,'InvDate':'/Date(1566957347884)/','CurrencyID':'VND','ExchangeRate':1,'TotalSaleAmount':850000.0,'TotalDiscountAmount':44425.0,'TotalVATAmount':80558.0,'TotalAmount':886133.0,'PublishStatus':0,'EInvoiceStatus':1,'CompanyID':9480,'CompanyTaxCode':'0101243150-186','TotalAmountWithVAT':886133.0}";

     $.ajax({
        type: "POST",
        url: "https://api.meinvoice.vn/SAInvoice/Update",
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: JSON.Stringfy(param),
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });

9. Thêm phiếu xuất kho

Phương thức

Method URL
POST /SAInvoice/InsertOutWard

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế


Body
Key Value Description
param VD: Xem hàm JS Chuỗi dữ liệu hóa đơn

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
    var pram = {};
    param.detail = "[{'RefDetailID':'d02f415a-b663-45c9-8e60-5ca0555f8b4d', 'RefID':'d02f415a-b663-45c9-8e60-5ca0555f8b4c','InventoryItemName':'Áo sơ mi nữ','Description':'Áo sơ mi nữ','InventoryItemType':0,'Quantity':1.0,'UnitPrice':350000.0,'AmountOC':350000.0,'Amount':350000.0,'DiscountRate':5.55,'DiscountAmountOC':19425.0,'DiscountAmount':19425.0,'VATRate':10.0,'VATAmountOC':33058.0,'VATAmount':33058.0,'IsTemp':false,'IsPromotion':false,'SortOrder':1},{'RefDetailID':'d02f415a-b663-45c9-8e60-5ca0555f8b4e','RefID':'a62391ba-d6ec-4cc7-b3eb-b2592af194f7','InventoryItemName':'Áo sơ mi nam','Description':'Áo sơ mi nam','InventoryItemType':0,'Quantity':1.0,'UnitPrice':500000.0,'AmountOC':500000.0,'Amount':500000.0,'DiscountRate':5.0,'DiscountAmountOC':25000.0,'DiscountAmount':25000.0,'VATRate':10.0,'VATAmountOC':47500.0,'VATAmount':47500.0,'IsTemp':false,'IsPromotion':false,'SortOrder':2}]";
    param.data = "{'RefID':'4e3f34c5-9aaf-4ff9-bedd-6d857cd1b2f2','RefType':0,'AccountObjectID':'fc1150e3-28fd-4cff-817e-3863a7d1a07e','AccountObjectTaxCode':null,'AccountObjectName':'Công ty A1','AccountObjectAddress':'Hà Nội','ContactName':null,'ReceiverName':'Khách mua','receiveremail':'a @bcd.com','ReceiverMobile':'0983299792','PaymentMethod':'TM/CK','InvTemplateNo':'01GTKT0/001','InvTypeCode':'01GTKT','InvSeries':'AB/19E','InvNo':' < Chưa cấp số> ','VATRate':10.0,'TotalSaleAmountOC':850000.0,'TotalDiscountAmountOC':44425.0,'TotalVATAmountOC':80558.0,'TotalAmountOC':886133.0,'InvDate':'/Date(1566957347884)/','CurrencyID':'VND','ExchangeRate':1,'TotalSaleAmount':850000.0,'TotalDiscountAmount':44425.0,'TotalVATAmount':80558.0,'TotalAmount':886133.0,'PublishStatus':0,'EInvoiceStatus':1,'CompanyID':9480,'CompanyTaxCode':'0101243150-186','TotalAmountWithVAT':886133.0}";
    param.invoiceDelivery = "{'ContractCode':'0121014','ContractDate':'/Date(1572307200000)/','ContractOwner':'Công ty TNHH ABC','JournalMemo':'Điều chuyền','TransporterName':'Lê Linh','Transport':'Ô tô','ListFromStockName':'Hà Nội','ListToStockName':'Ninh Bình','TransportContractCode':'0124874','DeliveryType':1,'EntityState':2,'RefID':'831ffb0d-5906-4e08-a0c3-14bc8ee2315d'}";
     $.ajax({
        type: "POST",
        url: "https://api.meinvoice.vn/SAInvoice/InsertOutWard",
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: JSON.Stringfy(param),
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });

10. Cập nhật phiếu xuất kho

Phương thức

Method URL
POST /SAInvoice/UpdateOutWardEinvoice

Trong đó

Request header
Key Value
ContentType application/json; charset=utf-8
Authorization 'Bearer ' + access_token
TaxCode Mã số thuế


Body
Key Value Description
param VD: Xem hàm JS Chuỗi dữ liệu hóa đơn

Hàm gọi Ajax

     //Hệ thống authenticate sẽ xác thực người dùng qua đối tượng headers của request, headers bắt buộc phải có thông tin như vị dụ dưới đây
    var pram = {};
    param.detail = "[{'RefDetailID':'d02f415a-b663-45c9-8e60-5ca0555f8b4d', 'RefID':'d02f415a-b663-45c9-8e60-5ca0555f8b4c','InventoryItemName':'Áo sơ mi nữ','Description':'Áo sơ mi nữ','InventoryItemType':0,'Quantity':1.0,'UnitPrice':350000.0,'AmountOC':350000.0,'Amount':350000.0,'DiscountRate':5.55,'DiscountAmountOC':19425.0,'DiscountAmount':19425.0,'VATRate':10.0,'VATAmountOC':33058.0,'VATAmount':33058.0,'IsTemp':false,'IsPromotion':false,'SortOrder':1},{'RefDetailID':'d02f415a-b663-45c9-8e60-5ca0555f8b4e','RefID':'a62391ba-d6ec-4cc7-b3eb-b2592af194f7','InventoryItemName':'Áo sơ mi nam','Description':'Áo sơ mi nam','InventoryItemType':0,'Quantity':1.0,'UnitPrice':500000.0,'AmountOC':500000.0,'Amount':500000.0,'DiscountRate':5.0,'DiscountAmountOC':25000.0,'DiscountAmount':25000.0,'VATRate':10.0,'VATAmountOC':47500.0,'VATAmount':47500.0,'IsTemp':false,'IsPromotion':false,'SortOrder':2}]";
    param.data = "{'RefID':'4e3f34c5-9aaf-4ff9-bedd-6d857cd1b2f2','RefType':0,'AccountObjectID':'fc1150e3-28fd-4cff-817e-3863a7d1a07e','AccountObjectTaxCode':null,'AccountObjectName':'Công ty A1','AccountObjectAddress':'Hà Nội','ContactName':null,'ReceiverName':'Khách mua','receiveremail':'a @bcd.com','ReceiverMobile':'0983299792','PaymentMethod':'TM/CK','InvTemplateNo':'01GTKT0/001','InvTypeCode':'01GTKT','InvSeries':'AB/19E','InvNo':' < Chưa cấp số> ','VATRate':10.0,'TotalSaleAmountOC':850000.0,'TotalDiscountAmountOC':44425.0,'TotalVATAmountOC':80558.0,'TotalAmountOC':886133.0,'InvDate':'/Date(1566957347884)/','CurrencyID':'VND','ExchangeRate':1,'TotalSaleAmount':850000.0,'TotalDiscountAmount':44425.0,'TotalVATAmount':80558.0,'TotalAmount':886133.0,'PublishStatus':0,'EInvoiceStatus':1,'CompanyID':9480,'CompanyTaxCode':'0101243150-186','TotalAmountWithVAT':886133.0}";
    param.invoiceDelivery = "{'ContractCode':'0121014','ContractDate':'/Date(1572307200000)/','ContractOwner':'Công ty TNHH ABC','JournalMemo':'Điều chuyền','TransporterName':'Lê Linh','Transport':'Ô tô','ListFromStockName':'Hà Nội','ListToStockName':'Ninh Bình','TransportContractCode':'0124874','DeliveryType':1,'EntityState':2,'RefID':'831ffb0d-5906-4e08-a0c3-14bc8ee2315d'}";
     $.ajax({
        type: "POST",
        url: "https://api.meinvoice.vn/SAInvoice/UpdateOutWardEinvoice",
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + access_token,
            'TaxCode': 'Mã_Số_Thuế',
            'Content-Type': 'application/json'
        },
        data: JSON.Stringfy(param),
        success: function (result, status, sender) {
            console.log(JSON.parse(result.data));
        },
        complete: function () {},
        statusCode: { 404: function () { alert('API not found') }, }
    });