---
title: Cin7 API Integration on Truto
slug: cin7
category: E-Commerce
canonical: "https://truto.one/integrations/detail/cin7/"
---

# Cin7 API Integration on Truto



**Category:** E-Commerce  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 73 tools for Cin7 that AI agents can call directly.

- **get_single_cin_7_adjustment_by_id** — Get a single Adjustment in Cin7 by its integer id. Returns: id, reference, source. Required: id.
- **list_all_cin_7_adjustments** — List Adjustments in Cin7. Returns each Adjustment as id plus attributes holding the remaining fields (not enumerated by the API reference). Max 250 rows per page.
- **create_a_cin_7_adjustment** — Create a list of Adjustments in Cin7 by posting a JSON array of Adjustment objects as the body. Returns a JSON array of batch result items; the upstream API documentation does not enumerate the fields of each result item. The body must be a bare JSON array (pass it as `body` on MCP tool calls).
- **cin_7_adjustments_bulk_update** — Update a list of Adjustments in Cin7 by sending a JSON array of Adjustment objects as the body, identifying each existing Adjustment by its integer id. Returns a JSON array of batch result items; the upstream API documentation does not enumerate the fields of each result item.
- **get_single_cin_7_bom_master_by_id** — Get a single Bill of Materials (BOM) Master by id in cin7. Returns the BOM Master record with its id and model-defined attributes. Required: id.
- **list_all_cin_7_bom_masters** — List Bill of Materials (BOM) Masters in cin7. Returns an array of BOM Master records, each with its id and model-defined attributes. Max 250 rows per page.
- **get_single_cin_7_branch_by_id** — Get a single Branch in Cin7 by id. Returns the Branch with its id and attributes (branch fields are defined upstream and not enumerated in the reference). Required: id.
- **list_all_cin_7_branches** — List Branches in Cin7 with field selection, filtering, and sorting. Returns Branch records with id and attributes. Up to 250 rows per page.
- **create_a_cin_7_branch** — Create a list of Branches in Cin7 with a single batch call. Returns a batch result array with id, reference, and success per item.
- **cin_7_branches_bulk_update** — Update a list of Branches in Cin7 with a single batch call. Returns a batch result array with id, reference, and success per item.
- **get_single_cin_7_branch_transfer_by_id** — Get a Branch Transfer. Returns: id, createdDate, modifiedDate, createdBy, processedBy, approvedBy, isApproved, reference. Required: id.
- **list_all_cin_7_branch_transfers** — Get a list of Branch Transfers. Returns: id, createdDate, modifiedDate, createdBy, processedBy, approvedBy, isApproved, reference.
- **create_a_cin_7_branch_transfer** — Create a list of Branch Transfers. Returns: success, id, code, errors, index.
- **cin_7_branch_transfers_bulk_update** — Update a list of Branch Transfers. Returns: success, id, code, errors, index.
- **get_single_cin_7_carton_by_id** — Get the Carton details for a Sales Order. Returns: number, sscc, length, depth, height, volume, weight, trackingNumber. Required: id.
- **update_a_cin_7_carton_by_id** — Replace the list of Cartons for a Sales Order. Required: id.
- **get_single_cin_7_contact_by_id** — Get a single Contact from Cin7 by id. Returns the Contact object, including its id; the remaining fields of the upstream Contact model are not enumerated in the discovered source. Required: id.
- **delete_a_cin_7_contact_by_id** — Delete a Contact from Cin7 by id. Returns the upstream result item, including the id of the deleted Contact; its remaining fields are not enumerated in the discovered source. Required: id.
- **list_all_cin_7_contacts** — List Contacts from Cin7 with optional field selection, filtering, and ordering. Returns an array of Contact objects, each including its id; the remaining fields of the upstream Contact model are not enumerated in the discovered source. Rows per page defaults to 50, maximum 250.
- **create_a_cin_7_contact** — Create a list of Contacts in Cin7 by posting a JSON array of Contact objects. Returns an array of batch result items, each including the id of the created Contact; the discovered source references the upstream batch-result model without enumerating its remaining fields. Body: a JSON array of Contact objects.
- **cin_7_contacts_bulk_update** — Update a list of Contacts in Cin7 by putting a JSON array of Contact objects, each carrying the id of the Contact to update. Returns an array of batch result items, each including the id of the updated Contact; the discovered source references the upstream batch-result model without enumerating its remaining fields.
- **get_single_cin_7_credit_note_by_id** — Get a single credit note in Cin7 by its numeric id. Returns the credit note record, including its id. Required: id.
- **list_all_cin_7_credit_notes** — List credit notes in Cin7. Returns credit note records, each including its id. Maximum 250 rows per page.
- **create_a_cin_7_credit_note** — Create one or more credit notes in Cin7 in a single batch. The request body is a JSON array of credit note objects. Returns an array of per-item batch results, each including the id of the affected credit note.
- **cin_7_credit_notes_bulk_update** — Update one or more existing credit notes in Cin7 in a single batch. The request body is a JSON array of credit note objects. Returns an array of per-item batch results, each including the id of the affected credit note.
- **get_single_cin_7_payment_by_id** — Get a single Payment by id in Cin7. Returns the Payment record (upstream Payment model; Cin7 publishes no field-level breakdown, so the body is content-opaque) with its identifier (id). Required: id.
- **delete_a_cin_7_payment_by_id** — Delete a Payment by id in Cin7. The upstream model body (BatchResultItem-style ResultItem) is content-opaque — Cin7 publishes no field-level breakdown — but it carries the identifier of the deleted record (id). Returns one such result item. Required: id.
- **list_all_cin_7_payments** — List Payments in Cin7 with field selection, where-clause filtering, and ordering. Returns an array of Payment records (upstream Payment model; field-level breakdown not published), each with its identifier (id). Hard limit: max 250 rows per page.
- **create_a_cin_7_payment** — Create a list of Payments in Cin7 in a single batch. The body is a JSON array of payment objects (upstream Payment model; field-level breakdown not published in the API docs). Returns one batch result item per submitted record. Hard limit: max 250 items per request.
- **cin_7_payments_bulk_update** — Update a list of Payments in Cin7 in a single batch. The body is a JSON array of payment objects (upstream Payment model; field-level breakdown not published in the API docs). Returns one batch result item per submitted record. Hard limit: max 250 items per request.
- **get_single_cin_7_product_category_by_id** — Get a single product category in Cin7 by id. Returns the ProductCategory record including its id; the API reference does not document the remaining category fields. Required: id.
- **list_all_cin_7_product_categories** — List product categories in Cin7. Returns an array of ProductCategory records, each including its id; the API reference does not document the remaining category fields. Max 250 rows per page.
- **create_a_cin_7_product_category** — Create one or more product categories in Cin7 by submitting an array of category objects. Returns 200 with an array of batch result items, one per submitted category; the API reference does not document the fields of each result item.
- **cin_7_product_categories_bulk_update** — Update one or more product categories in Cin7 by submitting an array of category objects. Leave fields empty to clear them; null fields are not updated. Returns 200 with an array of batch result items, one per submitted category; the API reference does not document the fields of each result item.
- **create_a_cin_7_product_image** — Upload a product image in Cin7 and attach it to a product. Returns a result item with the id of the uploaded image record.
- **get_single_cin_7_production_job_by_id** — Get a single Cin7 production job by id. Returns the production job record, including its id. Required: id.
- **list_all_cin_7_production_jobs** — List Cin7 production jobs. Returns an array of production job records (each with an id). Filter with where, select columns with fields, sort with order; rows is capped at 250 per page.
- **create_a_cin_7_production_job** — Create one or more Cin7 production jobs by posting a bare JSON array of production job objects. Returns an array of batch result items, one per submitted job; the API reference does not enumerate the item fields.
- **cin_7_production_jobs_bulk_update** — Update one or more Cin7 production jobs by sending a bare JSON array of production job objects. Returns an array of batch result items, one per submitted job; the API reference does not enumerate the item fields.
- **get_single_cin_7_product_option_by_id** — Get a single product option in Cin7 by its numeric id. Returns the product option record including id. Required: id.
- **list_all_cin_7_product_options** — List product options in Cin7. Returns product option records including id. Supports fields, where, and order filtering; max 250 rows per page.
- **create_a_cin_7_product_option** — Create a list of product options in Cin7 by sending a JSON array of product option objects as the request body. Returns the upstream batch result item array with item-specific outcome fields, including the record id.
- **cin_7_product_options_bulk_update** — Update a list of product options in Cin7 by sending a JSON array of updated product option objects as the request body. Returns the upstream batch result item array with item-specific outcome fields, including the record id.
- **get_single_cin_7_product_by_id** — Get a single product from Cin7 by id. Returns the product record including its id; the full field set is defined by Cin7's Product schema and is not enumerated in the available reference. Required: id.
- **list_all_cin_7_products** — List products from Cin7. Returns product records including their id; the full field set is defined by Cin7's Product schema and is not enumerated in the available reference. Max 250 rows per page.
- **create_a_cin_7_product** — Create one or more products in Cin7 in a single batch. Returns one batch result item per submitted product. Duplicate style codes or product option codes within the request are rejected with a 400, and products whose style code or product option code already exists are skipped. The body is a JSON array of product objects.
- **cin_7_products_bulk_update** — Update one or more products in Cin7 in a single batch. Returns one batch result item per submitted product. The body is a JSON array of up to 250 product objects; set a field to an empty value to clear it, or to null to leave it unchanged. Products whose style code or product option code already exists are skipped.
- **get_single_cin_7_purchase_order_by_id** — Get a purchase order from Cin7 by id. Returns the purchase order object including its id, with remaining fields as defined by Cin7's PurchaseOrder model. Required: id.
- **list_all_cin_7_purchase_orders** — List purchase orders from Cin7. Returns an array of purchase order records, each including its id, with remaining fields as defined by Cin7's PurchaseOrder model. Filter with where, select fields, sort with order; max 250 rows per page.
- **create_a_cin_7_purchase_order** — Create one or more purchase orders in Cin7. Requires a JSON array body of purchase order objects. Returns an array of batch result items, one per submitted purchase order, each with its id.
- **cin_7_purchase_orders_bulk_update** — Update one or more purchase orders in Cin7. Requires a JSON array body of purchase order objects. Returns an array of batch result items, one per submitted purchase order, each with its id.
- **get_single_cin_7_quote_by_id** — Get a single Quote by id in Cin7. Returns the Quote's id; the Quote model's remaining fields are not enumerated in the Cin7 Omni API reference. Required: id.
- **list_all_cin_7_quotes** — List Quotes in Cin7. Returns Quote records each including its id; other Quote fields follow the Cin7 Omni Quote model. Max 250 rows per page (default 50).
- **create_a_cin_7_quote** — Create one or more Quotes in Cin7 by submitting an array of Quote objects. Returns one batch result item per Quote, including the resulting Quote's id.
- **cin_7_quotes_bulk_update** — Update one or more Quotes in Cin7 by submitting an array of Quote objects. Returns one batch result item per Quote, including the Quote's id.
- **get_single_cin_7_sales_order_by_id** — Get a single sales order in Cin7 by id. Returns the sales order record as defined by the upstream SalesOrder model. Required: id.
- **list_all_cin_7_sales_orders** — List sales orders in Cin7. Returns an array of sales order records as defined by the upstream SalesOrder model, up to 250 rows per page.
- **create_a_cin_7_sales_order** — Create one or more sales orders in Cin7 by sending an array of sales order objects. Returns an array of batch result items reporting the outcome of each created order. Requires an array of sales order objects.
- **cin_7_sales_orders_bulk_update** — Update one or more sales orders in Cin7 by sending an array of sales order objects. Returns an array of batch result items reporting the outcome of each updated order. Requires an array of sales order objects.
- **get_single_cin_7_sales_orders_with_carton_by_id** — Get a single Cin7 Sales Order with its Carton details by order id. Returns the record including its id and cartons. Required: id.
- **list_all_cin_7_sales_orders_with_cartons** — List Cin7 Sales Orders with their Carton details. Returns records including id and cartons. Maximum 250 rows per page.
- **get_single_cin_7_serial_number_by_id** — Get a single serial number from Cin7 by id. Returns the SerialNumber record including id. Required: id.
- **list_all_cin_7_serial_numbers** — List serial numbers from Cin7. Returns an array of SerialNumber records, each including id. Supports fields, where, and order query filters. Max 250 rows per page.
- **get_single_cin_7_size_range_by_id** — Get SizeRange. Returns: sizeRangeName, sizes, id. Required: id.
- **list_all_cin_7_size_ranges** — Get All SizeRanges. Returns: sizeRangeName, sizes, id.
- **list_all_cin_7_stocks** — List stock units in Cin7, or fetch a single stock unit by supplying its barcode. Returns stock unit records, each keyed by barcode with content-type-specific fields in attributes. Max 250 rows per page.
- **get_single_cin_7_stock_by_id** — Get a Stock Unit from Cin7 by its barcode. Returns the matching stock unit record including its barcode and the remaining StockUnit attributes (schema-specific fields defined upstream). Required: id.
- **get_single_cin_7_user_by_id** — Get a User. Returns: id, isActive, firstName, lastName, jobTitle, email. Required: id.
- **list_all_cin_7_users** — Get a list of Users. Returns: id, isActive, firstName, lastName, jobTitle, email.
- **get_single_cin_7_voucher_by_id** — Get vouchers from Cin7 by their code. Returns an array of matching voucher records, each with its code identifier and voucher-specific attributes. Required: id.
- **list_all_cin_7_vouchers** — List vouchers in Cin7. Returns an array of voucher records, each with its code identifier and voucher-specific attributes. Max 250 rows per page (defaults to 50).
- **list_all_cin_7_payment_fees** — List Cin7 Pay payment fees. Returns a list of fee records, each containing an id plus fee-specific fields (modeled as attributes) defined by the upstream FeesAndPayouts schema.
- **list_all_cin_7_payment_payouts** — List payouts in Cin7 Pay. Returns payout records with their id and payout-specific attributes; the full field set is defined by Cin7's upstream FeesAndPayouts schema, so consult the upstream docs for the field-level breakdown.

