Accounting
DualEntry
Connect DualEntry once and hand every teammate a governed MCP endpoint with 236 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.
See it in Elaichi
What connecting DualEntry gets you
6 screens from the product, each doing one job for your DualEntry account.
The agent
Ask DualEntry questions, get answers from live records.
Type a plain language question and pull real invoices, bills and sales orders instantly.
- invoices
- sales orders
- bills
- attachments
Ask Elaichi to work across your apps.
Show me open invoices past due this month.
Draft a sales order for our largest customer.
List unpaid bills by vendor for this quarter.
Also runs in Claude, ChatGPT or Cursor
MCP clients
One DualEntry endpoint, every MCP client welcome.
Claude, ChatGPT and Cursor connect through one governed endpoint, no SDK or shared key.
Copy the endpoint
Tool catalogue
236 DualEntry tools, zero integration code.
Every invoice, bill and sales order operation is already catalogued and ready to call.
- list_all_dualentry_public_healths
- list_all_dualentry_public_invoices
- create_a_dualentry_public_invoice
- update_a_dualentry_public_invoice_by_id
Toolboxes
Each team gets its own DualEntry toolbox.
Finance, sales and operations work from toolboxes scoped to what their team needs.
- Finance
- Sales
- Operations
- Executive
Shared connections
Teammates work through connections, never credentials.
See who connected each DualEntry account and how many teams and members share it.
- Finance US
- Finance EMEA
- Sales West
- Sales East
Audit log
Every DualEntry call is logged and answerable.
Track when, who and what happened for every invoice, bill and sales order action.
- When
- Who
- What happened
- Resource
Automations & dashboards
From answering questions to doing the work
A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.
Automations
A schedule triggers real DualEntry work end to end.
Records are fetched, grouped, drafted into a digest, approved by a person, then posted back.
DualEntry digest
Run 418 · started 2 minutes ago · on behalf of Emma Laurent
-
✓
Schedule
Every weekday at 08:00
0.2s -
✓
Fetch invoices
DualEntry
1.4s -
✓
Group by owner
Transform
0.1s -
✓
Draft the digest
Agent step
Ran with 4 tools, returned a structured summary
6.2s -
Approve the digest
Needs approval
Assigned to Michael Brennan
Approve Deny -
Post the digest
DualEntry
Queued
Collections and dashboards
DualEntry health, computed on a schedule, not asked for.
Four metrics, a 14 day chart and a team breakdown refresh automatically with no model involved.
DualEntry health
Refreshed 4 minutes ago · every 15 minutes · from the invoices collection
Invoices
1,284 ↓ 12%
Sales orders
96 ↓ 8%
Needs attention
3 ↑ 2
Updated this week
412 ↑ 9%
Invoices created
Last 14 days
By workspace
Share of activity
Finance US 34%
Finance EMEA 27%
Sales West 21%
Sales East 18%
AI tools
DualEntry tools for your AI agents
236 tools are ready to call through Elaichi's MCP endpoint the moment you connect DualEntry, governed by the same roles, restrictions, and audit log as everything else in Elaichi.
list_all_dualentry_public_healths
Check the health of the DualEntry Public API to verify connectivity and that your API key is working. Returns: status, timestamp.
list_all_dualentry_public_invoices
List Invoice records in DualEntry with filtering by company, customer, date range, amount, due date, currency, record status, and approval status. Returns: items, count, id, updated_at. Max 100 per page.
create_a_dualentry_public_invoice
Create a new Invoice record in DualEntry. Defaults to posted status which requires company_id, customer_id, currency_iso_4217_code, exchange_rate, due_date, and at least one item line; set record_status to draft to defer required-field validation. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, customer_name, attachments, payment, term_id, term_name,…. Required: date.
update_a_dualentry_public_invoice_by_id
Update an existing Invoice record in DualEntry by id (the record number). Validates all required fields and business rules. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, customer_name, attachments, payment, term_id, term_name, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, approval_status, next_approvers,…. Required: id, date.
dualentry_public_invoices_attach_attachment
Upload file attachments to an existing DualEntry invoice record. Returns the updated invoice including id, number, amount, attachments, and record_status. Required: record_number.
get_single_dualentry_public_invoice_by_id
Get a single DualEntry invoice by id with all related data. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, customer_name, attachments, payment, term_id, term_name, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, code, items, company_id, company_name,…. Required: id.
dualentry_public_invoices_partial_update
Partially update an existing DualEntry invoice by id, sending only the fields you want to change — anything omitted stays as-is. Returns the updated invoice object including id, number, amount, company_id, customer_id, items, and attachments. Required: id.
dualentry_public_invoices_replace_attachments
Replace all attachments on a DualEntry invoice record; existing attachments are marked as deleted and the uploaded files become the new set. Returns the updated invoice object including id, number, amount, and attachments. Required: record_number.
list_all_dualentry_public_sales_orders
List SalesOrder records in DualEntry with filtering by company, customer, date range, record status, invoiced status, and update timestamp. Returns: items, count, id, updated_at. Max 100 per page.
create_a_dualentry_public_sales_order
Create a new SalesOrder record in DualEntry. A create request defaults to record_status: posted; set record_status: draft to skip required-field and line validation. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, invoiced_status, attachments, term_id, term_name, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number,…. Required: memo, date, company_id, customer_id, currency_iso_4217_code, exchange_rate, items.
update_a_dualentry_public_sales_order_by_id
Update an existing SalesOrder record in DualEntry by id. Validates all required fields and business rules. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, invoiced_status, attachments, term_id, term_name, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, items, company_id, company_name, company_currency,…. Required: id, memo, date, company_id, customer_id, currency_iso_4217_code, exchange_rate, items.
dualentry_public_sales_orders_attach_attachment
Upload file attachments to a SalesOrder record in DualEntry by record number. Returns the updated sales order including id, number, company_id, customer_id, record_status, items, and attachments. Required: record_number.
get_single_dualentry_public_sales_order_by_id
Get a specific SalesOrder record in DualEntry by id with all related data. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, invoiced_status, attachments, term_id, term_name, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, items, company_id, company_name, company_currency, customer_id, customer_name,…. Required: id.
list_all_dualentry_public_bills
List Bill records in DualEntry with filtering by company, vendor, code, number, dates, record status, and approval status. Returns: items, count, id, created_at, updated_at. Max 100 per page.
create_a_dualentry_public_bill
Create a new Bill record in DualEntry. Posted records require company_id, vendor_id, currency_iso_4217_code, exchange_rate, memo, and at least one items or expenses line; a draft defaults to empty memo, exchange_rate 1.0, and USD. Returns: custom_fields, supply_date, place_of_supply, tax_registration_numbers, tax, attachments, transaction_ids, term_id, term_name, bank_match_status,…. Required: date.
update_a_dualentry_public_bill_by_id
Update an existing Bill record in DualEntry by id (record number). Validates all required fields and business rules for posted records. Returns: custom_fields, supply_date, place_of_supply, tax_registration_numbers, tax, attachments, transaction_ids, term_id, term_name, bank_match_status, reconciliation_status, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id,…. Required: id, date.
dualentry_public_bills_attach_attachment
Upload file attachments to a DualEntry bill record by record number. Returns the updated bill including id, number, company_id, vendor_id, currency_iso_4217_code, due_date, record_status, and attachments. Required: record_number.
get_single_dualentry_public_bill_by_id
Get a single DualEntry bill by id (record number). Returns: custom_fields, supply_date, place_of_supply, tax_registration_numbers, tax, attachments, transaction_ids, term_id, term_name, bank_match_status, reconciliation_status, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, code, date, transaction_date, due_date, company_id, company_name,…. Required: id.
dualentry_public_bills_partial_update
Partially update an existing DualEntry Bill record by sending only the fields you want to change. Returns the updated bill including id, number, record_status, company_id, vendor_id, due_date, items, and expenses. Subject to period locks, payment-applied restrictions, and approval-workflow rules. Required: id.
list_all_dualentry_public_journal_entries
List DualEntry journal entries with filtering by company, account, date range, record status, and amount. Returns each record with id, number, code, company_id, date, record_status, items, attachments, created_at, updated_at. Max 100 per page.
create_a_dualentry_public_journal_entry
Create a journal entry in DualEntry. Defaults to posted status, requiring company_id, currency_iso_4217_code, exchange_rate, memo, and at least one line item. Set record_status to draft to skip validation. Returns: custom_fields, attachments, reversal_items, items, bank_match_status, reconciliation_status, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number,…. Required: date.
update_a_dualentry_public_journal_entry_by_id
Update an existing DualEntry journal entry by id. Full replacement of all fields and line items; validates required fields and business rules. Returns: custom_fields, attachments, reversal_items, items, bank_match_status, reconciliation_status, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, code, transaction_id, company_id, company_name,…. Required: id, date.
dualentry_public_journal_entries_attach_attachment
Upload file attachments to a DualEntry journal entry by record number. Returns the updated journal entry with id, number, date, record_status, items, and attachments. Required: record_number.
get_single_dualentry_public_journal_entry_by_id
Get a single DualEntry journal entry by id, including line items and attachments. Returns: custom_fields, attachments, reversal_items, items, bank_match_status, reconciliation_status, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, code, transaction_id, company_id, company_name, company_currency, memo, date, transaction_date, currency_iso_4217_code,…. Required: id.
list_all_dualentry_public_purchase_orders
List DualEntry purchase orders with filtering by company, vendor, date range, record status, approval status, billing status, and lifecycle status. Returns: items, count, id, created_at, updated_at. Max 100 per page.
create_a_dualentry_public_purchase_order
Create a new DualEntry purchase order. Defaults to record_status posted, which requires company_id, vendor_id, currency_iso_4217_code, exchange_rate, and at least one line item; use record_status draft to defer required fields. Returns: attachments, term_id, term_name, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, date, company_id, company_name,…. Required: date, company_id, vendor_id, currency_iso_4217_code, exchange_rate, memo, items.
update_a_dualentry_public_purchase_order_by_id
Update an existing DualEntry purchase order by id (record number) with full replacement of record data. Validates all required fields and business rules. Returns: attachments, term_id, term_name, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, date, company_id, company_name, company_currency, vendor_id, vendor_name, currency_iso_4217_code, exchange_rate,…. Required: id, date, company_id, vendor_id, currency_iso_4217_code, exchange_rate, memo, items.
dualentry_public_purchase_orders_attach_attachment
Upload file attachments to an existing DualEntry purchase order by record number. Returns the updated purchase order including id, number, company_id, vendor_id, attachments. Required: record_number.
get_single_dualentry_public_purchase_order_by_id
Get a single DualEntry purchase order by id (record number) with all related data. Returns: attachments, term_id, term_name, created_by, updated_by, approval_status, next_approvers, rejected_by, internal_id, number, date, company_id, company_name, company_currency, vendor_id, vendor_name, currency_iso_4217_code, exchange_rate, billed_total, due_total, amount, memo, items, record_status,…. Required: id.
list_all_dualentry_public_customer_prepayments
List CustomerPrepayment records in DualEntry with filtering by company, customer, date range, status, and currency. Returns: items, count. Max 100 per page.
create_a_dualentry_public_customer_prepayment
Create a new CustomerPrepayment record in DualEntry. A create request defaults to record_status 'posted'; use 'draft' to defer required-field validation. Returns the created prepayment with id, number, record_status, company_id, customer_id, date, amount, exchange_rate, memo, lines, attachments, created_at, updated_at. Required: date, company_id, customer_id, currency_iso_4217_code, exchange_rate, amount, bank_or_undeposited_funds_amount.
update_a_dualentry_public_customer_prepayment_by_id
Update an existing CustomerPrepayment record in DualEntry by id. Validates all required fields and business rules. Returns the updated prepayment with id, number, record_status, company_id, customer_id, date, currency_iso_4217_code, exchange_rate, memo, amount, lines, attachments, created_at, updated_at. Required: id, date, company_id, customer_id, currency_iso_4217_code, exchange_rate, amount, bank_or_undeposited_funds_amount.
dualentry_public_customer_prepayments_attach_attachment
Upload file attachments to a CustomerPrepayment record in DualEntry by record number. Returns the updated prepayment with id, number, record_status, company_id, customer_id, date, amount, attachments, created_at, updated_at. Required: record_number.
get_single_dualentry_public_customer_prepayment_by_id
Get a single CustomerPrepayment record in DualEntry by id. Returns the prepayment with id, number, record_status, company_id, customer_id, date, currency_iso_4217_code, exchange_rate, memo, amount, lines, attachments, created_at, updated_at. Required: id.
dualentry_public_customer_prepayments_partial_update
Partially update a DualEntry customer prepayment by sending only the fields to change. Returns: transaction_ids, attachments, created_by, updated_by, custom_fields, internal_id, number, company_id, company_name, company_currency, customer_id, customer_name, account_number, memo, check_number, currency_iso_4217_code, date, transaction_date, exchange_rate, undeposited_funds_currency,…. Required: id.
list_all_dualentry_public_customer_prepayment_applications
List CustomerPrepaymentApplication records in DualEntry with filtering by company, customer, date, currency, and status. Returns each record with id, number, record_status, company_id, customer_id, date, items, attachments, and updated_at. Max 100 per page.
create_a_dualentry_public_customer_prepayment_application
Create a new CustomerPrepaymentApplication record in DualEntry. Defaults to posted status; use record_status draft to defer validation. Returns: attachments, classifications, transaction_ids, created_by, updated_by, internal_id, number, items, company_id, company_name, company_currency, customer_id, customer_name, customer_prepayment_number, customer_credit_number, currency_iso_4217_code,…. Required: date, company_id, currency_iso_4217_code, exchange_rate.
update_a_dualentry_public_customer_prepayment_application_by_id
Update an existing CustomerPrepaymentApplication record in DualEntry by id. Only draft records can be updated; attempting to update a posted record returns 422. Returns: attachments, classifications, transaction_ids, created_by, updated_by, internal_id, number, items, company_id, company_name, company_currency, customer_id, customer_name, customer_prepayment_number, customer_credit_number,…. Required: id, date, company_id, currency_iso_4217_code, exchange_rate.
public_customer_prepayment_applications_attach_attachment
Upload file attachments to a CustomerPrepaymentApplication record in DualEntry. Returns the updated record with id, number, record_status, company_id, customer_id, date, items, and attachments. Required: record_number.
get_public_customer_prepayment_application_by_id
Get a single CustomerPrepaymentApplication record in DualEntry by id. Returns: attachments, classifications, transaction_ids, created_by, updated_by, internal_id, number, items, company_id, company_name, company_currency, customer_id, customer_name, customer_prepayment_number, customer_credit_number, currency_iso_4217_code, exchange_rate, memo, date, transaction_date, amount, record_status,…. Required: id.
dualentry_public_customer_prepayment_applications_partial_update
Partially update a CustomerPrepaymentApplication record in DualEntry, sending only the fields you want to change — omitted fields remain unchanged. Returns the updated record including id, number, customer_id, date, lines, record_status, created_at, and updated_at. Updates are subject to period locks, payment-applied restrictions, and approval-workflow rules. Required: id.
list_all_dualentry_public_customer_deposits
List CustomerDeposit records in DualEntry with filtering by company, customer, date range, status, and currency. Returns: items, count. Max 100 per page.
create_a_dualentry_public_customer_deposit
Create a new CustomerDeposit record in DualEntry. A create request defaults to record_status 'posted'; use 'draft' to defer validation. Returns: custom_fields, attachments, created_by, updated_by, internal_id, number, transaction_id, date, transaction_date, company_id, company_name, company_currency, account_id, currency_iso_4217_code, exchange_rate, amount, memo, items, record_status,…. Required: date, company_id, account_number, currency_iso_4217_code, exchange_rate, items.
update_a_dualentry_public_customer_deposit_by_id
Update an existing CustomerDeposit record in DualEntry by id. Returns: custom_fields, attachments, created_by, updated_by, internal_id, number, transaction_id, date, transaction_date, company_id, company_name, company_currency, account_id, currency_iso_4217_code, exchange_rate, amount, memo, items, record_status, created_at, updated_at, id, customer_id, lines. Required: id, date, company_id, account_number, currency_iso_4217_code, exchange_rate, items.
dualentry_public_customer_deposits_attach_attachment
Upload file attachments to a CustomerDeposit record in DualEntry. Returns the updated deposit object including id, number, company_id, customer_id, date, record_status, and updated_at. Required: record_number.
get_single_dualentry_public_customer_deposit_by_id
Get a single CustomerDeposit record from DualEntry by id. Returns: custom_fields, attachments, created_by, updated_by, internal_id, number, transaction_id, date, transaction_date, company_id, company_name, company_currency, account_id, currency_iso_4217_code, exchange_rate, amount, memo, items, record_status, created_at, updated_at, id, customer_id, lines, success, errors. Required: id.
list_all_dualentry_public_customer_refunds
List CustomerRefund records in DualEntry with filtering by company, customer, date range, currency, and record status. Returns: items, count. Max 100 per page.
create_a_dualentry_public_customer_refund
Create a new CustomerRefund record in DualEntry. Returns: custom_fields, attachments, classifications, transaction_ids, created_by, updated_by, internal_id, number, account_number, items, company_id, company_name, company_currency, customer_id, customer_name, memo, check_number, date, transaction_date, currency_iso_4217_code, exchange_rate, bank_or_credit_card_amount, amount, record_status,…. Required: date, company_id, customer_id, account_number, currency_iso_4217_code, exchange_rate.
update_a_dualentry_public_customer_refund_by_id
Update an existing CustomerRefund record in DualEntry by id (record number). Returns: custom_fields, attachments, classifications, transaction_ids, created_by, updated_by, internal_id, number, account_number, items, company_id, company_name, company_currency, customer_id, customer_name, memo, check_number, date, transaction_date, currency_iso_4217_code, exchange_rate, bank_or_credit_card_amount,…. Required: id, date, company_id, customer_id, account_number, currency_iso_4217_code, exchange_rate.
dualentry_public_customer_refunds_attach_attachment
Upload file attachments to a DualEntry CustomerRefund record. Returns the updated refund object including id, number, customer_id, date, lines, and attachments. Required: record_number.
get_single_dualentry_public_customer_refund_by_id
Get a specific DualEntry CustomerRefund record by its record number. Returns the full refund object including id, number, customer_id, date, record_status, lines, and attachments. Required: id.
list_all_dualentry_public_customer_credits
List CustomerCredit records in DualEntry with filtering, ordering, and pagination. Returns records with id, number, customer_id, date, record_status, and lines. Max 100 records per page.
create_a_dualentry_public_customer_credit
Create a new CustomerCredit record in DualEntry. Returns the created record including id, number, customer_id, date, record_status, and lines. Defaults to posted status; set record_status to draft to skip required-field validation. Required: date, company_id, currency_iso_4217_code, exchange_rate.
update_a_dualentry_public_customer_credit_by_id
Update an existing CustomerCredit record in DualEntry with the provided data, validating all required fields and business rules. Returns the updated record including id, number, customer_id, date, record_status, and lines. Required: id, date, company_id, currency_iso_4217_code, exchange_rate.
get_single_dualentry_public_customer_credit_by_id
Get a specific CustomerCredit record in DualEntry by its record number. Returns the full record including id, number, customer_id, date, record_status, and lines. Required: id.
dualentry_public_customer_credits_partial_update
Partially update an existing CustomerCredit record in DualEntry by id. Send only the fields you want to change — omitted fields stay unchanged. Returns the updated record including id, number, customer_id, date, and record_status. Required: id.
list_all_dualentry_public_cash_sales
List CashSale records in DualEntry with filtering and ordering options. Returns each record with id, number, company_id, customer_id, currency_iso_4217_code, exchange_rate, record_status, items, attachments, created_at, and updated_at. Max 100 per page.
create_a_dualentry_public_cash_sale
Create a new CashSale record in DualEntry. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, attachments, classifications, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, items, company_id, company_name, company_currency, customer_id, customer_name, account_number, amount, memo, check_number, date,…. Required: date, company_id, customer_id, currency_iso_4217_code, exchange_rate, bank_or_undeposited_account_amount.
update_a_dualentry_public_cash_sale_by_id
Update an existing CashSale record in DualEntry by id. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, attachments, classifications, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, items, company_id, company_name, company_currency, customer_id, customer_name, account_number, amount, memo,…. Required: id, date, company_id, customer_id, currency_iso_4217_code, exchange_rate, bank_or_undeposited_account_amount.
dualentry_public_cash_sales_attach_attachment
Upload file attachments to a CashSale record in DualEntry. Returns the updated CashSale including id, number, company_id, customer_id, currency_iso_4217_code, items, attachments, and record_status. Required: record_number.
get_single_dualentry_public_cash_sale_by_id
Get a single CashSale record from DualEntry by id. Returns: bill_to_address, ship_to_address, billing_address, shipping_address, custom_fields, attachments, classifications, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, items, company_id, company_name, company_currency, customer_id, customer_name, account_number, amount, memo,…. Required: id.
list_all_dualentry_public_customer_payments
List CustomerPayment records in DualEntry with filtering and ordering options. Returns: items, count. Max 100 per page.
create_a_dualentry_public_customer_payment
Create a new CustomerPayment record in DualEntry. Returns the created payment including id, number, customer_id, date, transaction_currency, record_status, and lines. Defaults to record_status 'posted' when omitted. Required: date, company_id, check_number, currency_iso_4217_code, exchange_rate, memo.
update_a_dualentry_public_customer_payment_by_id
Update an existing CustomerPayment record in DualEntry by id (record number). Returns the updated payment including id, number, customer_id, date, transaction_currency, record_status, and lines. Required: id, date, company_id, check_number, currency_iso_4217_code, exchange_rate, memo.
get_single_dualentry_public_customer_payment_by_id
Get a single CustomerPayment record in DualEntry by id (record number). Returns: custom_fields, attachments, classifications, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, account_number, items, company_id, company_name, company_currency, customer_id, customer_name, memo, check_number, date, transaction_date, currency_iso_4217_code,…. Required: id.
dualentry_public_customer_payments_partial_update
Partially update an existing CustomerPayment record in DualEntry by id (record number). Send only the fields you want to change. Returns the updated payment including id, number, customer_id, date, transaction_currency, record_status, and lines. Required: id.
list_all_dualentry_public_vendor_payments
List VendorPayment records in DualEntry with filtering by company, vendor, date range, currency, status, and linked bill or vendor credit. Returns: items, count. Max 100 per page.
create_a_dualentry_public_vendor_payment
Create a new VendorPayment record in DualEntry. Returns the created vendor payment including id, number, company_id, vendor_id, record_status, and updated_at. Required: date, company_id, check_number, account_number, currency_iso_4217_code, exchange_rate, memo.
update_a_dualentry_public_vendor_payment_by_id
Update an existing VendorPayment record in DualEntry by id. Returns the updated vendor payment including id, number, company_id, vendor_id, record_status, and updated_at. Required: id, date, company_id, check_number, account_number, currency_iso_4217_code, exchange_rate, memo.
get_single_dualentry_public_vendor_payment_by_id
Get a single VendorPayment record in DualEntry by id. Returns the vendor payment including id, number, company_id, vendor_id, record_status, and updated_at. Required: id.
list_all_dualentry_public_vendor_prepayments
List VendorPrepayment records in DualEntry with filtering by company, vendor, date range, currency, record status, and updated-at window, plus ordering options. Returns: items, count. Max 100 records per page.
create_a_dualentry_public_vendor_prepayment
Create a new VendorPrepayment record in DualEntry. Returns: custom_fields, attachments, bank_match_status, reconciliation_status, internal_id, transaction_ids, number, company_id, company_name, company_currency, vendor_id, vendor_name, account_number, date, transaction_date, check_number, amount, used_amount, remaining_amount, currency_iso_4217_code, exchange_rate,…. Required: date, company_id, vendor_id, check_number, amount, currency_iso_4217_code, exchange_rate, bank_or_undeposited_funds_amount, memo.
update_a_dualentry_public_vendor_prepayment_by_id
Update an existing vendor prepayment record in DualEntry with the provided data, validating all required fields and business rules. Returns: custom_fields, attachments, bank_match_status, reconciliation_status, internal_id, transaction_ids, number, company_id, company_name, company_currency, vendor_id, vendor_name, account_number, date, transaction_date, check_number, amount, used_amount,…. Required: id, date, company_id, vendor_id, check_number, amount, currency_iso_4217_code, exchange_rate, bank_or_undeposited_funds_amount, memo.
get_single_dualentry_public_vendor_prepayment_by_id
Get a specific vendor prepayment record in DualEntry by its record number, retrieving all related data. Returns: custom_fields, attachments, bank_match_status, reconciliation_status, internal_id, transaction_ids, number, company_id, company_name, company_currency, vendor_id, vendor_name, account_number, date, transaction_date, check_number, amount, used_amount, remaining_amount,…. Required: id.
list_all_dualentry_public_vendor_prepayment_applications
List vendor prepayment application records in DualEntry with filtering by company, vendor, bill, currency, status, and date range. Returns: items, count. Max 100 per page.
create_a_dualentry_public_vendor_prepayment_application
Create a new vendor prepayment application record in DualEntry. Returns: attachments, internal_id, transaction_ids, number, company_id, company_name, company_currency, vendor_id, vendor_name, vendor_prepayment_number, vendor_credit_number, exchange_rate, memo, date, transaction_date, currency_iso_4217_code, amount, items, record_status, created_at, updated_at, id, bill_id, transaction_currency.…. Required: date, company_id, currency_iso_4217_code, exchange_rate, memo, items.
update_a_dualentry_public_vendor_prepayment_application_by_id
Update an existing vendor prepayment application record in DualEntry by id. Returns: attachments, internal_id, transaction_ids, number, company_id, company_name, company_currency, vendor_id, vendor_name, vendor_prepayment_number, vendor_credit_number, exchange_rate, memo, date, transaction_date, currency_iso_4217_code, amount, items, record_status, created_at, updated_at, id, bill_id,…. Required: id, date, company_id, currency_iso_4217_code, exchange_rate, memo, items.
get_single_dualentry_public_vendor_prepayment_application_by_id
Get a single vendor prepayment application record in DualEntry by id, including all related data. Returns: attachments, internal_id, transaction_ids, number, company_id, company_name, company_currency, vendor_id, vendor_name, vendor_prepayment_number, vendor_credit_number, exchange_rate, memo, date, transaction_date, currency_iso_4217_code, amount, items, record_status, created_at, updated_at,…. Required: id.
list_all_dualentry_public_vendor_credits
List VendorCredit records in DualEntry with filtering by company, vendor, date range, currency, status, and linked bill. Returns: items, count, id, created_at, updated_at. Max 100 per page.
create_a_dualentry_public_vendor_credit
Create a new VendorCredit in DualEntry. Defaults to posted status; use draft to skip required-field checks. Posted records require company_id, vendor_id, currency, exchange_rate, and at least one line. Returns: custom_fields, attachments, supply_date, place_of_supply, tax_registration_numbers, tax, classifications, transaction_ids, created_by, updated_by, internal_id, number, bill_number,…. Required: date, vendor_id, company_id, currency_iso_4217_code, exchange_rate.
update_a_dualentry_public_vendor_credit_by_id
Update an existing VendorCredit in DualEntry by record number with full replacement validation. Returns: custom_fields, attachments, supply_date, place_of_supply, tax_registration_numbers, tax, classifications, transaction_ids, created_by, updated_by, internal_id, number, bill_number, direct_expense_number, date, transaction_date, company_id, company_name, company_currency, vendor_id,…. Required: id, date, vendor_id, company_id, currency_iso_4217_code, exchange_rate.
get_single_dualentry_public_vendor_credit_by_id
Get a specific VendorCredit in DualEntry by its record number with all related line items and attachments. Returns: custom_fields, attachments, supply_date, place_of_supply, tax_registration_numbers, tax, classifications, transaction_ids, created_by, updated_by, internal_id, number, bill_number, direct_expense_number, date, transaction_date, company_id, company_name, company_currency, vendor_id,…. Required: id.
list_all_dualentry_public_vendor_refunds
List DualEntry vendor refund records with filtering, search, and ordering options. Returns: items, count. Max 100 per page.
create_a_dualentry_public_vendor_refund
Create a new DualEntry vendor refund record. Returns: custom_fields, attachments, classifications, transaction_ids, created_by, updated_by, internal_id, number, account_number, items, company_id, company_name, company_currency, vendor_id, vendor_name, memo, check_number, date, transaction_date, currency_iso_4217_code, exchange_rate, bank_or_credit_card_amount, amount, record_status,…. Required: date, company_id, vendor_id, account_number, currency_iso_4217_code, exchange_rate.
update_a_dualentry_public_vendor_refund_by_id
Update an existing DualEntry vendor refund record by id. Returns: custom_fields, attachments, classifications, transaction_ids, created_by, updated_by, internal_id, number, account_number, items, company_id, company_name, company_currency, vendor_id, vendor_name, memo, check_number, date, transaction_date, currency_iso_4217_code, exchange_rate, bank_or_credit_card_amount, amount, record_status,…. Required: id, date, company_id, vendor_id, account_number, currency_iso_4217_code, exchange_rate.
dualentry_public_vendor_refunds_attach_attachment
Upload file attachments to a DualEntry vendor refund record. Returns the updated vendor refund record including id, number, company_id, vendor_id, record_status, transaction_currency, and updated_at. Required: record_number.
get_single_dualentry_public_vendor_refund_by_id
Get a single DualEntry vendor refund record by id. Returns: custom_fields, attachments, classifications, transaction_ids, created_by, updated_by, internal_id, number, account_number, items, company_id, company_name, company_currency, vendor_id, vendor_name, memo, check_number, date, transaction_date, currency_iso_4217_code, exchange_rate, bank_or_credit_card_amount, amount, record_status,…. Required: id.
list_all_dualentry_public_direct_expenses
List DirectExpense records in DualEntry with filtering and ordering options. Returns each record with id, number, company_id, vendor_id, record_status, transaction_currency, attachments, items, created_at, updated_at. Max 100 per page.
create_a_dualentry_public_direct_expense
Create a new DirectExpense record in DualEntry. A create request defaults to record_status 'posted'; set record_status to 'draft' to defer required-field validation. Returns: custom_fields, attachments, supply_date, place_of_supply, tax_registration_numbers, tax, classifications, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, items,…. Required: date, company_id, vendor_id, account_number, currency_iso_4217_code, bank_or_credit_card_amount.
update_a_dualentry_public_direct_expense_by_id
Update an existing DirectExpense record in DualEntry by id with full replacement of the provided data. Validates all required fields and business rules. Returns: custom_fields, attachments, supply_date, place_of_supply, tax_registration_numbers, tax, classifications, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, items, company_id,…. Required: id, date, company_id, vendor_id, account_number, currency_iso_4217_code, bank_or_credit_card_amount.
dualentry_public_direct_expenses_attach_attachment
Upload file attachments to a DualEntry direct expense by record_number. Returns the updated direct expense record including id, number, company_id, vendor_id, record_status, and attachments. Required: record_number.
get_single_dualentry_public_direct_expense_by_id
Get a specific DualEntry direct expense by id. Returns: custom_fields, attachments, supply_date, place_of_supply, tax_registration_numbers, tax, classifications, transaction_ids, bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, items, company_id, company_name, company_currency, vendor_id, vendor_name, account_number, amount, memo, check_number, date,…. Required: id.
list_all_dualentry_public_bank_transfers
List BankTransfer records. Returns: items, count.
create_a_dualentry_public_bank_transfer
Create BankTransfer record. Returns: bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, transaction_id, debit_entry_id. Required: date, company_id, debit_bank_account_number, credit_bank_account_number, amount.
update_a_dualentry_public_bank_transfer_by_id
Update BankTransfer record. Returns: bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, transaction_id, debit_entry_id. Required: id, date, company_id, debit_bank_account_number, credit_bank_account_number, amount.
get_single_dualentry_public_bank_transfer_by_id
Get BankTransfer record. Returns: bank_match_status, reconciliation_status, created_by, updated_by, internal_id, number, transaction_id, debit_entry_id. Required: id.
list_all_dualentry_public_statistical_journals
List DualEntry statistical journal records with filtering by company, account, period, date, and status. Returns: items, count, id, created_at, updated_at. Max 100 per page.
create_a_dualentry_public_statistical_journal
Create a new DualEntry statistical journal record. Returns the created record including id, number, record_status, items, and attachments. Required: account_id.
update_a_dualentry_public_statistical_journal_by_id
Update an existing DualEntry statistical journal record by id. Returns the updated record including id, number, record_status, items, and attachments. Required: id, account_id.
dualentry_public_statistical_journals_attach_attachment
Upload file attachments to a DualEntry statistical journal record. Returns the updated record including id, number, record_status, items, and attachments. Required: record_number.
get_single_dualentry_public_statistical_journal_by_id
Get a single DualEntry statistical journal record by id. Returns the full record including id, number, record_status, items, and attachments. Required: id.
list_all_dualentry_recurring_invoices
List recurring invoices in DualEntry with filtering and ordering options. Returns: items, count. Max 100 per page.
create_a_dualentry_recurring_invoice
Create a new recurring invoice in DualEntry. Returns the created recurring invoice including id, number, company_id, recurring_type, and updated_at. Required: rrule, memo, name, date, company_id, status, recurring_type, record_payload.
update_a_dualentry_recurring_invoice_by_id
Update an existing recurring invoice in DualEntry by id. Returns the updated recurring invoice including id, number, company_id, recurring_type, and updated_at. Required: id, rrule, memo, name, date, company_id, status, recurring_type, record_payload.
delete_a_dualentry_recurring_invoice_by_id
Delete a recurring invoice in DualEntry by id. Returns: success, errors. Required: id.
get_single_dualentry_recurring_invoice_by_id
Get a single recurring invoice in DualEntry by id. Returns: created_by, updated_by, internal_id, number, name, memo, date, company_id, company_name, company_currency, status, record_payload, rrule, next_occurrence, last_generated, recurring_type, records, created_at, updated_at, id, event_id, api_version, topic, object_type, object, webhook_uuid. Required: id.
list_all_dualentry_recurring_bills
List RecurringBill records in DualEntry with filtering by company, recurring type, and update timestamps. Returns: items, count, id, created_at, updated_at. Max 100 per page.
create_a_dualentry_recurring_bill
Create a new RecurringBill in DualEntry. Defaults to record_status 'posted'; use 'draft' to defer required fields. Returns: created_by, updated_by, internal_id, number, name, memo, date, company_id, company_name, company_currency, status, record_payload, rrule, next_occurrence, last_generated, recurring_type, records, created_at, updated_at, id, vendor_id, currency_iso_4217_code, exchange_rate,…. Required: rrule, memo, name, date, company_id, status, recurring_type, record_payload.
update_a_dualentry_recurring_bill_by_id
Update an existing RecurringBill in DualEntry by id. Send line item id to update existing lines; omit to create new ones. Returns: created_by, updated_by, internal_id, number, name, memo, date, company_id, company_name, company_currency, status, record_payload, rrule, next_occurrence, last_generated, recurring_type, records, created_at, updated_at, id, vendor_id, currency_iso_4217_code,…. Required: id, rrule, memo, name, date, company_id, status, recurring_type, record_payload.
delete_a_dualentry_recurring_bill_by_id
Delete a RecurringBill in DualEntry by id. Returns: success, errors. Required: id.
get_single_dualentry_recurring_bill_by_id
Get a single RecurringBill in DualEntry by id. Returns: created_by, updated_by, internal_id, number, name, memo, date, company_id, company_name, company_currency, status, record_payload, rrule, next_occurrence, last_generated, recurring_type, records, created_at, updated_at, id, vendor_id, currency_iso_4217_code, exchange_rate, due_date, term_id, record_status, items, expenses, attachments,…. Required: id.
list_all_dualentry_recurring_journal_entries
List RecurringJournalEntry records in DualEntry with filtering by company, number, recurring type, and update timestamps. Returns: items, count, id, created_at, updated_at. Max 100 per page.
create_a_dualentry_recurring_journal_entry
Create a new RecurringJournalEntry record in DualEntry. Returns the created record including id, number, company_id, memo, record_status, items, and updated_at. Required: rrule, memo, name, date, company_id, status, recurring_type, record_payload.
update_a_dualentry_recurring_journal_entry_by_id
Update an existing RecurringJournalEntry record in DualEntry by its record number. Returns the updated record including id, number, company_id, memo, record_status, items, and updated_at. Required: id, rrule, memo, name, date, company_id, status, recurring_type, record_payload.
delete_a_dualentry_recurring_journal_entry_by_id
Delete a RecurringJournalEntry record in DualEntry by its record number. Returns: success, errors. Required: id.
get_single_dualentry_recurring_journal_entry_by_id
Get a single RecurringJournalEntry record in DualEntry by its record number with all related data. Returns: created_by, updated_by, internal_id, number, name, memo, date, company_id, company_name, company_currency, status, record_payload, rrule, next_occurrence, last_generated, recurring_type, records, created_at, updated_at, id, currency_iso_4217_code, exchange_rate, items, record_status,…. Required: id.
list_all_dualentry_public_companies
List companies in DualEntry with filtering, search, and ordering capabilities. Returns: items, count. Results are capped at 100 records per page.
get_single_dualentry_public_company_by_id
Get a single DualEntry company by id with all related data including company access. Returns: created_at, updated_at, vat_registration_numbers, created_by, updated_by, id, name, parent_company_id, currency_iso_4217_code, address, tin, tin_type, is_active, is_elimination, fiscal_year_end_month, event_id, api_version, topic, object_type, object, webhook_uuid. Required: id.
list_all_dualentry_public_accounts
List chart of accounts in DualEntry with filtering by type, status, company, currency, and date range. Returns: items, count. Max 100 per page.
create_a_dualentry_public_account
Create a new account in the DualEntry chart of accounts with support for parent-child relationships and company access restrictions. Returns: created_at, updated_at, created_by, updated_by, id, name, number, description, is_active, is_system, company_id, parent_account_id, account_type, currency_iso_4217_code, category_1099, system_ref, is_monetary, financial_account_id. Required: name, number, account_type, currency_iso_4217_code, is_active, parent_account_id.
get_single_dualentry_public_account_by_id
Get a specific DualEntry account by id. Returns the full account object including id, name, number, account_type, is_active, is_system, description, created_at, updated_at. Required: id.
list_all_dualentry_public_budgets
List budgets in DualEntry with filtering by budget type, calendar year, company, and record status. Returns: items, count. Max 100 per page.
get_single_dualentry_public_budget_by_id
Get a single DualEntry budget by id. Returns: id, name, company_id, company_name, budget_type, calendar_year, start_date, end_date, record_status, actuals_offset_in_months, classifications, updated_at, event_id, api_version, topic, object_type, object, webhook_uuid, created_at. Required: id.
list_all_dualentry_public_contracts
List revenue recognition contracts in DualEntry with filtering by company, customer, status, dates, recognition mode, and more. Returns: items, count. Max 100 per page.
create_a_dualentry_public_contract
Create a revenue recognition contract in DualEntry with its performance obligations and recognition schedule. Returns: custom_fields, completed_approvals_count, total_approvals_count, integration_remote_records, id, number, company_id, company_name, company_currency, customer_id, customer_name, name, currency_iso_4217_code, memo, date, term_id, default_ar_account_id, contract_template_id,…. Required: status.
update_a_dualentry_public_contract_by_id
Update an existing revenue recognition contract in DualEntry. Direct edits are rejected when usage or an active contract has milestones; obligation rows superseded by a posted change order or targeted by a draft change order cannot be edited. Returns: custom_fields, completed_approvals_count, total_approvals_count, integration_remote_records, id, number, company_id, company_name,…. Required: id, status.
get_single_dualentry_public_contract_by_id
Get a single revenue recognition contract in DualEntry by id, including its performance obligations. Returns: custom_fields, completed_approvals_count, total_approvals_count, integration_remote_records, id, number, company_id, company_name, company_currency, customer_id, customer_name, name, currency_iso_4217_code, memo, date, term_id, default_ar_account_id, contract_template_id, start_date,…. Required: id.
dualentry_public_contracts_partial_update
Partially update specific fields on a revenue recognition contract in DualEntry by sending only the fields you want to change — anything you don't send stays as it is. Direct edits are rejected when usage or an active contract has milestones. Returns: custom_fields, completed_approvals_count, total_approvals_count, integration_remote_records, id, number, company_id, company_name,…. Required: id.
list_all_dualentry_contract_usages
List all obligation usage records for a DualEntry contract. Returns: id, contract_id, obligation_id, usage_date, quantity, rate, amount, effective_rate, revenue_recognition_id, status, invoice_status, memo, created_at, updated_at, classifications. Required: contract_id.
create_a_dualentry_usage_bulk_upsert
Upsert usage records in batch for contract obligations in DualEntry. Items with an 'id' field are updated; items without are created, and the operation generates revenue recognitions and invoices. Returns an array of usage record objects including id. Required: contract_id, items.
list_all_dualentry_contract_change_orders
List change orders for a DualEntry contract with optional filtering by status, date range, and search. Returns: items, count.
create_a_dualentry_contract_change_order
Create a change order on a DualEntry contract. Incomplete payloads are saved as drafts; complete payloads are validated and applied. Returns: id, number, company_id, company_name, contract_id, contract_name, effective_date, memo, apply_cumulative_catchup, catchup_amount, transaction_id, record_status, is_incomplete, obligation_modifications, obligation_additions, change_summary, created_at,…. Required: contract_id.
update_a_dualentry_contract_change_order_by_id
Update an existing change order on a DualEntry contract. Incomplete drafts stay drafts; completing required fields applies the change order. Returns: id, number, company_id, company_name, contract_id, contract_name, effective_date, memo, apply_cumulative_catchup, catchup_amount, transaction_id, record_status, is_incomplete, obligation_modifications, obligation_additions, change_summary,…. Required: id, contract_id.
delete_a_dualentry_contract_change_order_by_id
Archive an existing change order on a DualEntry contract (soft delete). Returns: success, errors. Required: id, contract_id.
get_single_dualentry_contract_change_order_by_id
Get a single change order by ID for a DualEntry contract, including the obligation change summary. Returns: id, number, company_id, company_name, contract_id, contract_name, effective_date, memo, apply_cumulative_catchup, catchup_amount, transaction_id, record_status, is_incomplete, obligation_modifications, obligation_additions, change_summary, created_at, updated_at, event_id, api_version,…. Required: id, contract_id.
list_all_dualentry_public_customers
List DualEntry customers with filtering, search, and ordering capabilities. Returns: items, count. Max 100 per page.
create_a_dualentry_public_customer
Create a new customer in DualEntry with address and tax information. Set is_taxable to false for a tax-exempt customer (defaults to false). Returns the created customer including id, name, email, address, is_taxable, record_status, and updated_at. Required: name, email, address, country, phone, website.
update_a_dualentry_public_customer_by_id
Update a DualEntry customer by id, sending only the fields you want to change. Returns the updated customer including id, name, email, address, is_taxable, record_status, and updated_at. Required: id.
delete_a_dualentry_public_customer_by_id
Delete a DualEntry customer by id. Fails if the customer is referenced by other records. Returns: success, errors. Required: id.
get_single_dualentry_public_customer_by_id
Get a single DualEntry customer by id. Returns the customer object including id, name, email, address, is_taxable, record_status, and updated_at. Required: id.
dualentry_public_customers_partial_update
Partially update a DualEntry customer by id — send only the fields you want to change; send null to clear a nullable field. Returns: created_at, updated_at, custom_fields, created_by, updated_by, approval_status, next_approvers, rejected_by, id, address, country, name, unique_id, website, email, customer_type, is_active, phone, record_status, is_taxable, default_tax_code, tax_registration_number,…. Required: id.
list_all_dualentry_public_items
List items (products and services) in DualEntry with filtering by name, item type, account assignments, active status, and update timestamps. Returns: items, count. Max 100 per page.
create_a_dualentry_public_item
Create a new item (product or service) in DualEntry with description and associated revenue or expense accounts. Returns: created_at, updated_at, created_by, updated_by, id, name, sku, description, item_type, is_active, record_status, product_tax_code_id, expense_account_id, income_account_id, deferral_account_id, asset_account_id, discount_account_id, default_classification_line_ids,…. Required: name, is_active, sku, item_type.
update_a_dualentry_public_item_by_id
Update an existing item's description and associated accounts in DualEntry. Returns: created_at, updated_at, created_by, updated_by, id, name, sku, description, item_type, is_active, record_status, product_tax_code_id, expense_account_id, income_account_id, deferral_account_id, asset_account_id, discount_account_id, default_classification_line_ids, default_rev_rec_method,…. Required: id, name, is_active, sku, item_type.
delete_a_dualentry_public_item_by_id
Delete an item in DualEntry so it can no longer be added to invoices or bills. Returns: success, errors. Required: id.
get_single_dualentry_public_item_by_id
Get a single item by id in DualEntry, including its description and associated accounts. Returns: created_at, updated_at, created_by, updated_by, id, name, sku, description, item_type, is_active, record_status, product_tax_code_id, expense_account_id, income_account_id, deferral_account_id, asset_account_id, discount_account_id, default_classification_line_ids, default_rev_rec_method,…. Required: id.
dualentry_public_items_partial_update
Partially update a DualEntry item by id. Send only the fields you want to change; send null to clear a nullable field. Returns: created_at, updated_at, created_by, updated_by, id, name, sku, description, item_type, is_active, record_status, product_tax_code_id, expense_account_id, income_account_id, deferral_account_id, asset_account_id, discount_account_id, default_classification_line_ids,…. Required: id.
list_all_dualentry_public_vendors
List vendors in DualEntry with filtering, search, and ordering capabilities. Returns: items, count. Max 100 per page.
create_a_dualentry_public_vendor
Create a new vendor in DualEntry with address and payment information. Returns: created_at, updated_at, custom_fields, attachments, term_id, term_name, preferred_payment_method_id, preferred_payment_method_name, created_by, updated_by, approval_status, next_approvers, rejected_by, id, address, vendor_type, company_id, company_name, customer_account_number, name_on_check, bank_account_number,…. Required: is_active, vendor_type, name, email, phone, website.
update_a_dualentry_public_vendor_by_id
Update a vendor in DualEntry by id, sending only the fields you want to change. Custom fields can be set by field name or id. Returns: created_at, updated_at, custom_fields, attachments, term_id, term_name, preferred_payment_method_id, preferred_payment_method_name, created_by, updated_by, approval_status, next_approvers, rejected_by, id, address, vendor_type, company_id, company_name,…. Required: id.
delete_a_dualentry_public_vendor_by_id
Delete a vendor in DualEntry by id. Returns: success, errors. Fails if the vendor is referenced by other records. Required: id.
get_single_dualentry_public_vendor_by_id
Get a single vendor in DualEntry by id with address, attachments, and payment information. Returns: created_at, updated_at, custom_fields, attachments, term_id, term_name, preferred_payment_method_id, preferred_payment_method_name, created_by, updated_by, approval_status, next_approvers, rejected_by, id, address, vendor_type, company_id, company_name, customer_account_number, name_on_check,…. Required: id.
dualentry_public_vendors_partial_update
Partially update a DualEntry vendor by sending only the fields you want to change; send null to clear a nullable field. Returns the updated vendor including id, name, tin, is_active, and custom_fields. Required: id.
list_all_dualentry_public_classifications
List classification dimensions in DualEntry, such as departments, locations, or projects. Returns each classification with id, name, is_active, is_required, selections, and updated_at. Max 100 per page.
create_a_dualentry_public_classification
Create a classification dimension in DualEntry used to tag and analyze transactions across multiple dimensions. Returns the created classification including id, name, is_active, is_required, selections, and updated_at. Required: name, is_active, selections, required_for_records, parent_id.
update_a_dualentry_public_classification_by_id
Update an existing classification dimension's name and settings in DualEntry. Returns the updated classification including id, name, is_active, is_required, selections, and updated_at. Required: id, name, is_active, selections, required_for_records, parent_id.
delete_a_dualentry_public_classification_by_id
Delete a classification dimension in DualEntry by id so it can no longer be assigned to transactions. Returns a success response. Required: id.
get_single_dualentry_public_classification_by_id
Get a single classification dimension in DualEntry by id. Returns: created_at, updated_at, created_by, updated_by, id, selections, required_for_records, parent_id, parent_name, name, is_active, is_required, event_id, api_version, topic, object_type, object, webhook_uuid. Required: id.
dualentry_public_classifications_partial_update
Partially update a DualEntry classification by id, sending only the fields to change. Returns the updated classification including id, name, is_active, selections, required_for_records, parent_id, and updated_at. Omitting selections or required_for_records preserves existing values; sending [] clears them. Lines in use elsewhere return 422. Required: id.
list_all_dualentry_public_classifications_lines
List classification lines (selections) in DualEntry that can be assigned to transaction line items. Returns: items, count. Max 100 per page.
list_all_dualentry_public_custom_fields
List custom field definitions in DualEntry with filtering by field type, record type, active status, company scope, and update timestamps. Returns: items, count. Max 100 per page.
create_a_dualentry_public_custom_field
Create a new custom field definition in DualEntry. Supply applies_to to bind the field to record types and company_ids (or company_id) to scope it to specific companies. Returns: created_at, updated_at, id, company_id, company_ids, name, description, helper_text, field_type, applies_to, default_value, options, is_active. Required: name, field_type, applies_to.
update_a_dualentry_public_custom_field_by_id
Update an existing custom field definition in DualEntry by id. applies_to and company_ids are replaced wholesale — send the full desired list. field_type cannot be changed after creation. Returns: created_at, updated_at, id, company_id, company_ids, name, description, helper_text, field_type, applies_to, default_value, options, is_active. Required: id, name, field_type, applies_to.
delete_a_dualentry_public_custom_field_by_id
Delete a custom field definition in DualEntry by id. Fails with 422 if any record already has a value stored against this field — clear those values first, or archive via is_active=false instead. Returns: success, errors. Required: id.
get_single_dualentry_public_custom_field_by_id
Get a single custom field definition in DualEntry by id. Returns: created_at, updated_at, id, company_id, company_ids, name, description, helper_text, field_type, applies_to, default_value, options, is_active, success, errors. Required: id.
list_all_dualentry_public_paper_checks
List paper checks in DualEntry with filtering by status, transaction type, vendor, customer, bank account, and date range. Returns: items, count. Max 100 per page.
delete_a_dualentry_public_paper_check_by_id
Archive a paper check by id in DualEntry, setting its status to archived and removing it from active workflows. Returns the archived paper check object including id, record_status, transaction_type, created_at. Required: id.
get_single_dualentry_public_paper_check_by_id
Get a single paper check by id in DualEntry. Returns the full paper check object including id, record_status, transaction_type, company_id, created_at. Required: id.
create_a_dualentry_paper_checks_print_now
Create and immediately print a paper check for a transaction in DualEntry, generating the PDF and marking the check as printed in a single operation. Returns the created paper check details along with base64-encoded PDF content. Supports direct expenses, vendor payments, vendor prepayments, and customer refunds. Required: transaction_id.
create_a_dualentry_paper_checks_print_later
Queue paper checks for later batch printing in DualEntry. Returns a list of created paper checks with id, record_status, and created_at, all with record_status set to 'not_printed'. The request body must contain transaction identifiers for the transactions to queue as paper checks. Print queued checks together via the print-batch endpoint. Required: transaction_ids.
dualentry_paper_checks_print_batches_bulk_update
Batch print multiple queued paper checks in DualEntry, assigning sequential check numbers and returning a merged PDF. Returns: pdf_content, printed_checks, total_printed. All specified checks must have status 'not_printed' and must be queued via POST /print-later/ first. Required: paper_check_ids.
list_all_dualentry_public_workflows
List approval workflows in DualEntry with filtering by company, record type, and active status. Returns: items, count. Default ordering is by priority descending then id descending. Max 100 per page.
get_single_dualentry_public_workflow_by_id
Get a DualEntry approval workflow by id, including all steps, conditions, and approvers. Returns: id, record_type, name, is_active, description, version, priority, company_ids, applies_to_all_companies, allow_self_approval, steps, pending_approval_count, roles, company_id, conditions, approvers, event_id, api_version, topic, object_type, object, webhook_uuid, created_at. Required: id.
list_all_dualentry_workflows_execution_states
List workflow execution states (approval statuses for records) in DualEntry with optional filtering by workflow, status, record type, and initiator. Returns: items, count. Max 100 per page.
get_single_dualentry_workflows_execution_state_by_id
Get a single workflow execution state by id in DualEntry. Returns: id, workflow_id, workflow_name, record_id, record_type, current_step, current_substep, status, requested_approver_ids, approved_by_ids, rejected_by_id, rejection_reason, initiator_id, created_at, updated_at, event_id, api_version, topic, object_type, object, webhook_uuid. Required: id.
list_all_dualentry_execution_state_actions
List all approval actions (history) for a specific workflow execution state in DualEntry. Returns an array of action records including id, action_type, approver_id, workflow_execution_state_id, record_type, and created_at. Required: state_id.
list_all_dualentry_workflows_actions
List approval actions (history) in DualEntry with filtering by workflow execution state, record type, record ID, action type, approver, and date range. Returns: items, count. Max 100 per page.
list_all_dualentry_workflows_roles
List all active roles available for use in DualEntry approval workflow conditions. Returns: id, name, descriptive_name, success, errors. No parameters required.
list_all_dualentry_workflow_versions
List version history for a DualEntry workflow including changes, timestamps, and optionally full snapshots. Returns: id, version_number, changed_by, changed_at, changes_summary, snapshot, attributes. Required: workflow_id.
list_all_dualentry_public_inboxes
Get a summary of pending approvals in the DualEntry inbox for the entire organization. Returns the summary object with counts of pending approvals.
list_all_dualentry_inbox_transactions
List all DualEntry transactions (invoices, bills, purchase orders, sales orders, journal entries) with workflow approval status for the organization. Returns: items, count. Max 100 per page.
get_single_dualentry_inbox_transaction_by_id
Get approval details for a specific DualEntry transaction by id. Returns empty dict if the transaction is not in the inbox. Returns: event_id, api_version, topic, object_type, object, webhook_uuid, created_at. Required: id, transaction_type.
list_all_dualentry_inbox_records
List non-monetary records (customers, vendors) with workflow approval status for the organization in DualEntry. Returns: items, count. Max 100 per page.
get_single_dualentry_inbox_record_by_id
Get approval details for a specific non-monetary record in DualEntry by id. Returns: event_id, api_version, topic, object_type, object, webhook_uuid, created_at. Returns an empty object if the record is not in the inbox. Required: id, record_type.
list_all_dualentry_public_fixed_assets
List fixed assets in DualEntry with multi-book depreciation schedules. Returns each fixed asset with id, number, company_id, status, record_status, purchase_date, vendor_id, customer_id, depreciation_schedules, and attachments. Max 100 per page.
create_a_dualentry_public_fixed_asset
Create a new fixed asset in DualEntry with multi-book depreciation schedules. Returns the created fixed asset including id, number, company_id, status, record_status, purchase_date, depreciation_schedules, and attachments. Required: company_id, name, currency_iso_4217_code, exchange_rate, purchase_date, cost, asset_account_number, expense_account_number, accumulation_account_number, depreciation_schedules.
update_a_dualentry_public_fixed_asset_by_id
Fully update a DualEntry fixed asset by id, including multi-book depreciation schedules. Returns the updated fixed asset including id, number, company_id, status, record_status, purchase_date, depreciation_schedules, and attachments. Required: id, company_id, name, currency_iso_4217_code, exchange_rate, purchase_date, cost, asset_account_number, expense_account_number, accumulation_account_number, depreciation_schedules.
delete_a_dualentry_public_fixed_asset_by_id
Archive a DualEntry fixed asset by id (soft delete). This also archives any posted depreciation transactions. Returns: success, errors. Required: id.
get_single_dualentry_public_fixed_asset_by_id
Get a specific DualEntry fixed asset by id, including its multi-book depreciation schedules. Returns: created_by, updated_by, internal_id, number, company_id, company_name, name, serial_number, currency_iso_4217_code, exchange_rate, purchase_date, memo, cost, status, record_status, asset_account_number, expense_account_number, accumulation_account_number, vendor_id, vendor_name, customer_id,…. Required: id.
dualentry_public_fixed_assets_partial_update
Partially update a DualEntry fixed asset by id, sending only the fields you want to change. If depreciation_schedules is sent, it replaces all existing schedules. Returns the updated fixed asset including its id, number, status, and depreciation schedules. Required: id.
list_all_dualentry_schedules
List chronological depreciation, disposal, and revaluation events for a specific fixed asset and depreciation book in DualEntry, optionally narrowed by a date range. Returns an array of depreciation schedule items (PublicDepreciationScheduleItemOut). Required: fixed_asset_number, depreciation_book_id.
list_all_dualentry_public_webhooks
List registered webhooks in DualEntry. Returns: items, count. The signing secret is never included in list responses. Max 100 per page.
create_a_dualentry_public_webhook
Register a new webhook endpoint in DualEntry for event notifications. Returns: uuid, url, topics, is_active, disabled_at, disabled_reason, created_at, last_modified_at, secret. The signing secret is returned only on creation. Required: url.
update_a_dualentry_public_webhook_by_id
Update a DualEntry webhook by id to change its URL, replace subscribed topics, or toggle active state. Re-enabling clears the auto-disable state. Returns: uuid, url, topics, is_active, disabled_at, disabled_reason, created_at, last_modified_at. Required: id.
delete_a_dualentry_public_webhook_by_id
Delete a DualEntry webhook by UUID. Deletion cascades to its delivery rows. Returns: success, errors. Required: id.
get_single_dualentry_public_webhook_by_id
Get a specific DualEntry webhook by UUID. Returns: uuid, url, topics, is_active, disabled_at, disabled_reason, created_at, last_modified_at, event_id, api_version, topic, object_type, object, webhook_uuid. Required: id.
dualentry_public_webhooks_partial_update
Partially update a DualEntry webhook — change the URL, replace subscribed topics, or toggle active state. Returns: uuid, url, topics, is_active, disabled_at, disabled_reason, created_at, last_modified_at, updated_at, event_id, api_version, topic, object_type, object, webhook_uuid. Re-enabling a disabled webhook clears its auto-disable state; events missed while disabled are not…. Required: id.
list_all_dualentry_webhooks_topics
List all subscribable webhook topics in DualEntry. Returns an array of topic objects, each containing a name following the pattern
list_all_dualentry_webhook_deliveries
List webhook delivery attempts (event log) for a specific webhook in DualEntry. Returns: items, count. Required: webhook_uuid.
list_all_dualentry_public_export_jobs
List DualEntry export jobs for the organization, most recent first. Returns: items, count. Filter by status and customize ordering. Max 100 per page.
create_a_dualentry_public_export_job
Request a data export in DualEntry, triggering an off-cycle data refresh that starts when capacity allows. Returns: job, deduplicated, id. Always returns 202 Accepted; calling while an export is running returns the in-flight job with deduplicated true. Poll the get endpoint for completion.
get_single_dualentry_public_export_job_by_id
Get a single DualEntry export job by id to check its status. Returns: id, integration_id, status, error, created_at, started_at, completed_at, event_id, api_version, topic, object_type, object, webhook_uuid. Poll this after requesting an export. Required: id.
list_all_dualentry_public_exchange_rates
List DualEntry exchange rates for a base currency and one or more quote currencies, optionally filtered by a single effective date or an inclusive date range. Returns: items, count. start_date and end_date must be supplied together; effective_date is used on its own for a single-date lookup. Required: base_currency, transaction_currency.
list_all_dualentry_public_depreciation_books
List DualEntry depreciation books, optionally filtered by update timestamp. Each organization has at least one book (BOOK, the posting book to GL), with optional tax books like FEDERAL, AMT, or STATE_*. Returns: items, count. Max 100 records per page.
get_single_dualentry_public_depreciation_book_by_id
Get a single DualEntry depreciation book by its book code. Returns: created_at, updated_at, id, code, name, description, is_active, is_posting, event_id, api_version, topic, object_type, object, webhook_uuid.g., BOOK, FEDERAL, AMT). Required: id.
list_all_dualentry_public_intercompany_journal_entries
List intercompany journal entries in DualEntry with filtering by company, date range, record status, approval status, and amount bounds. Returns: items, count, id, updated_at. Max 100 per page.
create_a_dualentry_public_intercompany_journal_entry
Create an intercompany journal entry in DualEntry. Lines must span at least two distinct companies and total debits must equal total credits. Returns: created_at, updated_at, attachments, approval_status, next_approvers, rejected_by, record_number, date, transaction_date, memo, currency_iso_4217_code, exchange_rate, record_status, items, companies, company_ids, id, number, company_id, amount.…. Required: date, currency_iso_4217_code, exchange_rate, items.
update_a_dualentry_public_intercompany_journal_entry_by_id
Update a DualEntry intercompany journal entry by id. Full replacement — only draft records can be updated; posted records return 422. Lines must span at least two distinct companies and total debits must equal total credits. Returns: created_at, updated_at, attachments, approval_status, next_approvers, rejected_by, record_number, date, transaction_date, memo, currency_iso_4217_code,…. Required: id, date, currency_iso_4217_code, exchange_rate, items.
get_single_dualentry_public_intercompany_journal_entry_by_id
Get a single DualEntry intercompany journal entry by id (record number). Returns: created_at, updated_at, attachments, approval_status, next_approvers, rejected_by, record_number, date, transaction_date, memo, currency_iso_4217_code, exchange_rate, record_status, items, companies, company_ids, id, number, company_id, amount, event_id, api_version, topic, object_type, object, webhook_uuid.…. Required: id.
list_all_dualentry_public_vat_rates
List VAT rates in DualEntry, filterable by country_code, rate_type, tax_type, or is_active. Returns: items, count. Use the id as vat_rate_id when creating or updating transaction line items. Max 100 per page.
get_single_dualentry_public_vat_rate_by_id
Get a single DualEntry VAT rate by id. Returns the full VAT rate details including id, country_code, rate, rate_type, tax_type, valid_from, valid_to, and is_active. Required: id.
list_all_dualentry_public_gst_tax_rates
List GST tax rates in DualEntry with optional filters by country_code, tax_treatment, is_active, or updated range. Returns each rate with id, country_code, tax_treatment, rate, is_active, updated_at, and component breakdown. Max 100 per page.
get_single_dualentry_public_gst_tax_rate_by_id
Get a single GST tax rate by id in DualEntry. Returns the full tax rate details including id, country_code, tax_treatment, rate, is_active, updated_at, and component breakdown (e.g., CGST + SGST, GST + PST). Required: id.
list_all_dualentry_public_product_tax_codes
List DualEntry product tax codes available to the organization, including global tax codes. Returns: items, count. Max 100 per page.
create_a_dualentry_public_product_tax_code
Create an organization-scoped product tax code in DualEntry. Global product tax codes are system managed and cannot be created via the API. Returns: created_at, updated_at, id, code, description, source, is_active, is_global. Required: code, description.
update_a_dualentry_public_product_tax_code_by_id
Update an organization-scoped product tax code in DualEntry by id. Global product tax codes are system managed and cannot be updated via the API. Returns: created_at, updated_at, id, code, description, source, is_active, is_global. Required: id.
delete_a_dualentry_public_product_tax_code_by_id
Delete an organization-scoped DualEntry product tax code by id. Returns: success, errors. Global product tax codes are system managed and cannot be deleted. Required: id.
get_single_dualentry_public_product_tax_code_by_id
Get a single DualEntry product tax code by id. Returns: created_at, updated_at, id, code, description, source, is_active, is_global, event_id, api_version, topic, object_type, object, webhook_uuid. Global product tax codes are list-only and cannot be retrieved individually. Required: id.
create_a_dualentry_bank_match_populate
Trigger the DualEntry bank-match suggestion pipeline to run immediately. Suggestions auto-refresh every 5 minutes, so this endpoint is optional but remains for backward compatibility. Returns 202 Accepted immediately with an opaque success body. Poll the status-counts endpoint to watch progress, then use the suggestions endpoint to read results.
list_all_dualentry_bank_match_suggestions
List DualEntry bank-match suggestions, newest first. Each suggestion pairs a bank-feed row with an accounting transaction — either an existing one (`match`) or one DualEntry would draft if accepted (`create`). Returns: items, count. Max 100 per page.
get_single_dualentry_bank_match_suggestion_by_id
Get a single DualEntry bank-match suggestion by id. Each suggestion pairs a bank-feed row with an accounting transaction — either an existing one (`match`) or one DualEntry would draft if accepted (`create`). Returns: id, financial_transaction_id, transaction_id, suggestion_type, confidence_score, is_highest_ranked, success, errors. Required: id.
list_all_dualentry_bank_match_status_counts
Get DualEntry bank-match pipeline progress as per-stage row counts, useful for polling after calling /populate/. Returns: unprocessed, awaiting_setup, deterministic_suggested, awaiting_ai, ai_in_progress, ai_suggested, ai_no_match, no_match, excluded, matched. The pipeline is still running while unprocessed, awaiting_ai, or ai_in_progress is non-zero. Expired bank-feed rows are excluded from the…
list_all_dualentry_bank_match_bank_transactions
List bank-feed transactions in DualEntry's Bank Match workspace, ordered newest first. Returns rows with id, financial_account_id, date, amount, description, matching_status, is_posted, counterparty, source_id, source_type, and updated_at. Max 100 per page.
get_single_dualentry_bank_match_bank_transaction_by_id
Get a single bank-feed transaction in DualEntry by id. Returns the bank-feed row including id, financial_account_id, date, amount, description, matching_status, is_posted, counterparty, source_id, source_type, and updated_at. Required: id.
create_a_dualentry_bank_match_match
Confirm a bank-match in DualEntry by recording that bank-feed row(s) correspond to DualEntry transaction(s) or entry(s). On success each row's matching_status flips to matched and the response returns match_group_id. Pass financial_transaction_ids plus transaction_ids or entry_ids for an M:N match. Amounts must reconcile in a single currency, all rows must share the same sign, and no item may…
create_a_dualentry_bank_match_unmatch
Undo a bank-match in DualEntry by dissolving the entire match group that a bank-feed row or match_group_id belongs to. Returns: success, errors. Provide exactly one of financial_transaction_id or match_group_id in the request body; safe to call when nothing is currently matched.
list_all_dualentry_public_bank_connections
List customer API bank connections registered for the calling organization in DualEntry. Returns: items, count. Filter by updated_after and updated_before date ranges.
create_a_dualentry_public_bank_connection
Register or upsert a customer-built bank connection with optional accounts in DualEntry under source_type=customer_api. Returns: created_at, updated_at, id, connection_source_id, institution_name, status, successfully_aggregated_at, last_sync_at, accounts. Required: connection_source_id, institution_name.
delete_a_dualentry_public_bank_connection_by_id
Unregister a customer_api bank connection in DualEntry by id. Soft-disables the registration so further pushes and account registration are rejected; history is kept. Returns: success, errors. Required: id.
get_single_dualentry_public_bank_connection_by_id
Retrieve a single customer_api bank connection in DualEntry by id. Returns: created_at, updated_at, id, connection_source_id, institution_name, status, successfully_aggregated_at, last_sync_at, accounts, event_id, api_version, topic, object_type, object, webhook_uuid. Required: id.
create_a_dualentry_account_transaction
Batch upsert bank-feed transactions for a registered DualEntry customer_api account identified by financial account id. Returns: success, results. Max batch size is 250 items; one bad item does not roll back the rest of the batch. Required: financial_account_id, transactions.
list_all_dualentry_bank_connection_accounts
List accounts registered under a DualEntry customer API bank connection. Returns each account with id, account_id, and account_name. Required: connection_id.
create_a_dualentry_bank_connection_account
Upsert accounts under an existing customer API bank connection in DualEntry. Returns the bank connection object including id and accounts (each with id, account_id, and account_name). Required: connection_id, accounts.
create_a_dualentry_oauth_authorize
Start the CLI OAuth flow in DualEntry to obtain the authorization URL where the user grants access. Returns the authorization response object containing the URL the user visits to complete the grant step. The request body is required. Required: redirect_uri, code_challenge, code_challenge_method, state.
list_all_dualentry_oauth_callbacks
Handle the OAuth callback from WorkOS to complete the CLI authorization flow in DualEntry. Returns an empty 204 response on success.
create_a_dualentry_oauth_token
Exchange an OAuth authorization code for a DualEntry API key in the CLI OAuth flow. Returns a TokenResponse object whose field-level properties are not documented in the discovered source. Required: grant_type, code, code_verifier, redirect_uri.
No tools match your search.
How it works
From DualEntry account to governed MCP endpoint
Connect
Link a DualEntry account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which DualEntry tools are exposed, rename them, or freeze arguments.
Authorize
Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.
Put your agents to work in the tools you already use
Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.