---
title: Zip API Integration on Truto
slug: zip
category: Spend Management
canonical: "https://truto.one/integrations/detail/zip/"
---

# Zip API Integration on Truto



**Category:** Spend Management  
**Status:** Beta

## Unified APIs

### Unified User Directory API

- **Groups** — Groups are a collection of users in the source application. In some applications, they might also be called Teams.
- **Roles** — The Role object represents a role of a User.
- **Users** — The User object represents a User.

## MCP-ready AI tools

Truto exposes 131 tools for Zip that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Zip 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 Zip.** The Proxy API is a 1-to-1 mapping of the Zip 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 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

- **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.

## FAQs

### 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.

## Related reading

- [Connect Zip to ChatGPT: Manage Vendors, Invoices & Requests via MCP](https://truto.one/blog/connect-zip-to-chatgpt-manage-vendors-invoices-and-requests/) — Learn how to connect Zip to ChatGPT using a managed MCP server. Execute complex procurement workflows, manage vendors, and triage invoices using AI agents.
- [Connect Zip to Claude: Automate Approvals, Users, and Workflows](https://truto.one/blog/connect-zip-to-claude-automate-approvals-users-and-workflows/) — Learn how to connect Zip to Claude using a managed MCP server. Automate procurement requests, vendor onboarding, and invoice approvals with AI agents.
- [Connect Zip to Claude: Automate Vendor Onboarding and Invoicing](https://truto.one/blog/connect-zip-to-claude-automate-vendor-onboarding-and-invoicing/) — Learn how to connect Zip to Claude using a managed MCP server. This guide covers how to expose Zip procurement data to AI agents and automate vendor onboarding.
- [Connect Zip to ChatGPT: Manage Procurement and Approval Workflows](https://truto.one/blog/connect-zip-to-chatgpt-manage-procurement-and-approval-workflows/) — Learn how to connect Zip to ChatGPT using a managed MCP server. Automate procurement requests, vendor onboarding, and approval workflows directly from your AI agent.
- [Connect Zip to AI Agents: Sync Budgets, Line Items, and Audit Logs](https://truto.one/blog/connect-zip-to-ai-agents-sync-budgets-line-items-and-audit-logs/) — Learn how to connect Zip to AI agents using Truto's /tools endpoint. Bypass API boilerplate, fetch dynamic schemas, and build autonomous procurement workflows.
