Tillhub MCP by usefulapi

Read Tillhub products, stock, transactions, customers and retail reports from your AI assistant.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
90%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~6,642토큰 (도구 정의)
~2.0 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 5.19%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "tillhub": {
      "url": "https://tillhub.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://tillhub.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (27)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢tillhub_get_account

The Tillhub user behind the API key: role, scopes, account id and name (no credentials). GET /api/v0/me.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_products(type, product_group, tag, barcode, custom_id, ...)

List products (articles, variants, vouchers) with name, number, barcode, prices, taxes and product group. Filter by type, group, tag, barcode or custom id (barcode and custom_id are fast exact lookups and ignore the other filters). Page with next_query. GET /api/v1/products/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Product type.",
      "type": "string",
      "enum": [
        "product",
        "voucher",
        "linked",
        "variant",
        "linked_product",
        "variant_product",
        "composed_product"
      ]
    },
    "product_group": {
      "description": "Product group id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "tag": {
      "description": "Tag name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "barcode": {
      "description": "Exact barcode (ignores the other filters).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "custom_id": {
      "description": "Exact product number / custom id (ignores the other filters).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "active": {
      "description": "Only active (true) or inactive (false) products.",
      "type": "boolean"
    },
    "sellable": {
      "description": "Only products suitable for sale (true) or not (false).",
      "type": "boolean"
    },
    "deleted": {
      "description": "true = deleted products only; default non-deleted.",
      "type": "boolean"
    },
    "updated_since": {
      "type": "string",
      "description": "Only products updated at or after this time. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "limit": {
      "description": "Items per page, 1-100 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_search_products(query, sellable, limit, offset)

Fuzzy search products by name and description (max 20 hits per page, with relevance score). GET /api/v2/products/{account}/search.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Search text; partial words are matched."
    },
    "sellable": {
      "description": "Only sellable products.",
      "type": "boolean"
    },
    "limit": {
      "description": "Hits per page, 1-20.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 20
    },
    "offset": {
      "description": "Result offset for paging search results.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_get_product(product_id, branch)

One product by id, optionally with the stock and prices of one branch. GET /api/v1/products/{account}/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$",
      "description": "Tillhub product id (uuid)."
    },
    "branch": {
      "description": "Branch id for branch-specific stock data.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_product_groups(active, deleted, next_query)

List product groups (categories) with id and name. GET /api/v0/product_groups/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "active": {
      "description": "Only active (true) or inactive (false) groups.",
      "type": "boolean"
    },
    "deleted": {
      "description": "true = deleted groups only.",
      "type": "boolean"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_tags(query, deleted, next_query)

List product tags. GET /api/v1/tags/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Text search on the tag name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "deleted": {
      "description": "true = deleted tags only.",
      "type": "boolean"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_transactions(date_start, date_end, branch, register, staff, ...)

List sales and other register transactions (type, date, branch, register, staff, customer, amounts, payments, cart items). Always pass a date range for busy shops. Page with next_query. GET /api/v1/transactions/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "date_start": {
      "type": "string",
      "description": "Only transactions on or after this time. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "date_end": {
      "type": "string",
      "description": "Only transactions before this time. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "branch": {
      "description": "Branch id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "register": {
      "description": "Register id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "staff": {
      "description": "Cashier staff id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "customer": {
      "description": "Customer id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "type": {
      "description": "Transaction type, for example sale, sale_cancel, expense, deposit.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "receipt_number": {
      "description": "Receipt number (custom id).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "limit": {
      "description": "Items per page, 1-100 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_get_transaction(transaction_id)

One transaction by id with its full cart, payments and taxes. GET /api/v1/transactions/{account}/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "transaction_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$",
      "description": "Tillhub transaction id (uuid)."
    }
  },
  "required": [
    "transaction_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_transactions_report(date_start, date_end, branch, register, staff, ...)

Detailed transactions report for a period, filterable by branch, register, staff, customer, type and currency. GET /api/v3/analytics/{account}/reports/transactions/overview.

입력 스키마

{
  "type": "object",
  "properties": {
    "date_start": {
      "type": "string",
      "description": "Only transactions on or after this time. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "date_end": {
      "type": "string",
      "description": "Only transactions before this time. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "branch": {
      "description": "Branch id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "register": {
      "description": "Register id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "staff": {
      "description": "Cashier staff id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "customer": {
      "description": "Customer id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "type": {
      "description": "Transaction type, for example sale, sale_cancel, expense, deposit.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "currency": {
      "description": "Currency ISO code, e.g. EUR.",
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_receipts(limit, next_query)

List receipts (printed or digital) of the account. Page with next_query. GET /api/v1/receipts/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Items per page, 1-100 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_revenue_sum(start, end, branch_number, next_query)

Total revenue between two points in time, optionally for one branch number. GET /api/v0/analytics/{account}/aggregates/revenues/sum.

입력 스키마

{
  "type": "object",
  "properties": {
    "start": {
      "type": "string",
      "description": "Start of the period. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "end": {
      "type": "string",
      "description": "End of the period. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "branch_number": {
      "description": "Branch number (not the id).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "required": [
    "start",
    "end"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_sales_aggregate(start, end, precision, branch_number, next_query)

Sales and revenue aggregated per hour or per day between two points in time. GET /api/v0/analytics/{account}/aggregates/sales.

입력 스키마

{
  "type": "object",
  "properties": {
    "start": {
      "type": "string",
      "description": "Start of the period. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "end": {
      "type": "string",
      "description": "End of the period. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "precision": {
      "description": "Interval size (default day).",
      "type": "string",
      "enum": [
        "hour",
        "day"
      ]
    },
    "branch_number": {
      "description": "Branch number (not the id).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "required": [
    "start",
    "end"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_top_products(start, end, branch_number, next_query)

Best-selling products in a period, optionally for one branch number. GET /api/v0/analytics/{account}/reports/products/top.

입력 스키마

{
  "type": "object",
  "properties": {
    "start": {
      "type": "string",
      "description": "Start of the period (inclusive). ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "end": {
      "type": "string",
      "description": "End of the period (exclusive). ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "branch_number": {
      "description": "Branch number (not the id).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_balances(branch, register, staff, query, limit, ...)

List cash-register closings (balances / Z-reports) with totals per register and day. Filter by branch, register or staff. Page with next_query. GET /api/v0/analytics/{account}/reports/balances.

입력 스키마

{
  "type": "object",
  "properties": {
    "branch": {
      "description": "Branch id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "register": {
      "description": "Register id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "staff": {
      "description": "Staff id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "query": {
      "description": "Text search.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "limit": {
      "description": "Items per page, 1-100 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_customers(query, firstname, lastname, email, company, ...)

List customers with name, company, email, phone numbers and addresses. Filter by text, name, email, company or customer number. Page with next_query. GET /api/v1/customers/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Text search over first name, last name, email, company and number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "firstname": {
      "description": "First name substring.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "lastname": {
      "description": "Last name substring.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "email": {
      "description": "Email substring.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "company": {
      "description": "Company name substring.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "customer_number": {
      "description": "Exact customer number (ignores the other filters).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "active": {
      "description": "Only active (true) or inactive (false) customers.",
      "type": "boolean"
    },
    "updated_since": {
      "type": "string",
      "description": "Only customers updated at or after this time. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "limit": {
      "description": "Items per page, 1-100 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_search_customers(query, limit, offset)

Fuzzy search customers by name, email and description (max 100 hits, with relevance score). GET /api/v2/customers/{account}/search.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Search text; partial words are matched."
    },
    "limit": {
      "description": "Hits per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Result offset for paging search results.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_get_customer(customer_id)

One customer by id. GET /api/v1/customers/{account}/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$",
      "description": "Tillhub customer id (uuid)."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_branches(query, name, active, limit, next_query)

List branches (shops) with number, name and address. Use the ids to filter transactions, stock and prices. Page with next_query. GET /api/v1/branches/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Text search over several fields.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "name": {
      "description": "Name substring.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "active": {
      "description": "Only active (true) or inactive (false) branches.",
      "type": "boolean"
    },
    "limit": {
      "description": "Items per page, 1-100 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_registers(branch, query, active, next_query)

List cash registers with number, name and branch. GET /api/v1/registers/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "branch": {
      "description": "Only registers of this branch id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "query": {
      "description": "Text search on the name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "active": {
      "description": "Only active (true) or inactive (false) registers.",
      "type": "boolean"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_staff(query, branch, active, next_query)

List staff members (cashiers) with name, number and branch. PINs and passwords are never returned. GET /api/v1/staff/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Text search over name and email.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "branch": {
      "description": "Only staff of this branch id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "active": {
      "description": "Only active (true) or inactive (false) staff.",
      "type": "boolean"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_payment_options(active, next_query)

List payment options (cash, card, voucher, ...) configured for the account. GET /api/v0/payment_options/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "active": {
      "description": "Only active (true) or inactive (false) options.",
      "type": "boolean"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_taxes(active, next_query)

List tax (VAT) references with rates. GET /api/v0/taxes/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "active": {
      "description": "Only active (true) or inactive (false) taxes.",
      "type": "boolean"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_discounts(branch, active, next_query)

List configured discounts. GET /api/v0/discounts/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "branch": {
      "description": "Only discounts available in this branch id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "active": {
      "description": "Only active (true) or inactive (false) discounts.",
      "type": "boolean"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_stock(location, product, next_query)

Current stock per product and location. Filter by location (branch/warehouse id) or product id. GET /api/v0/stock/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "location": {
      "description": "Location id (branch or warehouse).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "product": {
      "description": "Product id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_stock_locations(next_query)

List stock locations (branches and warehouses) with their ids. GET /api/v0/stock/{account}/locations.

입력 스키마

{
  "type": "object",
  "properties": {
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_stock_book(product, location, start, end, query, ...)

Stock book: every stock movement (sale, delivery, correction, transfer) with product, location, quantity and date. Filter by product, location, period or text. Page with next_query. GET /api/v1/stock/{account}/book.

입력 스키마

{
  "type": "object",
  "properties": {
    "product": {
      "description": "Product id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "location": {
      "description": "Location id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9._:-]+$"
    },
    "start": {
      "type": "string",
      "description": "Only movements on or after this time. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "end": {
      "type": "string",
      "description": "Only movements before this time. ISO 8601 date (2026-10-01) or date-time (2026-10-01T00:00:00Z)."
    },
    "query": {
      "description": "Text search over product name, barcode, group and location.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "limit": {
      "description": "Items per page, 1-100 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢tillhub_list_orders(direction, deleted, limit, next_query)

List incoming or outgoing orders (goods orders between locations/suppliers). Page with next_query. GET /api/v0/orders/{account}.

입력 스키마

{
  "type": "object",
  "properties": {
    "direction": {
      "description": "Only incoming or outgoing orders.",
      "type": "string",
      "enum": [
        "incoming",
        "outgoing"
      ]
    },
    "deleted": {
      "description": "true = deleted orders only.",
      "type": "boolean"
    },
    "limit": {
      "description": "Items per page, 1-100 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "next_query": {
      "description": "next_query from the previous reply to get the following page. It already contains the filters, so the other arguments are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "pattern": "^[^\\s#]+$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 27개