E-Commerce · Beta
Cin7
API integration
Ship E-Commerce features without building the integration. Full Cin7 API access via Proxy and 70+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Cin7
Common scenarios for SaaS companies building Cin7 integrations for their customers.
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
Ship these features with Truto + Cin7
Concrete product features your team can ship faster by leveraging Truto’s Cin7 integration instead of building from scratch.
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.
SuperAI
Cin7 AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
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.
Why Truto
Why use Truto’s MCP server for Cin7
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Cin7 in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Cin7 account
Use Truto’s frontend SDK to connect your customer’s Cin7 account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Cin7
Truto’s Proxy API is a 1-to-1 mapping of the Cin7 API. You call us, we call Cin7, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Cin7’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Cin7 on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
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.
From the Blog
Cin7 integration guides
Deep dives, architecture guides, and practical tutorials for building Cin7 integrations.
Cin7
Get Cin7 integrated into your app
Our team understands what it takes to make a Cin7 integration successful. A short, crisp 30 minute call with folks who understand the problem.