Read KiotViet products, customers, invoices, orders and stock; create customers and orders.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: create a new customer in the shop (name required; code is generated by KiotViet if omitted). Always check with the user first, and look the customer up by phone before creating a duplicate. POST /customers.
Customer name.
Customer code (optional; KiotViet generates one).
Email address.
Street address.
Note on the customer.
Tax code (ma so thue).
Customer group ids.
Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time).
Company name.
Phone number.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
WRITE: create a new customer in the shop (name required; code is generated by KiotViet if omitted). Always check with the user first, and look the customer up by phone before creating a duplicate. POST /customers.
| Argument | Type | Description |
|---|---|---|
| code | string | Customer code (optional; KiotViet generates one). |
| name* | string | Customer name. |
| string | Email address. | |
| address | string | Street address. |
| comments | string | Note on the customer. |
| tax_code | string | Tax code (ma so thue). |
| group_ids | array | Customer group ids. |
| birth_date | string | Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time). |
| organization | string | Company name. |
| contact_number | string | Phone number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Customer code (optional; KiotViet generates one)."
},
"name": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Customer name."
},
"email": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Email address."
},
"address": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Street address."
},
"comments": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Note on the customer."
},
"tax_code": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Tax code (ma so thue)."
},
"group_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 20,
"description": "Customer group ids."
},
"birth_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time)."
},
"organization": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Company name."
},
"contact_number": {
"type": "string",
"maxLength": 30,
"minLength": 1,
"description": "Phone number."
}
}
}WRITE: create a sales order (an order, not an invoice: no invoice is made and no payment is recorded) with lines of existing products in a branch, for an existing customer or none. Always confirm the products, quantities and prices with the user first. POST /orders.
| Argument | Type | Description |
|---|---|---|
| items* | array | The order lines. |
| discount | number | Order discount amount. |
| branch_id* | integer | Branch the order is for (see kiotviet_list_branches). |
| sold_by_id | integer | Salesperson user id (see kiotviet_list_users). |
| customer_id | integer | Existing customer id (see kiotviet_list_customers). |
| description | string | Note on the order. |
| sale_channel_id | integer | Sales channel id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"branch_id",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"product_id",
"quantity",
"price"
],
"properties": {
"note": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Line note."
},
"price": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Unit price."
},
"discount": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Line discount amount."
},
"quantity": {
"type": "number",
"maximum": 1000000,
"description": "Quantity.",
"exclusiveMinimum": 0
},
"product_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Product id.",
"exclusiveMinimum": 0
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "The order lines."
},
"discount": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Order discount amount."
},
"branch_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Branch the order is for (see kiotviet_list_branches).",
"exclusiveMinimum": 0
},
"sold_by_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Salesperson user id (see kiotviet_list_users).",
"exclusiveMinimum": 0
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Existing customer id (see kiotviet_list_customers).",
"exclusiveMinimum": 0
},
"description": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Note on the order."
},
"sale_channel_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Sales channel id.",
"exclusiveMinimum": 0
}
}
}One product category by id (name, parent, children). GET /categories/{id}.
| Argument | Type | Description |
|---|---|---|
| category_id* | integer | KiotViet category id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"category_id"
],
"properties": {
"category_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet category id.",
"exclusiveMinimum": 0
}
}
}One customer by id: contact data, debt, total invoiced, reward points, groups. GET /customers/{id}.
| Argument | Type | Description |
|---|---|---|
| customer_id* | integer | KiotViet customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet customer id.",
"exclusiveMinimum": 0
}
}
}One customer by customer code. GET /customers/code/{code}.
| Argument | Type | Description |
|---|---|---|
| code* | string | KiotViet customer code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "KiotViet customer code."
}
}
}One invoice by id with its lines, payments and delivery. GET /invoices/{id}.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | integer | KiotViet invoice id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoice_id"
],
"properties": {
"invoice_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet invoice id.",
"exclusiveMinimum": 0
}
}
}One invoice by invoice code (for example HD000123). GET /invoices/code/{code}.
| Argument | Type | Description |
|---|---|---|
| code* | string | KiotViet invoice code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "KiotViet invoice code."
}
}
}One sales order by id with its lines, payments and delivery. GET /orders/{id}.
| Argument | Type | Description |
|---|---|---|
| order_id* | integer | KiotViet order id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet order id.",
"exclusiveMinimum": 0
}
}
}One sales order by order code (for example DH000123). GET /orders/code/{code}.
| Argument | Type | Description |
|---|---|---|
| code* | string | KiotViet order code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "KiotViet order code."
}
}
}The product prices of one price book (product id, code, price), paged. GET /pricebooks/{id}.
| Argument | Type | Description |
|---|---|---|
| page_size | integer | Records per page, 1-100 (default 20). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| price_book_id* | integer | KiotViet price book id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"price_book_id"
],
"properties": {
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"price_book_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet price book id.",
"exclusiveMinimum": 0
}
}
}One product by id: code, barcode, name, category, base price, units, attributes, images, stock per branch and price books. GET /products/{id}.
| Argument | Type | Description |
|---|---|---|
| product_id* | integer | KiotViet product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet product id.",
"exclusiveMinimum": 0
}
}
}One product by its product code (SKU). GET /products/code/{code}.
| Argument | Type | Description |
|---|---|---|
| code* | string | KiotViet product code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "KiotViet product code."
}
}
}One goods receipt (nhap hang) by id with its lines. GET /purchaseorders/{id}.
| Argument | Type | Description |
|---|---|---|
| purchase_order_id* | integer | KiotViet goods receipt id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"purchase_order_id"
],
"properties": {
"purchase_order_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet goods receipt id.",
"exclusiveMinimum": 0
}
}
}One customer return by id with its lines. GET /returns/{id}.
| Argument | Type | Description |
|---|---|---|
| return_id* | integer | KiotViet return id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"return_id"
],
"properties": {
"return_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet return id.",
"exclusiveMinimum": 0
}
}
}One supplier by id. GET /suppliers/{id}.
| Argument | Type | Description |
|---|---|---|
| supplier_id* | integer | KiotViet supplier id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"supplier_id"
],
"properties": {
"supplier_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "KiotViet supplier id.",
"exclusiveMinimum": 0
}
}
}List the shop's branches (id, name, code, phone, address). Use the ids to filter other tools. GET /branches.
| Argument | Type | Description |
|---|---|---|
| page_size | integer | Records per page, 1-100 (default 20). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
}
}
}List cash-book entries (receipts and payments: code, branch, method, partner, amount, date, status). Filter by branch, direction or date range. GET /cashflow.
| Argument | Type | Description |
|---|---|---|
| code | string | Voucher code. |
| end_date | string | Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time). |
| page_size | integer | Records per page, 1-100 (default 20). |
| branch_ids | array | Only these branches (see kiotviet_list_branches). |
| is_receipt | boolean | true = receipts (money in), false = payments (money out). |
| start_date | string | Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| partner_name | string | Customer, supplier or other partner name. |
List product categories (id, name, parent, whether it has children). Set hierarchical to get the category tree. GET /categories.
| Argument | Type | Description |
|---|---|---|
| order_by | string | Sort field. |
| page_size | integer | Records per page, 1-100 (default 20). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| hierarchical | boolean | Return the nested tree (ignores last_modified_from). |
| order_direction | string | Sort direction. |
| last_modified_from | string | Only records changed at or after this date-time (shop local time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"order_by": {
"enum": [
"categoryName",
"createdDate",
"modifiedDate"
],
"type": "string",
"description": "Sort field."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"hierarchical": {
"type": "boolean",
"description": "Return the nested tree (ignores last_modified_from)."
},
"order_direction": {
"enum": [
"Asc",
"Desc"
],
"type": "string",
"description": "Sort direction."
},
"last_modified_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records changed at or after this date-time (shop local time)."
}
}
}List customers (code, name, phone, email, address, debt, total invoiced, reward points, groups). Contains personal data of the shop's customers. Filter by code, name, phone, group or last change. GET /customers.
| Argument | Type | Description |
|---|---|---|
| code | string | Customer code. |
| name | string | Filter by customer name. |
| group_id | integer | Only customers in this customer group. |
| order_by | string | Sort field. |
| page_size | integer | Records per page, 1-100 (default 20). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| include_total | boolean | Include financial totals (debt, total invoiced, points). |
| contact_number | string | Filter by phone number. |
| order_direction | string | Sort direction. |
List sales invoices (code, date, branch, customer, total, amount paid, status, lines). Filter by branch, customer, status, order, purchase-date range or last change. GET /invoices.
| Argument | Type | Description |
|---|---|---|
| status | array | KiotViet status code(s) to include. |
| order_by | string | Sort field. |
| order_id | integer | Only the invoice created from this sales order. |
| page_size | integer | Records per page, 1-100 (default 20). |
| branch_ids | array | Only these branches (see kiotviet_list_branches). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| customer_ids | array | Only invoices of these customers. |
| customer_code | string | Only invoices of the customer with this code. |
| include_payment | boolean |
List sales orders (code, date, branch, customer, total, status, lines, delivery). Filter by branch, customer, status, creation date (from) or last change (from/to). GET /orders.
| Argument | Type | Description |
|---|---|---|
| status | array | KiotViet status code(s) to include. |
| order_by | string | Sort field. |
| page_size | integer | Records per page, 1-100 (default 20). |
| branch_ids | array | Only these branches (see kiotviet_list_branches). |
| created_date | string | Only orders created at or after this date. |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| customer_ids | array | Only orders of these customers. |
| customer_code | string | Only orders of the customer with this code. |
| include_payment | boolean |
List price books (bang gia: name, active flag, validity dates, branches, customer groups). GET /pricebooks.
| Argument | Type | Description |
|---|---|---|
| page_size | integer | Records per page, 1-100 (default 20). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| include_branches | boolean | Include the branches each price book applies to. |
| include_customer_groups | boolean | Include the customer groups each price book applies to. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"include_branches": {
"type": "boolean",
"description": "Include the branches each price book applies to."
},
"include_customer_groups": {
"type": "boolean",
"description": "Include the customer groups each price book applies to."
}
}
}List products (code, barcode, name, category, base price, units, attributes). Optionally include stock per branch (include_inventory) and price-book prices. Filter by name, category, branch, active flag or last change. GET /products.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by product name. |
| order_by | string | Sort field. |
| is_active | boolean | Only active (true) or inactive (false) products. |
| page_size | integer | Records per page, 1-100 (default 20). |
| branch_ids | array | Only these branches (see kiotviet_list_branches). |
| category_id | integer | Only products in this category (see kiotviet_list_categories). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| order_direction | string | Sort direction. |
| include_inventory |
List goods receipts from suppliers (nhap hang: code, date, branch, supplier, total, lines). Filter by branch, status or purchase-date range. GET /purchaseorders.
| Argument | Type | Description |
|---|---|---|
| status | array | KiotViet status code(s) to include. |
| page_size | integer | Records per page, 1-100 (default 20). |
| branch_ids | array | Only these branches (see kiotviet_list_branches). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| include_payment | boolean | Include the payments. |
| to_purchase_date | string | Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time). |
| from_purchase_date | string | Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"status": {
"type": "array",
"items": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"maxItems": 10,
"description": "KiotViet status code(s) to include."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"branch_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Only these branches (see kiotviet_list_branches)."
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"include_payment": {
"type": "boolean",
"description": "Include the payments."
},
"to_purchase_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time)."
},
"from_purchase_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time)."
}
}
}List customer returns (code, date, branch, customer, invoice, return total, lines). GET /returns.
| Argument | Type | Description |
|---|---|---|
| order_by | string | Sort field. |
| page_size | integer | Records per page, 1-100 (default 20). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| include_payment | boolean | Include the payments. |
| order_direction | string | Sort direction. |
| last_modified_from | string | Only records changed at or after this date-time (shop local time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"order_by": {
"enum": [
"createdDate",
"modifiedDate",
"code"
],
"type": "string",
"description": "Sort field."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"include_payment": {
"type": "boolean",
"description": "Include the payments."
},
"order_direction": {
"enum": [
"Asc",
"Desc"
],
"type": "string",
"description": "Sort direction."
},
"last_modified_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records changed at or after this date-time (shop local time)."
}
}
}Stock on hand and reserved quantity per product and branch. Filter by branch or last change. GET /productOnHands.
| Argument | Type | Description |
|---|---|---|
| order_by | string | Sort field. |
| page_size | integer | Records per page, 1-100 (default 20). |
| branch_ids | array | Only these branches (see kiotviet_list_branches). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| order_direction | string | Sort direction. |
| last_modified_from | string | Only records changed at or after this date-time (shop local time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"order_by": {
"enum": [
"code",
"createdDate",
"modifiedDate"
],
"type": "string",
"description": "Sort field."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"branch_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Only these branches (see kiotviet_list_branches)."
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"order_direction": {
"enum": [
"Asc",
"Desc"
],
"type": "string",
"description": "Sort direction."
},
"last_modified_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records changed at or after this date-time (shop local time)."
}
}
}List orders placed with suppliers (dat hang nhap: code, date, branch, supplier, status, lines, amount paid). Filter by branch, status, supplier or product text. GET /ordersuppliers.
| Argument | Type | Description |
|---|---|---|
| status | integer | KiotViet status code. |
| code_key | string | Order code. |
| branch_id | integer | Only this branch. |
| page_size | integer | Records per page, 1-100 (default 20). |
| product_key | string | Product code or name. |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| supplier_key | string | Supplier code, name or phone. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"status": {
"type": "integer",
"maximum": 100,
"minimum": 0,
"description": "KiotViet status code."
},
"code_key": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Order code."
},
"branch_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this branch.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"product_key": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Product code or name."
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"supplier_key": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Supplier code, name or phone."
}
}
}List suppliers (code, name, phone, email, address, debt, total invoiced). Filter by code, name, phone or last change. GET /suppliers.
| Argument | Type | Description |
|---|---|---|
| code | string | Supplier code. |
| name | string | Filter by supplier name. |
| page_size | integer | Records per page, 1-100 (default 20). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
| include_total | boolean | Include financial totals (debt, total invoiced). |
| contact_number | string | Filter by phone number. |
| order_direction | string | Sort direction. |
| last_modified_from | string | Only records changed at or after this date-time (shop local time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Supplier code."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by supplier name."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"include_total": {
"type": "boolean",
"description": "Include financial totals (debt, total invoiced)."
},
"contact_number": {
"type": "string",
"maxLength": 30,
"minLength": 1,
"description": "Filter by phone number."
},
"order_direction": {
"enum": [
"Asc",
"Desc"
],
"type": "string",
"description": "Sort direction."
},
"last_modified_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records changed at or after this date-time (shop local time)."
}
}
}List the shop's staff users (id, username, name, phone, email). GET /users.
| Argument | Type | Description |
|---|---|---|
| page_size | integer | Records per page, 1-100 (default 20). |
| current_item | integer | Record offset to start from (0 = first record). Pass the previous reply's next_item. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Voucher code."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"branch_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Only these branches (see kiotviet_list_branches)."
},
"is_receipt": {
"type": "boolean",
"description": "true = receipts (money in), false = payments (money out)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time)."
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"partner_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Customer, supplier or other partner name."
}
}
}| last_modified_from | string | Only records changed at or after this date-time (shop local time). |
| include_customer_group | boolean | Include each customer's groups. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Customer code."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by customer name."
},
"group_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only customers in this customer group.",
"exclusiveMinimum": 0
},
"order_by": {
"enum": [
"name",
"code",
"createdDate",
"modifiedDate"
],
"type": "string",
"description": "Sort field."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"include_total": {
"type": "boolean",
"description": "Include financial totals (debt, total invoiced, points)."
},
"contact_number": {
"type": "string",
"maxLength": 30,
"minLength": 1,
"description": "Filter by phone number."
},
"order_direction": {
"enum": [
"Asc",
"Desc"
],
"type": "string",
"description": "Sort direction."
},
"last_modified_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records changed at or after this date-time (shop local time)."
},
"include_customer_group": {
"type": "boolean",
"description": "Include each customer's groups."
}
}
}| Include the payments. |
| order_direction | string | Sort direction. |
| to_purchase_date | string | Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time). |
| from_purchase_date | string | Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time). |
| last_modified_from | string | Only records changed at or after this date-time (shop local time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"status": {
"type": "array",
"items": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"maxItems": 10,
"description": "KiotViet status code(s) to include."
},
"order_by": {
"enum": [
"createdDate",
"modifiedDate",
"purchaseDate",
"code"
],
"type": "string",
"description": "Sort field."
},
"order_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only the invoice created from this sales order.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"branch_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Only these branches (see kiotviet_list_branches)."
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"customer_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Only invoices of these customers."
},
"customer_code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only invoices of the customer with this code."
},
"include_payment": {
"type": "boolean",
"description": "Include the payments."
},
"order_direction": {
"enum": [
"Asc",
"Desc"
],
"type": "string",
"description": "Sort direction."
},
"to_purchase_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time)."
},
"from_purchase_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Date 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time)."
},
"last_modified_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records changed at or after this date-time (shop local time)."
}
}
}| Include the payments. |
| order_direction | string | Sort direction. |
| sale_channel_id | integer | Only orders from this sales channel. |
| last_modified_to | string | Only orders last changed up to this date-time (KiotViet toDate is a bound on the modification time, not the creation time). Use with last_modified_from. |
| last_modified_from | string | Only records changed at or after this date-time (shop local time). |
| include_order_delivery | boolean | Include the delivery details. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"status": {
"type": "array",
"items": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"maxItems": 10,
"description": "KiotViet status code(s) to include."
},
"order_by": {
"enum": [
"createdDate",
"modifiedDate",
"purchaseDate",
"code"
],
"type": "string",
"description": "Sort field."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"branch_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Only these branches (see kiotviet_list_branches)."
},
"created_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only orders created at or after this date."
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"customer_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Only orders of these customers."
},
"customer_code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only orders of the customer with this code."
},
"include_payment": {
"type": "boolean",
"description": "Include the payments."
},
"order_direction": {
"enum": [
"Asc",
"Desc"
],
"type": "string",
"description": "Sort direction."
},
"sale_channel_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only orders from this sales channel.",
"exclusiveMinimum": 0
},
"last_modified_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only orders last changed up to this date-time (KiotViet toDate is a bound on the modification time, not the creation time). Use with last_modified_from."
},
"last_modified_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records changed at or after this date-time (shop local time)."
},
"include_order_delivery": {
"type": "boolean",
"description": "Include the delivery details."
}
}
}| boolean |
| Include the stock on hand per branch. |
| include_pricebook | boolean | Include the price-book prices. |
| last_modified_from | string | Only records changed at or after this date-time (shop local time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by product name."
},
"order_by": {
"enum": [
"name",
"code",
"createdDate",
"modifiedDate"
],
"type": "string",
"description": "Sort field."
},
"is_active": {
"type": "boolean",
"description": "Only active (true) or inactive (false) products."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Records per page, 1-100 (default 20).",
"exclusiveMinimum": 0
},
"branch_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Only these branches (see kiotviet_list_branches)."
},
"category_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only products in this category (see kiotviet_list_categories).",
"exclusiveMinimum": 0
},
"current_item": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Record offset to start from (0 = first record). Pass the previous reply's next_item."
},
"order_direction": {
"enum": [
"Asc",
"Desc"
],
"type": "string",
"description": "Sort direction."
},
"include_inventory": {
"type": "boolean",
"description": "Include the stock on hand per branch."
},
"include_pricebook": {
"type": "boolean",
"description": "Include the price-book prices."
},
"last_modified_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records changed at or after this date-time (shop local time)."
}
}
}