Spend Management · Beta
Zip
API integration
Ship Spend Management features without building the integration. Full Zip API access via Proxy, normalized data through Unified APIs, and 130+ MCP-ready tools for AI agents — all extensible to your exact use case.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Zip
Common scenarios for SaaS companies building Zip integrations for their customers.
Embed vendor risk reviews into procurement intake
GRC and security platforms can automatically pick up new vendor requests from Zip, run assessments, and mark the security approval node complete without users leaving your product. This eliminates manual handoffs between procurement and security teams.
Sync master financial data into Zip from your ERP
Accounting and ERP platforms can push GL codes, departments, subsidiaries, tax codes, and locations into Zip so employees code requests correctly at intake. This keeps Zip's coding options aligned with the general ledger without manual admin work.
Automate AP and invoice payment reconciliation
Payment platforms and AP automation tools can ingest approved invoices from Zip, execute payment, and write the paid status back. Finance teams get end-to-end reconciliation without exporting CSVs or double-entering data.
Feed SaaS management tools with pre-purchase visibility
SMP and shadow IT platforms can poll Zip requests and purchase orders to catch new software purchases before deployment. This powers renewal forecasting, duplicate app detection, and license tracking from the moment a request is filed.
Push signed contracts back into procurement workflows
CLM platforms can attach counter-signed agreements directly to the originating Zip request as a document, unblocking the procurement team to issue the PO. Legal and procurement stay in sync without email threads.
What You Can Build
Ship these features with Truto + Zip
Concrete product features your team can ship faster by leveraging Truto’s Zip integration instead of building from scratch.
Bi-directional vendor master sync
List, create, and update Zip vendors from your app so vendor records stay consistent across your system and Zip's procurement records.
Questionnaire-driven workflow triggers
Read intake questionnaire responses on each request to trigger the right downstream workflow (security review, legal redlining, IT provisioning) in your platform.
In-thread collaboration via Zip comments
Post status updates, links, and completion notes from your app directly into the Zip request thread so requesters see progress without switching tools.
Approved invoice ingestion and paid-status writeback
Pull approved invoices with line items from Zip, process payment in your platform, and update the invoice as paid to close the AP loop.
Financial configuration provisioning
Programmatically manage GL codes, departments, tax codes, locations, subsidiaries, and expense categories in Zip from your ERP or finance product.
Document upload and retrieval for contracts
Fetch original agreements and W-9s attached to a request, then upload signed MSAs or other finalized documents back onto the same Zip record.
SuperAI
Zip AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_zip_approvals
Search and list approvals in Zip that match a set of filters. Returns approval node records including id, name, status, display_status, node_type, config_type, start_time, complete_time, due_date, sla_hours, assignee, tasks, request, queue, stage, created_at, and updated_at.
list_all_zip_users
Search Zip users using optional filters. Returns per record: id, email, is_active, first_name, last_name, department, subsidiary, manager, roles, queues, groups, external_data, and attributes.
get_single_zip_user_by_id
Get a single Zip user by id. Returns: id, openapi, info, servers, security, paths, components. Required: id.
create_a_zip_user
Create a new Zip user. Returns the created user including id, email, is_active, first_name, last_name, department, subsidiary, manager, roles, queues, groups, external_data, and attributes.
update_a_zip_user_by_id
Update a Zip user by id. Returns the updated user including id, email, is_active, first_name, last_name, department, subsidiary, manager, roles, queues, groups, external_data, and attributes. Required: id.
zip_users_deactivate
Deactivate a Zip user by user_id. Returns the deactivated user including id, email, is_active, first_name, last_name, department, subsidiary, manager, roles, queues, groups, external_data, and attributes. Required: user_id.
list_all_zip_vendors
Search vendors in Zip matching the given criteria. Returns a list of vendor records; each record includes id, name, status, created_at, updated_at, external_id, address, contacts, categories, and owners.
get_single_zip_vendor_by_id
Get a single vendor in Zip by id. Returns the full vendor object including id, name, status, created_at, updated_at, external_id, address, contacts, legal_name, categories, and owners. Required: id.
create_a_zip_vendor
Create or update (upsert) a vendor in Zip keyed by external_id. Returns the created or updated vendor object including id, name, status, created_at, updated_at, external_id, address, contacts, and owners. Required: data.external_id.
update_a_zip_vendor_by_id
Update a single vendor in Zip by id. Returns the updated vendor object including id, name, status, created_at, updated_at, external_id, address, contacts, and owners. Required: id.
delete_a_zip_vendor_by_id
Delete a single vendor in Zip by id. Returns the deleted vendor object including id, name, status, external_id, updated_at, address, and contacts. Required: id.
list_all_zip_requests
Search Zip requests based on various filter and sort parameters, returning up to 30 results per page. Returns per record: id, name, status, request_type, priority, amount_usd, vendor, requester, department, payment_method, price_detail, created_at, and updated_at.
get_single_zip_request_by_id
Get a single Zip purchase request by id. Returns the full request object including id, name, status, request_type, priority, amount_usd, vendor, requester, department, payment_method, price_detail, purchase_order, created_at, and updated_at. Required: id.
update_a_zip_request_by_id
Update a Zip request by id. Returns the updated request object including id, name, status, request_type, priority, amount_usd, vendor, requester, department, payment_method, price_detail, purchase_order, created_at, and updated_at. Required: id.
list_all_zip_departments
List departments in Zip with optional search filters. Returns: id, name, display_name, is_active, hide_in_zip, created_at, updated_at, external_ids, external_data.
get_single_zip_department_by_id
Get a single Zip department by id. Returns the department object including id, name, display_name, is_active, hide_in_zip, created_at, updated_at, and external_data. Required: id.
create_a_zip_department
Create a new department in Zip. Returns the created department object including id, name, display_name, is_active, hide_in_zip, created_at, updated_at, and external_data.
update_a_zip_department_by_id
Update a Zip department by id. Returns the updated department object including id, name, display_name, is_active, hide_in_zip, created_at, updated_at, and external_data. Required: id.
delete_a_zip_department_by_id
Delete a Zip department by id. Returns an empty 204 response on success. Required: id.
list_all_zip_roles
Search and list roles in Zip. Returns each role's id and name. Optionally filter by name or control sort order with sort_by and sort_order.
get_single_zip_role_by_id
Get a single Zip role by id. Returns: id, name, openapi, info, servers, security, paths, components. Required: id.
create_a_zip_role
Create a new role in Zip. Returns: id, name, openapi, info, servers, security, paths, components.
update_a_zip_role_by_id
Update a Zip role by id. Returns: id, name, openapi, info, servers, security, paths, components. Required: id.
delete_a_zip_role_by_id
Delete a Zip role by id. Returns an empty 204 response on success. Required: id.
list_all_zip_invoices
List and search Zip invoices using optional filters. Returns invoice records including id, invoice_number, status, vendor, subsidiary, purchase_orders, line_items, erp_sync_status, and applied_vendor_credits. Supports filtering by status, vendor_id, invoice_number, date ranges (created, updated, approved), invoice amount, and upload_source.
get_single_zip_invoice_by_id
Get a single Zip invoice by id. Returns the full invoice object including id, invoice_number, status, vendor, subsidiary, purchase_orders, line_items, erp_sync_status, applied_vendor_credits, and exception_tasks. Required: id.
create_a_zip_invoice
Create a new invoice in Zip. Returns the created invoice object including id, invoice_number, status, vendor, subsidiary, purchase_orders, line_items, and erp_sync_status.
update_a_zip_invoice_by_id
Update header-level fields on a Zip bill invoice by id, including due_date, invoice_date, and coded invoice flags. The invoice can also be matched to purchase orders by providing purchase_order_ids or purchase_order_numbers. Returns the updated invoice including id, invoice_number, status, vendor, subsidiary, erp_sync_status, and line_items. Required: id.
zip_invoices_submit
Submit a Zip bill invoice for approval. Validates the draft invoice for completeness, then transitions it into the approval workflow. Returns the updated invoice including id, invoice_number, status, vendor, subsidiary, erp_sync_status, and line_items. Required: invoice_id.
zip_invoices_update_paid_status
Update the paid status of a Zip invoice, marking it as PAID or UNPAID. Returns the updated invoice object including id, invoice_number, status, vendor, subsidiary, purchase_orders, and line_items. Required: invoice_id, data.new_status; when marking as PAID, data.paid_on_date and data.currency are also required.
list_all_zip_invoice_line_items
List invoice line items in Zip. Returns: id, description, quantity, rate, billed_amount, received_amount, line_number, tax_amount, shipping_amount, misc_amount, total, pre_tax_total, currency, start_date, end_date, start_date_iso, end_date_iso, line_type, line_type_name, secondary_line_type, department, expense_category, gl_code, item_account, location, tax_codes, vendor_item, attributes,…
create_a_zip_invoice_line_item
Add one or more line items to a Zip invoice. Returns: list. Required: invoice_id.
update_a_zip_invoice_line_item_by_id
Update an existing invoice line item in Zip. Returns the updated line item including id, description, rate, quantity, total, line_type, department, expense_category, gl_code, and other fields. Required: invoice_id, id.
list_all_zip_purchase_orders
List and search purchase orders in Zip using optional filters on creation date, update date, open amount, and vendor. Returns one record per purchase order including id, po_number, total_amount, total_amount_usd, currency, status, vendor, created_at, updated_at, payment_method, payment_frequency, and billing/tax amounts.
get_single_zip_purchase_order_by_id
Get a single Zip purchase order by id. Returns the full purchase order object including id, po_number, total_amount, total_amount_usd, currency, status, vendor, payment_method, payment_frequency, created_at, updated_at, and all billing and tax amounts. Required: id.
list_all_zip_agreements
Search and list agreements in Zip. Returns agreement records including agreement_number, name, agreement_status, currency, amount, start_date, end_date, renewal_status, attachments, original_request, child_requests, purchase_orders, and renewal_stakeholder_queues. Optionally filter by vendor_id, subsidiary_id, or department_id.
get_single_zip_agreement_by_id
Get a single Zip agreement by id. Returns the full agreement object including agreement_number, name, agreement_status, currency, amount, start_date, end_date, renewal_status, attachments, original_request, child_requests, purchase_orders, and renewal_stakeholder_queues. Required: id.
list_all_zip_vendor_credits
Search vendor credits in Zip, optionally filtered by credit invoice number. Returns vendor credit records including id, credit_number, currency, vendor, subsidiary, amount, applied_invoices, and line_items.
get_single_zip_vendor_credit_by_id
Get a single vendor credit in Zip by id. Returns the vendor credit including id, credit_number, currency, vendor, subsidiary, amount, applied_invoices, and line_items. Required: id.
create_a_zip_vendor_credit
Create a new vendor credit in Zip. Returns the created vendor credit including id, credit_number, currency, vendor, subsidiary, amount, and line_items. Required: vendor_id, subsidiary_id, currency.
update_a_zip_vendor_credit_by_id
Update the header information of a vendor credit in Zip by id. Returns the updated vendor credit including id, credit_number, currency, vendor, subsidiary, amount, and line_items. Required: id.
zip_vendor_credits_submit
Submit a vendor credit for approval in Zip. Returns the submitted vendor credit including id and credit_invoice_number. Required: vendor_credit_id.
update_a_zip_vendor_credit_line_item_by_id
Update a vendor credit line item in Zip by id. Returns the updated line item including id, description, quantity, rate, line_type, currency, total, and coding fields such as department, expense_category, gl_code, and location. Required: vendor_credit_id, id.
list_all_zip_locations
Search Zip locations, optionally filtering by name. Returns a list of location objects including id, name, status, created_at, updated_at, and external_data.
create_a_zip_location
Create a new location in Zip. Returns the created location object including id, name, status, created_at, and updated_at.
update_a_zip_location_by_id
Update an existing Zip location by id, modifying its name and/or status via a data wrapper. Returns the updated location object including id, name, status, created_at, and updated_at. Required: id.
delete_a_zip_location_by_id
Delete a Zip location by id. Returns an empty 204 response on success. Required: id.
list_all_zip_subsidiaries
List subsidiaries in Zip, optionally filtered by name or active status. Returns per record: id, name, display_name, is_active, created_at, updated_at, external_data, and address.
get_single_zip_subsidiary_by_id
Get a single Zip subsidiary by id. Returns the subsidiary record including id, name, display_name, is_active, created_at, updated_at, address, and external_data. Required: id.
create_a_zip_subsidiary
Create a new subsidiary in Zip. Returns the created subsidiary including id, name, display_name, is_active, created_at, updated_at, external_data, and address.
update_a_zip_subsidiary_by_id
Update a Zip subsidiary by id. Returns the updated subsidiary including id, name, display_name, is_active, created_at, updated_at, external_data, and address. Required: id.
delete_a_zip_subsidiary_by_id
Delete a Zip subsidiary by id. Returns an empty 204 response on success. Required: id.
list_all_zip_gl_codes
Search and list GL accounts in Zip. Supports optional filters by name and active status. Returns: id, created_at, updated_at, name, currency, active, subsidiaries, external_id, external_data, account_type, account_sub_type, account_number, source.
get_single_zip_gl_code_by_id
Get a single GL account by id in Zip. Returns: name, key, show_in_zip, lookup, openapi, info, servers, security, paths, components. Required: id.
create_a_zip_gl_code
Create a new GL account in Zip. Returns: id, created_at, updated_at, name, currency, active, subsidiaries, external_id, external_data, account_type, account_sub_type, account_number, source, openapi, info, servers, security, paths, components.
update_a_zip_gl_code_by_id
Update an existing GL account by id in Zip. Returns: id, created_at, updated_at, name, currency, active, subsidiaries, external_id, external_data, account_type, account_sub_type, account_number, source, openapi, info, servers, security, paths, components. Required: id.
list_all_zip_expense_categories
List all expense categories in Zip. Returns: id, name, description, active, gl_code_id, subsidiary_ids, source.
get_single_zip_expense_category_by_id
Get a single expense category by id in Zip. Returns: id, created_at, updated_at, name, description, source, active, external_data, gl_code, subsidiaries, openapi, info, servers, security, paths, components. Required: id.
create_a_zip_expense_category
Create a new expense category in Zip. Returns the created category object including id, name, description, active, source, gl_code, subsidiaries, created_at, updated_at, and external_data.
update_a_zip_expense_category_by_id
Update an expense category by id in Zip. Returns: id, name, description, active, gl_code_id, subsidiary_ids, source, openapi, info, servers, security, paths, components. Required: id.
delete_a_zip_expense_category_by_id
Delete a single expense category by id in Zip. Returns an empty 204 response on success. Required: id.
list_all_zip_tax_codes
Search and list tax codes in Zip with optional filters on name, active status, or tax code type. Returns: id, created_at, updated_at, display_name, name, description, active, rate, country, city, county, state, tax_code_type, external_id, external_data.
get_single_zip_tax_code_by_id
Get a single Zip tax code by id. Returns: id, created_at, updated_at, display_name, name, description, active, rate, country, city, county, state, tax_code_type, external_id, external_data, openapi, info, servers, security, paths, components. Required: id.
create_a_zip_tax_code
Create a new tax code in Zip. Returns the created tax code object including id, name, display_name, active, rate, tax_code_type, country, state, city, county, description, created_at, updated_at, and external_data.
update_a_zip_tax_code_by_id
Update an existing Zip tax code by id. Returns the updated tax code object including id, name, display_name, active, rate, tax_code_type, country, state, city, county, description, created_at, updated_at, and external_data. Required: id.
delete_a_zip_tax_code_by_id
Delete a Zip tax code by id. Returns an empty 204 response on success. Required: id.
create_a_zip_vendor_contact
Create a vendor contact in Zip for a specific vendor. Returns the created contact object including id, vendor_id, first_name, last_name, email, title, phone, and phone_country. Required: vendor_id, first_name, last_name, email.
list_all_zip_vendor_items
List vendor items in Zip. Returns vendor item records including id, status, currency, rate_cents, vendor_id, product_id, supplier_part_number, and lead_time.
create_a_zip_vendor_item
Create a new vendor item in Zip. Returns the created vendor item including id, status, currency, rate_cents, vendor_id, product_id, supplier_part_number, and lead_time.
update_a_zip_vendor_item_by_id
Update a vendor item in Zip by id. Returns the updated vendor item including id, status, currency, rate_cents, vendor_id, product_id, supplier_part_number, lead_time, and purchasing_group_ids. Required: id.
list_all_zip_vendor_item_groups
List vendor item groups in Zip. Returns a collection of vendor item group records including id, name, description, currency, activePriceRange, vendor, childMemberships, and objectType.
create_a_zip_vendor_item_group
Create a new vendor item group in Zip. Returns the created vendor item group object including id, name, description, currency, activePriceRange, vendor, childMemberships, and objectType.
update_a_zip_vendor_item_group_by_id
Update a single vendor item group in Zip by id. Returns the updated vendor item group object including id, name, description, currency, activePriceRange, vendor, childMemberships, and objectType. Required: id.
list_all_zip_vendor_payment_methods
List all payment methods for a Zip vendor. Returns: id, country, currency, custom_fields, external_data, payment_file_format_id, payment_file_format_name, payment_method, vendor, is_approved, is_deleted, is_deleted_by_vendor, updated_at. Required: vendor_id.
list_all_zip_lookups
List Zip lookup types. Returns a paginated collection of lookup records including id, name, integration_key, integration_name, display_name_fields, filters, and show_in_zip.
get_single_zip_lookup_by_id
Get a single Zip lookup type by id. Returns the lookup object including id, name, integration_key, display_name_fields, filters, settings_fields, and show_in_zip. Required: id.
create_a_zip_lookup
Create a new Zip lookup type. Returns the created lookup object including id, name, integration_key, display_name_fields, filters, settings_fields, and show_in_zip.
update_a_zip_lookup_by_id
Update a Zip lookup type by id. Returns the updated lookup object including id, name, integration_key, display_name_fields, filters, settings_fields, and show_in_zip. Required: id.
delete_a_zip_lookup_by_id
Delete a Zip lookup type by id. Returns an empty 204 response on success. Required: id.
list_all_zip_lookup_options
Search and list lookup options in Zip, optionally filtering by key, name, show_in_zip, or lookup_id. Returns: id, name, key, show_in_zip, lookup.
get_single_zip_lookup_option_by_id
Get a single Zip lookup option by id. Returns: id, name, key, show_in_zip, lookup, openapi, info, servers, security, paths, components. Required: id.
create_a_zip_lookup_option
Create a new lookup option in Zip. Returns the created option including id, name, key, show_in_zip, and lookup.
update_a_zip_lookup_option_by_id
Update an existing Zip lookup option by id. Returns the updated option including id, name, key, show_in_zip, and lookup. Required: id.
delete_a_zip_lookup_option_by_id
Delete a Zip lookup option by id. Returns an empty 204 response on success. Required: id.
list_all_zip_item_accounts
Search and list Zip item accounts using optional filters. Returns: id, created_at, updated_at, name, active, subsidiaries, item_unit_of_measure, external_id, external_data.
get_single_zip_item_account_by_id
Get a Zip item account by id. Returns a wrapper object including name, key, show_in_zip, and a lookup object containing the full item account record (id, created_at, updated_at, name, active, subsidiaries, item_unit_of_measure, external_data). Required: id.
create_a_zip_item_account
Create a new item account in Zip. Returns: id, created_at, updated_at, name, active, subsidiaries, item_unit_of_measure, external_id, external_data.
list_all_zip_item_receipts
List item receipts in Zip with optional filters on creation/update timestamps or status. Returns: id, created_at, updated_at, note, status, receipt_number, archive_note, received_date, external_link, external_data, purchase_order, line_items.
get_single_zip_item_receipt_by_id
Get a single Zip item receipt by id. Returns the full receipt record including id, type, status, created_at, updated_at, received_date, receipt_number, note, archive_note, external_link, purchase_order, and line_items. Required: id.
list_all_zip_amortization_schedules
List amortization schedules in Zip with optional filters on active status and name. Returns: id, is_active, name, source.
get_single_zip_amortization_schedule_by_id
Get a single amortization schedule in Zip by id. Returns: id, is_active, name, source, openapi, info, servers, security, paths, components. Required: id.
list_all_zip_delegations
List Zip delegations for the authenticated organization with optional filters. Returns: id, created_at, updated_at, starts_at, ends_at, timezone, note, status, master_key, delegator, delegate.
get_single_zip_delegation_by_id
Get a single Zip delegation by id. Returns the delegation object including id, type, status, starts_at, ends_at, timezone, note, master_key, delegator, delegate, created_at, and updated_at. Required: id.
create_a_zip_delegation
Create an out-of-office delegation in Zip, transferring a user's approval responsibilities to a delegate for a specified date range. Returns: id, created_at, updated_at, starts_at, ends_at, timezone, note, status, master_key, delegator, delegate, openapi, info, servers, security, paths, components. Required: data.delegator_id, data.delegate_id, data.start_date, data.end_date, data.timezone. Only…
update_a_zip_delegation_by_id
Update an existing Zip delegation by id. Returns: id, created_at, updated_at, starts_at, ends_at, timezone, note, status, master_key, delegator, delegate, openapi, info, servers, security, paths, components. Required: id. At least one field in data must be provided; changing the delegate triggers a circular delegation check.
delete_a_zip_delegation_by_id
Soft-delete a Zip delegation by id, setting its end date to yesterday and marking its status as EXPIRED; any in-progress delegated approvals are reassigned to the original delegator. Returns: id, created_at, updated_at, starts_at, ends_at, timezone, note, status, master_key, delegator, delegate, openapi, info, servers, security, paths, components. Required: id.
get_single_zip_queue_by_id
Get a single queue in Zip by id. Returns the queue object including id, name, type, queue_owners, queue_members, assignment_logic, default_assignee, description, and group_email. Required: id.
create_a_zip_queue
Create a main queue in Zip. Returns the created queue object including id, name, type, queue_owners, queue_members, assignment_logic, and default_assignee. Required: name, queue_owners, queue_members, assignment_logic.
update_a_zip_queue_by_id
Update a main queue or subqueue in Zip by id. Returns the updated queue object including id, name, type, queue_owners, queue_members, assignment_logic, default_assignee, description, and group_email. Required: id.
delete_a_zip_queue_by_id
Delete a queue in Zip by id. Returns an empty 204 response on success. Required: id.
create_a_zip_sub_queue
Create a subqueue on a parent queue in Zip. Returns the created sub-queue object including its id, type, name, queue_owners, queue_members, and assignment_logic. Required: queue_id.
list_all_zip_products
List Zip products by their IDs. Returns each product's id, name, type, line_type, manufacturer_name, unspsc_code, gl_code, item_account, and item_unit_of_measure. Required: guids.
create_a_zip_product
Create a new product in Zip. Returns the created product object including id, name, type, line_type, manufacturer_name, unspsc_code, gl_code, item_account, and item_unit_of_measure. Required: data.name.
update_a_zip_product_by_id
Update a Zip product by id. Returns the updated product object including id, name, type, line_type, manufacturer_name, unspsc_code, gl_code, item_account, and item_unit_of_measure. Required: id.
list_all_zip_currencies
List all supported currencies in Zip from your organization's admin settings. Returns: id, name, external_data.
update_a_zip_currency_by_id
Upsert currencies in Zip (append-only). Adds new currencies to the supported list without removing existing ones absent from the request. Returns: supported_currencies.
get_single_zip_document_by_id
Get a Zip document by id and download its binary file content. Returns the raw PDF binary content of the document — the response body is an application/pdf binary stream, not a JSON object. Required: id.
create_a_zip_document
Upload a document to Zip as a multipart form, optionally attaching it to a purchase request or invoice. Returns: id, file_name, openapi, info, servers, security, paths, components.
get_single_zip_payment_method_by_id
Get a single payment method by id in Zip. Returns: id, updated_at, openapi, info, servers, security, paths, components. Optionally include sensitive data or soft-deleted records via query parameters. Required: id.
update_a_zip_payment_method_by_id
Update a payment method by id in Zip, modifying its external integration mapping or custom fields. Returns the updated payment method object including id, country, currency, payment_method, vendor, is_approved, is_deleted, and updated_at. Required: id.
list_all_zip_payment_terms
List payment terms in Zip with optional search filters. Returns: id, name, net_period_in_days, is_active, external_data.
get_single_zip_payment_term_by_id
Get a single Zip payment terms record by id. Returns: id, name, net_period_in_days, is_active, external_data, openapi, info, servers, security, paths, components. Required: id.
get_single_zip_payout_by_id
Get a single payout in Zip by id. Returns the payout object including id, type, amount, fx_rate, reference_id, paid_on_date, reversed_on_date, payment_provider_creation_time, payment_method_type, currency_object, funding_currency_object, vendor, account, subsidiary, invoices, created_at, and updated_at. Required: id.
create_a_zip_address
Create a new address in Zip, optionally associated with a vendor. The data object must include lines, locality, and country. Returns the created address object including id, lines, locality, country, postal_code, status, address_str, display_country, display_region, and vendor address type flags. Required: data.
create_a_zip_comment
Create a comment on a Zip purchase requisition or invoice, or reply to an existing comment on Zip's RDP. Returns: success, comment, openapi, info, servers, security, paths, components. Required: data.user_id, data.external_display_name, and one of data.text or data.text_html; plus one of data.comment_parent_id, data.purchase_requisition_id, or data.invoice_id.
delete_a_zip_comment_by_id
Delete a Zip comment by its GUID. Returns: success, openapi, info, servers, security, paths, components. Required: id.
list_all_zip_request_comments
List comments belonging to a Zip request. Returns: id, text, text_html, user_id, external_url, external_display_name, comment_parent_id, created_at. Required: request_id.
update_a_zip_request_line_item_by_id
Update the line items on a Zip request. Returns the updated line item object including id, description, quantity, rate, line_type, currency, department, expense_category, and gl_code. Required: request_id.
list_all_zip_request_questionnaire_responses
List questionnaire responses for a Zip request. Returns each questionnaire's id, name, status, and question_responses array (including question_prompt, question_id, data, selected_options, text, weight, weighted_score, section, and reviewer_scores). Required: request_id.
list_all_zip_user_groups
List user groups in Zip, optionally filtered by name and sorted by creation or update time. Returns each matching group's id and name. The source documents only these two fields for this resource.
get_single_zip_user_group_by_id
Get a single Zip user group by id. Returns: id, name, openapi, info, servers, security, paths, components. Required: id.
list_all_zip_workflows
List all request workflows configured for the company in Zip. Returns: id, name, status.
list_all_zip_workflow_attributes
List configurable attributes for a Zip workflow given its ID. Returns one attribute record per item including id, name, data, config_id, integration_data, and entity_type. Required: workflow_id.
list_all_zip_audit_logs
List audit trail logs in Zip. Returns: id, timestamp, event_type, user, api_key, user_ip_address, accessed_from, description, data. Supports optional filtering by created_after, created_before, event_type, creator_id, creator_email, and actor_type. Requires a Zip Premier subscription.
list_all_zip_purchase_categories
List all available purchase categories in Zip as defined under company settings. Returns a three-level hierarchy: each top-level category has a name and a subcategories array; each mid-level subcategory has a name and a nested subcategories array; each deepest-level subcategory has an id (UUID) and name.
create_a_zip_budget
Create or update a budget in Zip for a given fiscal period and set of dimensions. Returns the upserted budget including its id, type, start_date, end_date, amount, dimensions, and owners. Required: data (must contain start_date, end_date, amount, and dimensions).
create_a_zip_budget_actual
Create or update a budget actual in Zip for a given date and set of dimensions (upsert). Returns the resulting budget actual including its id, type, date, amount, dimensions, and matched_budget_id. Required: date, amount, dimensions (sent within a data wrapper).
list_all_zip_option_filter_rules
List option filter rules in Zip. Returns a collection of rules, each including rule_id, type, target_field, source_field_1, and target_filtered_options.
update_a_zip_option_filter_rule_by_id
Create or update (upsert) an option filter rule in Zip by rule_id. If a rule with the given rule_id already exists it is updated; otherwise a new rule is created. Returns the rule object including rule_id, type, target_field, source_field_1, target_filtered_options, source_field_1_values, source_field_2, source_field_2_values, upload_source, user_permission_groups, created_at, and updated_at.…
delete_a_zip_option_filter_rule_by_id
Delete an existing option filter rule in Zip by rule_id. Returns: success, rule_id, openapi, info, servers, security, paths, components. Required: rule_id.
create_a_zip_einvoice
Create an invoice in Zip from an e-invoice XML document. Supply the XML as a raw/base64 string; an optional base64-encoded PDF can be provided to override the PDF generated from the XML. Returns the created invoice object including its id, status, invoice_date, due_date, vendor, subsidiary, currency, and description. Required: xml.
Why Truto
Why use Truto’s MCP server for Zip
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 600+ 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.
Unified APIs
Unified APIs for Zip
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
How It Works
From zero to integrated
Go live with Zip in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Zip account
Use Truto’s frontend SDK to connect your customer’s Zip 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 Zip
Truto’s Proxy API is a 1-to-1 mapping of the Zip API. You call us, we call Zip, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Zip’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Zip on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What data objects does the Zip integration support?
The integration covers requests, approvals, vendors, invoices and line items, purchase orders, agreements, vendor credits, users, departments, roles, locations, subsidiaries, GL codes, tax codes, expense categories, documents, comments, questionnaire responses, workflows, audit logs, budgets, and more. Both read and write operations are supported where Zip's API allows it.
Can I write back approval decisions or status updates from my app?
Yes. You can update requests, submit or update the paid status of invoices, submit vendor credits, and post comments back into the Zip request thread. This lets your product participate in Zip's approval orchestration rather than just reading data.
How do I map users and roles between Zip and my product?
Zip user, role, and group data is available through both the Zip-specific tools and Truto's Unified User Directory API. You can use the unified model if you're integrating with multiple identity or spend platforms, or the native Zip endpoints when you need Zip-specific fields.
Can we pull the exact questionnaire answers a requester submitted?
Yes. The list_all_zip_request_questionnaire_responses endpoint returns the specific answers employees provided during intake, which is what you'd use to drive conditional logic in your own workflows (e.g., trigger a SOC 2 review only if PII is involved).
How does Truto handle authentication with Zip?
Truto manages the OAuth handshake, token storage, and refresh cycles for each of your end-users' Zip accounts. Your app receives a stable connection identifier and doesn't need to store or rotate Zip credentials directly.
Can we sync custom fields or lookup values defined in a customer's Zip instance?
Yes. Zip's lookups and lookup options are exposed through dedicated endpoints, so you can list, create, and update custom picklist values and reference them when creating requests, invoices, or vendors.
From the Blog
Zip integration guides
Deep dives, architecture guides, and practical tutorials for building Zip integrations.
Zip
Get Zip integrated into your app
Our team understands what it takes to make a Zip integration successful. A short, crisp 30 minute call with folks who understand the problem.