## How it works

1. **Link your customer's Cin7 account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Cin7.** The Proxy API is a 1-to-1 mapping of the Cin7 API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed inventory sync for e-commerce and OMS platforms** — Give your users real-time visibility into Cin7 stock levels, branches, and sales orders so your platform can act as the operational layer on top of their inventory system. Ideal for OMS, POS, and multi-channel commerce tools.
- **Power demand planning and replenishment tools** — Pull historical sales orders, live stock counts, and open purchase orders from Cin7 to feed forecasting models, then write drafted purchase orders back for the user to approve. Removes hours of spreadsheet work for inventory planners.
- **Automate returns and post-purchase workflows** — Let returns and RMA platforms create credit notes against original sales orders, issue refund payments, and push stock adjustments into the correct return branch when items are received back into the warehouse.
- **Connect 3PL and WMS software to brand fulfillment** — Poll approved sales orders from Cin7, then write back carton dimensions, weight, and tracking numbers so brands using your WMS or shipping software can close the fulfillment loop without manual data entry.
- **Enable B2B wholesale and quoting portals** — Sync contacts, products, product options, and size ranges into your B2B storefront or CRM, and push quotes or sales orders back into Cin7 on behalf of specific wholesale buyers.

## What you can build

- **Real-time stock and multi-branch inventory sync** — List and fetch stock levels across all Cin7 branches to keep availability current in your app, with support for branch transfers when goods move between locations.
- **Two-way sales order and carton sync** — List sales orders (including sales orders with cartons) and update individual cartons with tracking numbers, weight, and dimensions to complete fulfillment.
- **Automated purchase order creation** — Read existing purchase orders and programmatically create new ones (or bulk update in flight) when your forecasting logic detects low stock in a specific branch.
- **Returns automation with credit notes and adjustments** — Create credit notes, issue payments, and post stock adjustments back into Cin7 so returned inventory flows into the right branch automatically.
- **Full product catalog and matrix ingestion** — Sync products, product categories, product options, size ranges, BOM masters, and serial numbers to power apparel, electronics, or manufacturing use cases with accurate parent-child variant data.
- **Wholesale contact and quote management** — Create and update Cin7 contacts, then draft quotes or push sales orders on their behalf directly from your B2B portal or CRM.

