Skip to content
Elaichi Elaichi

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.

DualEntry

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.

Claude ChatGPT Cursor

Copy the endpoint

https://api.elaichi.ai/mcp
Client Connected by Status Last used
Claude
E

Emma Laurent

• Connected 4 minutes ago
Cursor
S

Sofia Ricci

• Connected 2 hours ago
ChatGPT
C

Clara Nowak

• Connected Yesterday

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
Tool Resource Method Description
list_all_dualentry_public_healths dualentry_public_healths list 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 dualentry_public_invoices list 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 dualentry_public_invoice create 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 dualentry_public_invoice update 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 dualentry_public_invoices_attach_attachment get Upload file attachments to an existing DualEntry invoice record. Returns the updated invoice including id, number, amount, attachments, and record_status. Required: record_number.

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
Name Source template Tools Created

Finance toolbox

DualEntry · invoices and bills

DualEntry starter 18 Mar 4, 2026

Sales toolbox

DualEntry · sales orders and quotes

9 Mar 2, 2026

Operations toolbox

DualEntry · fulfillment and attachments

24 Feb 27, 2026

Executive toolbox

DualEntry · cash position and reporting

DualEntry starter 6 Feb 19, 2026

Procurement toolbox

DualEntry · vendor bills and payments

31 Jan 30, 2026

Customer success toolbox

DualEntry · customer invoices and disputes

12 Jan 22, 2026

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
Connection Scope Status Access Created
DU

DualEntry (Finance US)

Connected by Emma Laurent

Personal • Active 1 team · 6 members Mar 4, 2026
DU

DualEntry (Finance EMEA)

Connected by James Whitfield

Organization • Active 3 teams · 24 members Mar 2, 2026
DU

DualEntry (Sales West)

Connected by Sofia Ricci

Organization • Active 2 teams · 11 members Feb 27, 2026
DU

DualEntry (Sales East)

Connected by Daniel Ortega

Personal • Needs re-auth 1 team · 3 members Feb 19, 2026
DU

DualEntry (Procurement)

Connected by Clara Nowak

Personal • Active Not shared Jan 30, 2026
DU

DualEntry (Executive Reporting)

Connected by Michael Brennan

Personal • Active 2 teams · 9 members Jan 22, 2026

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
When Who What happened Type Resource

2 minutes ago

Mar 6, 2026, 3:10 PM

E

Emma Laurent

[email protected]

Restriction Created Access Support team

8 minutes ago

Mar 6, 2026, 3:04 PM

J

James Whitfield

[email protected]

Restriction Updated Access Sales team

14 minutes ago

Mar 6, 2026, 2:58 PM

S

Sofia Ricci

[email protected]

Role Assigned Access Analyst

20 minutes ago

Mar 6, 2026, 2:52 PM

D

Daniel Ortega

[email protected]

DualEntry Users Updated MCP users

26 minutes ago

Mar 6, 2026, 2:46 PM

C

Clara Nowak

[email protected]

DualEntry Invoices Created MCP invoices

32 minutes ago

Mar 6, 2026, 2:40 PM

M

Michael Brennan

[email protected]

DualEntry Invoices List Toolbox invoices

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

  1. Schedule

    Every weekday at 08:00

    0.2s
  2. Fetch invoices

    DualEntry

    1.4s
  3. Group by owner

    Transform

    0.1s
  4. Draft the digest

    Agent step

    Ran with 4 tools, returned a structured summary

    6.2s
  5. Approve the digest

    Needs approval

    Assigned to Michael Brennan

    Approve
  6. 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

Live

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 ./ (e.g., core.invoice/created). No parameters required.

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.

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.