Read Laudus ERP customers, sales, purchases, stock and accounting reports; create customers.
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.
The balance sheet (balance general) as of a date, either the standard layout or the totals layout. GET /accounting/balanceSheet/standard or /totals.
Default standard.
Accounting book id (default: the main book).
As of this date (default today).
Account levels to show, as in Laudus (for example 1,2,3).
The balance sheet (balance general) as of a date, either the standard layout or the totals layout. GET /accounting/balanceSheet/standard or /totals.
| Argument | Type | Description |
|---|---|---|
| layout | string | Default standard. |
| book_id | string | Accounting book id (default: the main book). |
| date_to | string | As of this date (default today). |
| show_levels | string | Account levels to show, as in Laudus (for example 1,2,3). |
| cost_center_id | string | |
| show_accounts_with_zero_balance | boolean | |
| show_only_accounts_with_activity | boolean |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"layout": {
"enum": [
"standard",
"totals"
],
"type": "string",
"description": "Default standard."
},
"book_id": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Accounting book id (default: the main book)."
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "As of this date (default today)."
},
"show_levels": {
"type": "string",
"maxLength": 20,
"minLength": 1,
"description": "Account levels to show, as in Laudus (for example 1,2,3)."
},
"cost_center_id": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"show_accounts_with_zero_balance": {
"type": "boolean"
},
"show_only_accounts_with_activity": {
"type": "boolean"
}
}
}WRITE: creates a new customer in Laudus (the customer id is assigned by Laudus; the customer record is not an invoice and sends nothing). Check laudus_list_customers for the RUT first to avoid duplicates. Laudus may require more fields than given and answers with its validation message. POST /sales/customers.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| name* | string | Trade name (max 50 characters). |
| string | ||
| notes | string | |
| phone | string | |
| county | string | Comuna. |
| vat_id | string | Customer RUT, e.g. 76123456-7. |
| address | string | |
| dte_email | string | Email for electronic tax documents. |
| legal_name | string | Legal name / razon social (max 80). |
A customer's credit limit and how much of it is used. GET /sales/customers/{id}/creditLimit.
| Argument | Type | Description |
|---|---|---|
| customer_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}Unpaid sales invoices (accounts receivable). Give customer_id for one customer, or leave it out for all customers. GET /sales/customers/{id}/pendingInvoices or /sales/customers/pendingInvoices.
| Argument | Type | Description |
|---|---|---|
| customer_id | integer | Customer id; omit for every customer. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Customer id; omit for every customer.",
"exclusiveMinimum": 0
}
}
}The general ledger (libro mayor) movements of an account or a range of account numbers, for a date range. GET /accounting/ledger.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return (default 100, at most 1000). |
| offset | integer | Rows to skip. |
| book_id | string | |
| date_to | string | |
| date_from | string | |
| cost_center_id | string | |
| account_number_to | string | Last account number of a range. |
| account_number_from* | string | First account number (or the only one). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"account_number_from"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 1000,
"description": "Rows to return (default 100, at most 1000).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip."
},
"book_id": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$"
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$"
},
"cost_center_id": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"account_number_to": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Last account number of a range."
},
"account_number_from": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "First account number (or the only one)."
}
}
}Get a customer (addresses, contact data, credit limit, category, salesman, price list) by id. GET /sales/customers/{id}.
| Argument | Type | Description |
|---|---|---|
| customer_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}Get an accounting journal entry (comprobante) with its lines by id. GET /accounting/journal/entries/{id}.
| Argument | Type | Description |
|---|---|---|
| journal_entry_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"journal_entry_id"
],
"properties": {
"journal_entry_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}Get a product (SKU, description, category, units, prices) by id. GET /production/products/{id}.
| Argument | Type | Description |
|---|---|---|
| product_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}Stock of one product, optionally as of a date, in one warehouse or lot; with by_warehouse true, the stock in each warehouse. GET /production/products/{id}/stock or /stockByWarehouses.
| Argument | Type | Description |
|---|---|---|
| lot | string | Only this lot (ignored with by_warehouse). |
| date_to | string | Stock as of this date (default today). |
| product_id* | integer | |
| by_warehouse | boolean | Break the stock down per warehouse. |
| warehouse_id | string | Only this warehouse (ignored with by_warehouse). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"lot": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only this lot (ignored with by_warehouse)."
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "Stock as of this date (default today)."
},
"product_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"by_warehouse": {
"type": "boolean",
"description": "Break the stock down per warehouse."
},
"warehouse_id": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Only this warehouse (ignored with by_warehouse)."
}
}
}Get a purchase invoice with its lines by id. GET /purchases/invoices/{id}.
| Argument | Type | Description |
|---|---|---|
| purchase_invoice_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"purchase_invoice_id"
],
"properties": {
"purchase_invoice_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}Get a purchase order with its lines by id. GET /purchases/orders/{id}.
| Argument | Type | Description |
|---|---|---|
| purchase_order_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"purchase_order_id"
],
"properties": {
"purchase_order_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}Get a sales invoice with its lines, taxes and totals by id. GET /sales/invoices/{id}.
| Argument | Type | Description |
|---|---|---|
| sales_invoice_id* | any |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sales_invoice_id"
],
"properties": {
"sales_invoice_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"maxLength": 100,
"minLength": 1
}
]
}
}
}Get a sales order with its lines by id. GET /sales/orders/{id}.
| Argument | Type | Description |
|---|---|---|
| sales_order_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sales_order_id"
],
"properties": {
"sales_order_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}Get a sales quote with its lines by id. GET /sales/quotes/{id}.
| Argument | Type | Description |
|---|---|---|
| sales_quote_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sales_quote_id"
],
"properties": {
"sales_quote_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}Get a supplier by id. GET /purchases/suppliers/{id}.
| Argument | Type | Description |
|---|---|---|
| supplier_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"supplier_id"
],
"properties": {
"supplier_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}List the chart of accounts (plan de cuentas) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example accountId, accountNumber, name. When a page is full, ask for the next one with offset = offset + limit. POST /accounting/accounts/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List cost centers (centros de costo) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example costCenterId, name, code. When a page is full, ask for the next one with offset = offset + limit. POST /purchases/costcenters/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}The contact people of a customer. GET /sales/customers/{id}/contacts.
| Argument | Type | Description |
|---|---|---|
| customer_id* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}List customers with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example customerId, name, legalName, VATId, email, phone1, city, county, creditLimit, blocked, customerCategory.name, salesman.name. When a page is full, ask for the next one with offset = offset + limit. POST /sales/customers/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List accounting journal entries (comprobantes) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example journalEntryId, journalEntryNumber, date, lines.account.accountNumber, lines.debit, lines.credit. When a page is full, ask for the next one with offset = offset + limit. POST /accounting/journal/entries/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List product categories with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example productCategoryId, name, fullPath. When a page is full, ask for the next one with offset = offset + limit. POST /production/products/categories/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List products and services (the item master) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example productId, sku, description, productCategory.name, unitOfMeasure, unitPrice, stockable, discontinued. When a page is full, ask for the next one with offset = offset + limit. POST /production/products/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List purchase invoices (facturas de compra) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example purchaseInvoiceId, docNumber, issuedDate, dueDate, supplier.name, totals.total. When a page is full, ask for the next one with offset = offset + limit. POST /purchases/invoices/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List purchase orders (ordenes de compra) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example purchaseOrderId, issuedDate, supplier.name, status, items.product.sku, items.quantity. When a page is full, ask for the next one with offset = offset + limit. POST /purchases/orders/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List sales invoices and electronic tax documents (facturas, notas de credito) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example salesInvoiceId, docType.name, docNumber, issuedDate, dueDate, customer.name, customer.VATId, totals.net, totals.total, items.product.sku, items.quantity. When a page is full, ask for the next one with offset = offset + limit. POST /sales/invoices/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List sales orders (pedidos de venta) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example salesOrderId, issuedDate, dueDate, customer.name, items.product.sku, items.quantity. When a page is full, ask for the next one with offset = offset + limit. POST /sales/orders/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List sales quotes (cotizaciones) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example salesQuoteId, issuedDate, customer.name, items.product.sku, items.quantity. When a page is full, ask for the next one with offset = offset + limit. POST /sales/quotes/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List customer payments received (cobros) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example receiptId, receiptType, issuedDate, dueDate. When a page is full, ask for the next one with offset = offset + limit. POST /sales/receipts/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List salespeople (vendedores) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example salesmanId, name. When a page is full, ask for the next one with offset = offset + limit. POST /sales/salesmen/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}Stock of every product, optionally as of a date, for one warehouse or one product category. Can be large: filter by warehouse or category. GET /production/products/stock.
| Argument | Type | Description |
|---|---|---|
| date_to | string | Stock as of this date (default today). |
| warehouse_id | string | |
| product_category_id | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "Stock as of this date (default today)."
},
"warehouse_id": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"product_category_id": {
"type": "string",
"maxLength": 50,
"minLength": 1
}
}
}List suppliers (proveedores) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example supplierId, name, legalName, VATId, email, phone, city. When a page is full, ask for the next one with offset = offset + limit. POST /purchases/suppliers/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}List warehouses (bodegas) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example warehouseId, name, city. When a page is full, ask for the next one with offset = offset + limit. POST /production/warehouses/list.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows to return, 1-200 (default 25). |
| fields | array | Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity. |
| filter | array | Conditions, all of which must hold (AND). |
| offset | integer | Rows to skip (default 0). For the next page pass offset + limit. |
| order_by | array | Sort order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Rows to return, 1-200 (default 25).",
"exclusiveMinimum": 0
},
"fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity."
},
"filter": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"operator",
"value"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A field of the entity, also nested (customer.name, items.product.sku)."
},
"value": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"maxItems": 200,
"minItems": 1
}
],
"description": "One value, or an array (matches any of them). Dates as 2026-01-31T23:59:59."
},
"operator": {
"enum": [
"=",
"!=",
">",
"<",
">=",
"<=",
"contains",
"starts",
"ends"
],
"type": "string",
"description": "\"contains\", \"starts\", \"ends\" are for text; text matching ignores case."
}
}
},
"maxItems": 30,
"description": "Conditions, all of which must hold (AND)."
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Rows to skip (default 0). For the next page pass offset + limit."
},
"order_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default ASC."
}
}
},
"maxItems": 10,
"description": "Sort order."
}
}
}The ids of sales orders not yet delivered, optionally for one customer or a due-date range. GET /sales/orders/pending.
| Argument | Type | Description |
|---|---|---|
| customer_id | integer | |
| due_date_to | string | Due date to (yyyy-mm-dd). |
| due_date_from | string | Due date from (yyyy-mm-dd). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"due_date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "Due date to (yyyy-mm-dd)."
},
"due_date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "Due date from (yyyy-mm-dd)."
}
}
}The stock movements (kardex) of one product, optionally to a date and for one warehouse. GET /production/products/{id}/kardex.
| Argument | Type | Description |
|---|---|---|
| date_to | string | |
| product_id* | integer | |
| warehouse_id | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$"
},
"product_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"warehouse_id": {
"type": "string",
"maxLength": 50,
"minLength": 1
}
}
}The profit and loss statement (estado de resultados) for a date range. GET /accounting/profitAndLoss.
| Argument | Type | Description |
|---|---|---|
| book_id | string | Accounting book id (default: the main book). |
| date_to | string | |
| date_from | string | |
| show_levels | string | Account levels to show, as in Laudus (for example 1,2,3). |
| cost_center_id | string | |
| show_accounts_with_zero_balance | boolean | |
| show_only_accounts_with_activity | boolean |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"book_id": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Accounting book id (default: the main book)."
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$"
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$"
},
"show_levels": {
"type": "string",
"maxLength": 20,
"minLength": 1,
"description": "Account levels to show, as in Laudus (for example 1,2,3)."
},
"cost_center_id": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"show_accounts_with_zero_balance": {
"type": "boolean"
},
"show_only_accounts_with_activity": {
"type": "boolean"
}
}
}The purchases ledger (libro de compras) for a year and month. GET /purchases/invoices/ledger.
| Argument | Type | Description |
|---|---|---|
| year | integer | |
| month | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990
},
"month": {
"type": "integer",
"maximum": 12,
"minimum": 1
}
}
}The customer payments (cobros) applied to one sales invoice. GET /sales/invoices/{id}/receipts.
| Argument | Type | Description |
|---|---|---|
| sales_invoice_id* | any |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sales_invoice_id"
],
"properties": {
"sales_invoice_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"maxLength": 100,
"minLength": 1
}
]
}
}
}Invoiced sales totals grouped by day of week, day of month, month, year, salesman, customer, customer category, product, product category, county, state or branch, for a date range and optional filters. GET /reports/sales/invoices/{group}.
| Argument | Type | Description |
|---|---|---|
| date_to | string | |
| group_by* | string | How to group the totals. |
| branch_id | integer | |
| date_from | string | |
| product_id | integer | |
| customer_id | integer | |
| salesman_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"group_by"
],
"properties": {
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$"
},
"group_by": {
"enum": [
"byDayOfWeek",
"byDayOfMonth",
"byMonth",
"byYear",
"bySalesman",
"byCustomer",
"byCustomerCategory",
"byProduct",
"byProductCategory",
"byCounty",
"byState",
"byBranch"
],
"type": "string",
"description": "How to group the totals."
},
"branch_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?$"
},
"product_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"salesman_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}| activity_name |
| string |
| Business activity (giro). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"city": {
"type": "string",
"maxLength": 30,
"minLength": 1
},
"name": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Trade name (max 50 characters)."
},
"email": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"notes": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"phone": {
"type": "string",
"maxLength": 15,
"minLength": 1
},
"county": {
"type": "string",
"maxLength": 20,
"minLength": 1,
"description": "Comuna."
},
"vat_id": {
"type": "string",
"maxLength": 15,
"minLength": 1,
"description": "Customer RUT, e.g. 76123456-7."
},
"address": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"dte_email": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Email for electronic tax documents."
},
"legal_name": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Legal name / razon social (max 80)."
},
"activity_name": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Business activity (giro)."
}
}
}