## FAQs

### How does authentication with Cin7 work through Truto?

Your end users connect their own Cin7 account through Truto's link component. Truto handles credential storage, refresh, and secure token exchange so you never touch the raw API keys.

### Which Cin7 objects can I read and write today?

You can read and (where supported) create or bulk update adjustments, branches, branch transfers, contacts, credit notes, payments, product categories, product options, products, production jobs, purchase orders, quotes, and sales orders. Read-only access is available for stocks, serial numbers, size ranges, BOM masters, cartons (update only), users, vouchers, payment fees, and payouts.

### Can I update fulfillment data like tracking numbers back to Cin7?

Yes. Use the update carton endpoint to attach carton dimensions, weight, and carrier tracking data to a sales order, and use sales orders with cartons to retrieve the enriched fulfillment record.

### Does the integration support bulk operations?

Yes. Bulk update endpoints are available for adjustments, branches, branch transfers, contacts, credit notes, payments, product categories, product options, products, production jobs, purchase orders, quotes, and sales orders, which is useful for batch syncs and reconciliation jobs.

### How do I keep stock data fresh?

Truto supports scheduled polling of list endpoints such as list_all_cin_7_stocks and list_all_cin_7_sales_orders. You can configure sync frequency based on how real-time your use case needs to be — Cin7's own rate limits will apply and Truto handles retries and pagination for you.

### Can I support light manufacturing workflows?

Yes. You can read BOM masters and create or bulk update production jobs, which is enough to model raw-material-to-finished-goods conversions for bundled products or assembly workflows.

## Related reading

- [Connect Cin7 to ChatGPT: Sync Inventory, Sales, and Supply Chain](https://truto.one/blog/connect-cin7-to-chatgpt-sync-inventory-sales-and-supply-chain/) — Learn how to connect Cin7 to ChatGPT using a managed MCP server. Automate inventory syncs, sales orders, and supply chain workflows with AI.
- [Connect Cin7 to Claude: Manage Sales and Production Lifecycles](https://truto.one/blog/connect-cin7-to-claude-manage-sales-and-production-lifecycles/) — Learn how to connect Cin7 to claude using Truto. Step-by-step guide to tool calling, API quirks, and autonomous workflows.
- [Connect Cin7 to AI Agents: Automate Orders, Stock, and Payouts](https://truto.one/blog/connect-cin7-to-ai-agents-automate-orders-stock-and-payouts/) — Learn how to programmatically connect Cin7 to AI agents using Truto's /tools endpoint and SDK to automate orders, stock, and payouts.
