canonical: https://jentic.com/apis/katanamrp.com/katana

# Katanamrp Katana API

Jentic publishes the only available OpenAPI specification for Katana API, keeping it validated and agent-ready. Katana is a manufacturing resource planning (MRP) platform used by small and mid-sized makers to manage production, inventory, and sales orders. The API exposes customers, products, variants, sales orders, tax rates, and locations along with an OAuth token endpoint for authentication. It is the integration surface that lets accounting, e-commerce, and shipping tools stay in sync with what is being made and shipped from the warehouse floor.

## For AI agents

Manage customers, products, variants, sales orders, tax rates, and locations in a Katana MRP tenant. 8 endpoints covering the core inventory and order lifecycle.

## Scope

Does not handle accounting ledgers, shipping label generation, or storefront product display - use for Katana customer, variant, sales-order, tax-rate, and location operations only.

## Capabilities

- Authenticate to Katana with the `/oauth/token` endpoint to obtain a bearer token
- Resolve and create customer records via `/api/Customers/findOne` and `/api/Customers`
- Look up product variants and their stock through `/api/Variants`
- List configured tax rates and warehouse locations via `/api/taxRates` and `/api/Locations`
- Create and list sales orders via /sales-orders with customer, location, and product line references
- Authorise downstream Katana users programmatically via `/api/KatanaUsers/authorize`

## Use cases

### E-Commerce Order Sync to MRP

Push every Shopify or BigCommerce order into Katana as a sales order so the production team sees real demand, not just storefront receipts. The /sales-orders endpoint accepts customer, location, and variant references in a single call, and `/api/Customers/findOne` resolves repeat buyers without creating duplicate records. End-to-end wiring is typically a day for a one-storefront firm.

Example prompt: Resolve the Shopify customer via POST `/api/Customers/findOne`, then create a Katana sales order via POST /sales-orders with the matching variant SKUs and shipping location.

### Stock Lookup for Sales Quotes

Quote sales reps real stock before they commit a delivery date by reading product variant availability from Katana via `/api/Variants.` The variant payload exposes on-hand and committed quantities per location, so a quote tool can reject an oversold order before it reaches the production team. Removes a recurring source of customer dissatisfaction for makers running near capacity.

Example prompt: Fetch the variant matching SKU 'WIDGET-RED-L' via GET `/api/Variants` and return on-hand stock at the primary location.

### Tax and Location Configuration Mirror

Mirror Katana's tax rates and warehouse locations into a CRM or quoting tool so reps see the same options that production sees. `/api/taxRates` and `/api/Locations` are read-only lookups; cache them daily and reuse the values when constructing sales orders to avoid mismatches on tax computation or origin warehouse assignment.

Example prompt: Cache `/api/taxRates` and `/api/Locations` responses daily and use them to populate dropdowns in the quoting tool.

### Agent-Driven Production Operations

Production-floor AI assistants use Jentic to query Katana when an operator asks 'how many red widgets do we have?' or 'create a sales order for Acme'. Jentic handles the OAuth dance via `/oauth/token` and stores the bearer in the vault, so the assistant never has to refresh tokens or expose credentials in chat.

Example prompt: Use the Jentic search 'create a Katana sales order', load the schema, and execute POST /sales-orders for the supplied customer and variant.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/oauth/token` | Exchange credentials for a bearer token |
| POST | `/api/Customers/findOne` | Find a customer by filter |
| POST | `/api/Customers` | Create a customer |
| GET | `/api/taxRates` | List tax rates |
| GET | `/api/Locations` | List warehouse locations |
| GET | `/api/Variants` | List product variants with stock |
| POST | `/sales-orders` | Create a sales order |

## Key resources

- **Customers** — Find or create customer records linked to sales orders.
- **Products and Variants** — Look up products and their variants with stock and pricing.
- **Sales Orders** — Create and list sales orders with customer, location, and line item references.
- **Tax Rates and Locations** — Configuration lookups for tax computation and warehouse routing.
- **Authentication** — OAuth token endpoint and Katana user authorisation.

## Why Jentic

- **Setup:** Wiring the Katana API by hand means running its OAuth token exchange at `/oauth/token`, holding the resulting bearer, and mapping customers, variants, and sales orders to their request shapes yourself. Through Jentic you install once, import the Katana API from the API Directory, store the OAuth credential once, and your agent calls it.
- **Permission scoping:** Katana's writes post to collection endpoints like `/api/Customers` and /sales-orders rather than a resource id in the path, so scope the agent by the operations it needs, such as creating a sales order or reading variant stock. You pick that set, so customer creation is not included unless you add it.
- **Credential handling:** Your Katana OAuth client credentials and the resulting bearer are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a Katana sales order' or 'check variant stock', and Jentic returns the matching Katana operation with its body schema so the agent calls the right endpoint without reading Katana's developer documentation.

## Related APIs

- **Shopify Admin API** — Storefront source of orders that Katana ingests for production planning.
- **Xero Accounting API** — Accounting ledger that books sales-order revenue from Katana.
- **HubSpot CRM** — CRM that owns the customer record before it enters Katana as a sales order.
- **Zoho Inventory API** — Inventory and order tool that overlaps with Katana for SMB manufacturing.

## FAQ

### Why is there no official OpenAPI spec for Katana API?

Katana does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Katana API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Katana API use?

The API uses HTTP bearer tokens. Clients call POST `/oauth/token` to exchange Katana credentials for a bearer, then send `Authorization: Bearer {token}` on every subsequent call. Through Jentic the credential exchange happens server-side and the bearer never reaches the agent.

### Can I create a sales order with multiple line items in Katana?

Yes. POST /sales-orders accepts a customer ID, location ID, and an array of line items referencing variants and quantities. Resolve unknown variants first via GET `/api/Variants` and unknown customers via POST `/api/Customers/findOne` to avoid creating duplicate records.

### What are the rate limits for the Katana API?

Katana applies per-tenant throttling and returns HTTP 429 on bursts. The platform is sized for SMB manufacturing traffic, so steady polling for stock and order status (every minute or two) sits well within the limit. Use cached `/api/taxRates` and `/api/Locations` responses to keep request volume down.

### How do I create a Katana sales order through Jentic?

Run `pip install jentic` and search Jentic for 'create a Katana sales order'. Jentic returns the schema for POST /sales-orders; supply the customer ID, location ID, and line item array, then execute. The bearer token is injected from your Jentic One instance.

### Does the Katana API expose stock levels per variant?

Yes. GET `/api/Variants` returns each variant with its on-hand and committed quantities per location, which lets a quoting tool reject orders that would oversell available stock at the chosen warehouse.

### Is the Katana API included in every plan?

API access is included with Katana paid plans. The trial tier is limited and high-volume integrations may need an Advanced plan to lift API quotas.

### Can I limit what my agent is allowed to do with the Katana API?

Yes. Because you run Jentic One yourself, you decide which Katana operations the agent may call, so you can grant read-only access to variant stock via GET `/api/Variants` and tax and location lookups via GET `/api/taxRates` and `/api/Locations` while withholding writes. Katana's writes post to collection endpoints like /sales-orders and `/api/Customers` rather than a resource id in the path, so you scope by operation, allowing sales-order creation without also allowing customer creation unless you add it. The agent can only invoke the operations you include, and the stored OAuth credential is injected at execution rather than exposed to the agent.
