Skip to content

Accounting · Beta

Rillet
API integration

Ship Accounting features without building the integration. Full Rillet API access via Proxy and 120+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Rillet

Use Cases

Why integrate with Rillet

Common scenarios for SaaS companies building Rillet integrations for their customers.

01

Sync AP and corporate card spend to the GL

Spend management and AP automation platforms can push bills, charges, vendor credits, and reimbursements into Rillet with attached receipts, keeping the ledger audit-ready without manual re-entry by the finance team.

02

Hand off closed-won deals from CPQ to finance

CPQ and RevOps tools can drop signed contracts into Rillet's draft queue with mapped products and customers, letting controllers approve deals before they hit the books while eliminating rekeying between sales and accounting.

03

Recognize revenue for usage-based billing engines

Metering and billing platforms can issue invoices themselves and sync them to Rillet in revenue-recognition-only mode, feeding daily usage upserts so Rillet handles ASC 606 waterfalls without owning invoice delivery.

04

Pull GAAP and SaaS metrics into FP&A tools

Financial planning and BI platforms can ingest pre-computed trial balances, income statements, cash flow statements, and ARR waterfalls directly from Rillet, skipping the work of reverse-engineering metrics from raw journal entries.

05

Post payroll runs as balanced journal entries

Payroll and HRIS platforms can aggregate each run and push it into Rillet as a journal entry, keeping compensation expense, accruals, and tax liabilities properly booked without a manual close-week ritual.

What You Can Build

Ship these features with Truto + Rillet

Concrete product features your team can ship faster by leveraging Truto’s Rillet integration instead of building from scratch.

01

Draft contract handoff with duplicate protection

Push closed-won deals to Rillet's draft contracts endpoint with external reference IDs so finance can review, approve, and activate them without creating duplicate records.

02

Dual-scope invoice sync

Create invoices in Rillet with either FULL scope (Rillet issues and sends the invoice) or REVENUE_RECOGNITION_ONLY scope when your billing engine owns invoice delivery but Rillet owns the GL impact.

03

Bulk usage upserts for contract items

Stream daily consumption from a rating engine into Rillet using bulk usage updates on contract items, powering Rillet's billing schedules and revenue recognition automatically.

04

Receipt-attached expense sync

Create charges, bills, and reimbursements in Rillet and upload the corresponding PDF or image receipts as documents on each record so every GL line is audit-ready.

05

Chart of accounts and tracking category mapping UI

Fetch Rillet accounts, subsidiaries, and custom fields so your users can map their own SKUs, departments, or cost centers to Rillet dimensions before any transactions sync.

06

Financial report ingestion for dashboards

Pull ARR waterfalls, trial balances, balance sheets, income statements, cash flow statements, and executive P&Ls on a schedule to power in-app board reporting and forecasting.

SuperAI

Rillet AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_rillet_accounts

List all accounts in the Rillet chart of accounts for the organization tied to the API credentials. Returns: id, code, name, type, subtype, status, intercompany, updated_at. Account ids are the stable identifiers used when creating journal entries, bills, and other postings.

create_a_rillet_account

Create an account in the Rillet chart of accounts. Returns the created account including its id, code, name, type, subtype, status, intercompany flag, and updated_at; currency is inherited from the organization and status is set to ACTIVE. Requires the CreateAccountRequest JSON body (see the create-an-account reference for its required fields).

list_all_rillet_subsidiaries

List all subsidiaries in Rillet. Returns: id, currency, timezone, trade_name, type. Use the returned subsidiary ids on endpoints that accept subsidiary_id, such as contracts, invoices, and reports.

get_single_rillet_subsidiary_by_id

Get a single Rillet subsidiary by id. Returns: id, currency, timezone, trade_name, type. Required: id. Call list-all-subsidiaries first if you don't yet know which subsidiary id to use.

list_all_rillet_organizations

Retrieve the Rillet organization profile tied to the API credentials in use (the current org). Use it to confirm the organization id, display name, and other org-level settings in integrations. Returns: id, currency, timezone, trade_name, created_at, updated_at.

list_all_rillet_members

List organization members in rillet. Returns each member's identity: id, user_id, email, first_name, last_name, and status. Does not include role assignments — use list-role-assignments to see which member holds which role.

list_all_rillet_roles

List every role defined in the organization, each with the flat set of permission keys it grants. Returns: id, name, description, is_system_role, permissions. Treat each permission key as an opaque, colon-delimited identifier — do not rely on its internal structure.

list_all_rillet_role_assignments

List role assignments in Rillet. Returns: id, member_id, role_id, scope. Assignments reference the assigned organization member, role, and assignment scope by id only; resolve names via the roles and members endpoints, as this endpoint is not the source of truth for role or subsidiary names.

list_all_rillet_products

List Rillet products — sellable goods and services for accounts receivable (contracts, invoices). Returns each product's id and its catalog attributes; supports optional status and currency filters.

create_a_rillet_product

Create a product (good or service) in Rillet's catalog for use on contracts and invoices. Returns the created product's id and its catalog attributes, including pricing and revenue behavior. Required: a ProductRequest request body.

get_single_rillet_product_by_id

Get a single Rillet product by id. Returns the product's id and its catalog attributes, including the pricing configuration used on contracts and invoices. Required: id (UUID of the product).

update_a_rillet_product_by_id

Update a product definition in Rillet's catalog by id. Returns the updated product's id and its catalog attributes. Required: id plus a full ProductRequest body — this is a full-replace operation (PUT semantics): retrieve the product first and submit every field, since omitted fields may be cleared.

delete_a_rillet_product_by_id

Delete a Rillet product by id. Returns an empty 204 response on success. Ensure no in-flight contracts or invoices still require the product before deleting. Required: id.

list_all_rillet_customers

List Rillet accounts-receivable customers with pagination and optional name or external-reference filters. Returns: id, updated_at, name, name_on_invoice, address, shipping_address, emails, external_references, payment_terms, send_invoices_automatically, send_payment_reminders, allow_online_payments, fields, created_at. Sorted descending by created by default.

create_a_rillet_customer

Create a customer in the Rillet Accounts Receivable catalog. Returns: id, updated_at, name, name_on_invoice, address, shipping_address, emails, external_references, payment_terms, send_invoices_automatically, send_payment_reminders, allow_online_payments, fields, created_at. Required: name. When address is provided, line1, city, state (2-letter code), zip_code, and country are all required.

get_single_rillet_customer_by_id

Get a single Rillet customer by id, including billing profile details needed for updates. Returns: id, updated_at, name, name_on_invoice, address, shipping_address, emails, external_references, payment_terms, send_invoices_automatically, send_payment_reminders, allow_online_payments, fields, created_at. Required: id.

update_a_rillet_customer_by_id

Update a Rillet customer by id in the Accounts Receivable catalog. Full-replace operation: omitting any body field sets it to null, so retrieve the customer first and include all existing fields with your changes. Returns: id, updated_at, name, name_on_invoice, address, shipping_address, emails, external_references, payment_terms, send_invoices_automatically, send_payment_reminders,…

delete_a_rillet_customer_by_id

Permanently delete a Rillet customer by id. Verify no active contracts or open invoices reference the customer first. Returns an empty 204 response on success. Required: id.

get_single_rillet_settings_payment_by_id

Get the payment method configured for auto-payment for a customer in Rillet. Returns the customer's configured auto-payment payment method object; the available docs do not enumerate its fields. Required: id (the customer's UUID).

create_a_rillet_settings_payment

Set up auto-payment for a customer in Rillet. Kicks off the setup flow and returns a URL the customer must visit to complete setup (or to update the payment method if one is already configured). Returns the setup result object; the available docs do not enumerate its fields. Required: customer_id.

create_a_rillet_contracts_preview_invoice_schedule

Preview the invoice schedule a contract would produce in Rillet, without creating the contract or persisting anything. Requires a JSON request body describing the contract. Returns the computed invoice schedule object.

list_all_rillet_contracts

List all contracts in Rillet with pagination and filters for subsidiary, customer, status, and start/end date ranges. Useful for discovering contract ids, checking lifecycle state, or driving reporting extracts. Returns each contract with id, status, created_at, and updated_at.

create_a_rillet_contract

Create a contract in Rillet, choosing the FULL scope when Rillet generates and sends the invoices (invoice numbers assigned automatically), or REVENUE_RECOGNITION_ONLY when contracts and invoices are issued from an external system and only recorded in Rillet for accounting. Returns the created contract including id, status, items, and schedules. Requires a JSON contract creation payload.

get_single_rillet_contract_by_id

Get a single contract in Rillet by id. Returns the expanded contract including id, status, items, and schedules — always retrieve before issuing a full update so you preserve fields you do not intend to clear. Required: id.

delete_a_rillet_contract_by_id

Delete a contract in Rillet by id. Permanently removes the contract — confirm downstream invoices, revenue schedules, and integrations no longer depend on it first. Returns an empty 204 response on success. Required: id.

create_a_rillet_contract_amendment

Amend a contract in Rillet to add items, retire items, or change pricing or invoicing after go-live, preserving historical billing context. Returns the amended contract as the expanded contract object defined by Rillet's ExpandedContract schema. Use the preview amendment endpoint to dry-run the financial impact before committing. Required: contract_id and an amendment request body.

create_a_rillet_amendments_preview

Preview how a Rillet contract will look after an amendment, without applying it. Returns the expanded contract including its id, items, schedules, and metadata. Required: contract_id (UUID of the contract) plus an amendment request body (see body schema). The preview has no effect on the actual contract.

rillet_contract_ends_bulk_update

End an open-ended contract in Rillet by setting an explicit end date on a contract that previously had no close date; downstream invoicing and revenue recognition honor the new boundary. Returns an empty 204 response on success. Required: contract_id.

get_single_rillet_draft_contract_by_id

Get a draft contract by id, including its line items and any attached external references. Returns: id, external_references, subsidiary_id, customer_id, name, amount, close_date, start_date, end_date, scope, items, line_items, created_at, updated_at. Required: id.

update_a_rillet_draft_contract_by_id

Update a draft contract by id; items and external_references on the record are fully replaced, and a 404 is returned if the id is not a draft contract in the organization. Returns the updated draft contract including id, external_references, line_items, and updated_at. Required: id.

delete_a_rillet_draft_contract_by_id

Delete a draft contract by id, permanently removing it along with its line items and external references — use this to programmatically reject a draft instead of using the Rillet UI. Returns an empty 204 response on success. Required: id.

list_all_rillet_draft_contracts

List draft contracts staged in Rillet's Draft queue for a human to approve or reject before they become active contracts, with cursor pagination. Returns: id, external_references, subsidiary_id, customer_id, name, amount, close_date, start_date, end_date, scope, items, line_items, created_at, updated_at.

create_a_rillet_draft_contract

Create a draft contract staged in Rillet's Draft state for a human to approve or reject; supply an external_references entry with a stable (type, id) pair to deduplicate retries. Returns the created draft contract including id, external_references, line_items, and created_at. Promotion to an active contract happens only via the Rillet UI.

get_single_rillet_contract_item_usage_by_id

List all usage records for a contract item in Rillet, newest first. Returns the UsageRecords payload plus a pagination object with next_cursor for keyset paging. Required: id (the contract item's UUID).

rillet_contract_item_usages_bulk_update

Upsert usage records for a contract item in Rillet: dates with no recorded usage get a new row, dates already recorded are overwritten. Returns the updated UsageRecords payload. Required: contract_item_id and a usage records body.

rillet_contract_item_usages_bulk_delete

Delete a contract item's usage record in Rillet for a single calendar date, without resending the entire usage payload. Returns an empty 204 response on success. Required: contract_item_id and date.

list_all_rillet_invoices

List all AR invoices in Rillet with filters for subsidiary, customer, overdue state, payment status, and update timestamp. Returns each invoice record with id and attributes (line items, tax breakdown, contract/customer linkage). Max 100 per page.

create_a_rillet_invoice

Create an invoice in Rillet under a FULL scope (Rillet generates and sends the invoice and automatically assigns the invoice number) or a REVENUE_RECOGNITION_ONLY scope (invoice is issued externally and recorded for accounting, with the invoice number supplied manually). Returns the created invoice record: id, attributes.

get_single_rillet_invoice_by_id

Get a single Rillet invoice by id, including its line items, tax breakdown, and linkage to contracts or customers. Returns the invoice record: id, attributes. Required: id (invoice UUID).

update_a_rillet_invoice_by_id

Update a Rillet invoice by id. This is a full-replace (PUT) operation: every field must be included in the body, since omitted fields are set to null and wiped — retrieve the invoice first, then send all existing fields plus your changes. Returns the updated invoice record: id, attributes. Required: id.

delete_a_rillet_invoice_by_id

Delete a Rillet invoice by id, permanently removing it when your policy allows (for example draft or voided states); confirm no downstream payments or revenue postings still depend on it. Returns an empty 204 response on success. Required: id.

update_a_rillet_invoice_tax_by_id

Update taxes for an invoice in Rillet — recalculates or replaces the invoice's tax lines using the supplied tax payload, e.g. after changing taxable addresses or when integrating an external tax engine result. Returns the updated invoice object: id, attributes. Required: invoice_id and the tax payload body.

list_all_rillet_invoice_payments

List all invoice payments in Rillet across every invoice in the organization, independent of which invoice each payment settled. Returns payment records including their public status, amount, currency, and created_at. Supports an updated.gt timestamp filter for incremental syncs; sorted descending by created or updated via sort_by.

rillet_invoice_sent_status_bulk_update

Update the sent status of an invoice in Rillet — set the sent flag true once the billing system or email provider confirms delivery to the customer, or false while the document is still internal-only. Returns an empty 204 response on success. Required: invoice_id, sent.

list_all_rillet_credit_memos

List customer credit memos in Rillet with pagination. Returns each memo's id, remaining balance, applications, tax metadata, and updated_at; use memo ids with retrieve-a-credit-memo before updates or when applying credits to invoices. Required: updated.gt to filter by update timestamp.

create_a_rillet_credit_memo

Create a credit memo in Rillet that reduces receivable exposure before it is allocated to invoices. Returns the CreditMemo record including its id, remaining balance, applications, and tax metadata. The request body must capture subsidiary, customer, line-level reasons, and tax treatment for audit.

get_single_rillet_credit_memo_by_id

Get a credit memo by id in Rillet. Returns the full CreditMemo payload including its id, remaining balance, applications, and tax metadata to echo on PUT updates. Always retrieve before editing — update-a-credit-memo replaces the entire resource when fields are omitted. Required: id.

update_a_rillet_credit_memo_by_id

Update a credit memo by id in Rillet. Full-replace semantics: all fields must be included in the request body — omitting any field sets it to null and wipes existing data. Always retrieve-a-credit-memo first, then echo ALL existing fields plus your changes. Returns the updated CreditMemo: id, remaining balance, applications, tax metadata, updated_at. Required: id.

delete_a_rillet_credit_memo_by_id

Delete a credit memo by id in Rillet, typically while it is still draft or unused. Confirm no invoice applications depend on it first. Returns an empty 204 response on success. Required: id.

update_a_rillet_credit_memo_tax_by_id

Refresh tax quotes on an existing Rillet credit memo using the same structured tax payload as invoice tax updates, stamped with taxesCalculatedAt for auditability. Returns: id, subsidiary_id, credit_memo_number, customer_id, items, credit_memo_date, address, status, net_amount, total, applied_amount, remaining_amount, applications, exchange_rate, taxed_amount, external_references, updated_at,…

create_a_rillet_credit_memo_application

Reconcile all applications on a Rillet credit memo: the request body is the desired application set, so applications missing from it are removed, new ones inserted, and existing ones updated when amount or application_date differ. Returns the updated credit memo including its id, applications, and updated_at. Required: credit_memo_id (UUID) and the full-reconcile request body.

rillet_credit_memo_applications_bulk_delete

Unapply all applications from a credit memo, reverting every invoice allocation. Returns an empty 204 response on success. Required: credit_memo_id (UUID).

list_all_rillet_vendors

List Rillet vendors with pagination; the returned vendor ids feed bill creation, vendor credits, and payment workflows. Returns vendor records including id and updated_at.

create_a_rillet_vendor

Create a vendor master record in Rillet that accounts-payable teams can select on bills, vendor credits, and payments. Capture the vendor's legal name, remit-to address, default currency, and payment terms so downstream bills inherit correct due dates and banking instructions. Returns the created vendor record including its id.

get_single_rillet_vendor_by_id

Get a Rillet vendor by id (UUID). Fetches the full vendor profile, including the identifiers you must echo back on PUT updates — use it before editing to avoid wiping optional fields. Returns the vendor record including its id. Required: id.

update_a_rillet_vendor_by_id

Update a Rillet vendor by id (UUID). This is a full-replace PUT: include ALL existing fields in the body along with your changes, since omitted fields are set to null and wipe existing data — always retrieve the vendor first. Returns the updated vendor record including its id. Required: id.

delete_a_rillet_vendor_by_id

Delete a Rillet vendor by id (UUID) when you no longer expect to pay it; confirm no open bills, credits, or scheduled payments still reference it to avoid orphaned payables. Returns an empty 204 response on success.

list_all_rillet_vendor_credits

List vendor credits in Rillet, optionally filtered by vendor, subsidiary, and last-updated timestamp. Returns: credit_number, date, gl_impact_date, memo, line_items, vendor_id, subsidiary_id, id, organization_id, status, amount, applied_amount, remaining_amount, applications, updated_at.

create_a_rillet_vendor_credit

Create a vendor credit in Rillet — records a credit memo amount that reduces future payables without touching specific bills; allocate it to bills afterwards with apply-vendor-credit. Returns: credit_number, date, gl_impact_date, memo, line_items, vendor_id, subsidiary_id, id, organization_id, status, amount, applied_amount, remaining_amount, applications, updated_at, attributes. Requires a…

get_single_rillet_vendor_credit_by_id

Get a vendor credit in Rillet by id, including its remaining balance and application history — useful before updating or applying the credit to bills. Returns: credit_number, date, gl_impact_date, memo, line_items, vendor_id, subsidiary_id, id, organization_id, status, amount, applied_amount, remaining_amount, applications, updated_at, attributes. Required: id.

update_a_rillet_vendor_credit_by_id

Update a vendor credit in Rillet by id. This is a full-replace operation: every field must be included in the request body, because omitted fields are set to null and existing data is wiped — retrieve the current record first, then send all existing fields plus your changes. Returns: credit_number, date, gl_impact_date, memo, line_items, vendor_id, subsidiary_id, id, organization_id, status,…

delete_a_rillet_vendor_credit_by_id

Delete a vendor credit in Rillet by id, permanently removing it from the subledger — make sure no applications or downstream reconciliations still rely on the credit first. Returns an empty 204 response on success. Required: id.

create_a_rillet_vendor_credit_application

Apply a vendor credit to open bills in Rillet, allocating its remaining unapplied balance against specific bills to reduce the net amounts payable. Returns the updated vendor credit object with its id and schema-specific attributes (including remaining balance and application history). Required: vendor_credit_id.

list_all_rillet_bills

List Rillet bills (accounts-payable records) with filters for vendor, subsidiary, and payment status. Returns each bill with id plus the vendor linkage, approval state, open balance, and document-reference fields under attributes. All filters are optional.

create_a_rillet_bill

Create a Rillet bill accruing a new accounts-payable amount against a vendor with subsidiary context, line items, and due dates for your approval workflow. Returns the created bill record: id plus the remaining Bill fields under attributes (vendor linkage, approval state, open balance, document references). Requires a request body with the full bill details.

get_single_rillet_bill_by_id

Get a single Rillet bill by id, including its vendor linkage, approval state, open balance, and document references. Returns the bill record: id plus the remaining Bill fields under attributes. Required: id. Retrieve the bill before updating it — update semantics require resubmitting every field.

update_a_rillet_bill_by_id

Update a Rillet bill by id. This is a full-replace operation: omitting any field in the request body sets it to null, so retrieve the bill first and include ALL existing fields along with your changes. Returns the updated bill record: id plus the remaining Bill fields under attributes. Requires id and a request body.

delete_a_rillet_bill_by_id

Delete a Rillet bill by id — typically one still in draft or created in error. Verify no posted payments, accrual journals, or vendor credit applications reference the bill before deleting. Returns an empty 204 response on success. Required: id.

list_all_rillet_bill_payments

List the payments recorded against a specific bill in Rillet. Returns each payment's id and its content-specific attributes (the BillPayment object). Required: bill_id.

create_a_rillet_bill_payment

Create a bill payment in Rillet that settles all or part of a bill, updating the outstanding payable. Returns the created payment's id and its content-specific attributes. Required: bill_id and a request body including billId, which must match bill_id.

delete_a_rillet_bill_payment_by_id

Delete a bill payment in Rillet, reversing a disbursement that failed or was duplicated and restoring the bill balance. Returns an empty 204 response on success. Required: bill_id and the payment id.

list_all_rillet_charges

List Rillet charges awaiting policy review, subsidiary allocation, or conversion into reimbursable payables. Returns each charge including its id; the full attribute set follows Rillet's Charge schema in the API reference.

create_a_rillet_charge

Create a charge in Rillet by submitting a JSON charge request body. Returns the created charge object including its id; the full attribute set follows Rillet's ChargeRequest schema in the API reference. Requires a JSON request body.

get_single_rillet_charge_by_id

Get a single Rillet charge by id, including its merchant metadata, amounts, and workflow state for review before reimbursement. Returns the charge object including its id; the full attribute set follows Rillet's Charge schema in the API reference. Required: id.

delete_a_rillet_charge_by_id

Delete a Rillet charge by id, permanently removing it from spend reporting — confirm the underlying bank activity will not be re-imported first. Returns an empty 204 response on success. Required: id (UUID of the charge).

list_all_rillet_reimbursements

List reimbursements in Rillet, including requests created from approved charges or manual submissions, for payroll sync. Returns each reimbursement's id and updated_at.

create_a_rillet_reimbursement

Create a reimbursement in Rillet from an approved charge or a manual submission. Returns the created reimbursement with its id and updated_at. Requires a CreateReimbursementRequest JSON body.

get_single_rillet_reimbursement_by_id

Get a single reimbursement by id in Rillet, including its employee linkage, funding instructions, and approval history. Returns: vendor_id, items, reimbursement_date, impact_date, subsidiary_id, external_references, exchange_rate, id, status, updated_at. Required: id.

delete_a_rillet_reimbursement_by_id

Delete a reimbursement by id in Rillet, for requests created prematurely or duplicated during intake so they no longer block payroll totals; confirm no outbound payments or GL accruals were posted first. Returns an empty 204 response on success. Required: id.

list_all_rillet_journal_entries

List all GL journal entries in rillet. Returns entry records with id, subsidiary_id, entry_date, memo, ledger_type, status, reconciled flag, debit/credit journal_lines, created_at, and updated_at. Filter by subsidiary_id, book_id, account_ids, updated.gt timestamp, or a date.gte/date.lte posting-date range; sort_by accepts created or updated.

create_a_rillet_journal_entry

Create a balanced manual journal entry in rillet for GL corrections. Returns the created entry including id, lines, date, and reconciled flag. Required: lines, date, and subsidiary_id. Prefer the dedicated AR or AP APIs when the business event already exists.

get_single_rillet_journal_entry_by_id

Get a single journal entry in rillet by id, with every line and account reference needed for close review. Returns: id, book_id, subsidiary_id, name, currency, related_entity, items, date, reversal_date, attachmentUrl, exchange_rate, updated_at, lines, reconciled. Required: id. Retrieve before updating so new edits merge with existing lines without dropping balances.

update_a_rillet_journal_entry_by_id

Update a manual journal entry in rillet by id, replacing its lines and header metadata under the same balancing rules as creation. Returns the updated entry including id, lines, date, and reconciled flag. Required: id and lines.

delete_a_rillet_journal_entry_by_id

Delete a manual journal entry in rillet by id, typically before period lock while corrections remain allowed. Verify no reconciliations or downstream consolidations still rely on the entry first. Returns an empty 204 response on success. Required: id.

list_all_rillet_bank_accounts

List all cash bank accounts configured for the organization in Rillet, optionally filtered by subsidiary. Returns: id, name, currency, bank_name, subsidiary_id, account_code, mask, transactions_start_date, status, code, type, subtype, intercompany, updated_at.

create_a_rillet_bank_account

Create a Rillet bank account, registering its currency, institution identifiers, and GL cash account linkage so invoice payments, bill payments, and bank feeds post to the same cash subledger. Returns: id, name, currency, bank_name, subsidiary_id, account_code, mask, transactions_start_date, status, code, type, subtype, intercompany, updated_at. Requires a JSON request body…

get_single_rillet_bank_account_by_id

Get a single Rillet bank account by id, including its configuration and status plus the identifiers downstream connectors need when refreshing balances. Returns: id, name, currency, bank_name, subsidiary_id, account_code, mask, transactions_start_date, status, code, type, subtype, intercompany, updated_at. Required: id.

delete_a_rillet_bank_account_by_id

Delete a Rillet bank account by id when the entity closed the account or a duplicate connector mapping was created; verify no scheduled payments or open reconciliation batches still target the account first. Returns an empty 204 response on success. Required: id.

list_all_rillet_bank_transactions

List Rillet bank transactions for reconciliation. Supports bank account, subsidiary, date-range, and updated-since filters. Returns: id, bank_account_id, subsidiary_id, date, name, merchant, net_amount, fee, pending, excluded, external_references, created_at, updated_at.

create_a_rillet_bank_transaction

Create a Rillet bank transaction to insert a single bank feed line, such as a wire, ACH, or adjustment, that automated imports missed. Requires a JSON body per the upstream CreateBankTransactionRequest schema — the source requires the hosting bank account and value dates so cash reporting matches what treasury booked externally. Returns the stored bank transaction object, including its id.

get_single_rillet_bank_transaction_by_id

Get a single Rillet bank transaction by id, including the counterparty text, amounts, and reconciliation flags cash teams use at month-end. Returns the bank transaction object, including its id, with the full field set defined by the upstream BankTransaction schema. Required: id (the bank transaction UUID).

update_a_rillet_bank_transaction_by_id

Update a Rillet bank transaction by id to adjust memo, categorization, or reconciliation metadata without re-importing the feed batch. Requires a full JSON body per the upstream UpdateBankTransactionRequest schema so optional fields you intend to keep are not unintentionally cleared. Returns the updated bank transaction object, including its id. Required: id (the bank transaction UUID).

delete_a_rillet_bank_transaction_by_id

Delete a Rillet bank transaction by id, for rows that were imported twice or created in error. Returns an empty 204 response on success. Required: id.

list_all_rillet_tax_rates

List all available tax rates in Rillet. Returns tax rate records including their id — use the returned ids when creating bills with specific tax codes.

list_all_rillet_reports_arr_waterfalls

Retrieve the ARR waterfall report from Rillet for a given month, breaking down how ARR moved between periods (beginning ARR, new business, expansion, contraction, churn). Returns the RevenueWaterfall report payload in `attributes`, shaped by the requested breakdown dimensions.

list_all_rillet_books

List all accounting books in Rillet, with the primary book listed first. Returns: id, name, kind, mode. Only primary and adjustment-overlay book ids are accepted by report and journal-entry endpoints that take a book_id.

list_all_rillet_periods_last_closeds

Retrieve the last closed accounting period in Rillet for book-close workflows. Returns the book record with its id and content-type-specific period fields (attributes), including closed-on timestamps. Responds with 404 when no period has ever been closed, meaning the book is not yet closed rather than the resource being missing.

list_all_rillet_healths

Check the health of the Rillet API service. Returns an empty 200 OK response when the service process is running, without exercising downstream databases or queues. Intended for load balancer health checks.

list_all_rillet_api_keys

Get API key information in Rillet. Confirms the key is recognized and returns basic identity metadata with fields defined upstream; call it during bootstrap or key rotation to distinguish invalid keys from connectivity failures.

list_all_rillet_fields

List Rillet custom field definitions and their pick-list values for the organization. Returns each field with id, values, created_at, and updated_at.

create_a_rillet_field

Create a custom field in Rillet (text, number, pick list, etc.) that can be attached to supported entities for reporting and automation. Returns the created field with id, created_at, and updated_at. Requires a JSON request body.

update_a_rillet_field_by_id

Update an existing Rillet custom field's labels, validation rules, or visibility metadata without recreating historical values. Returns the updated field with id, created_at, and updated_at. Required: id.

create_a_rillet_field_value

Create a selectable value on a pick-list style custom field in Rillet so entities can be tagged with a consistent taxonomy. Returns the parent field object including its id. Required: field_id. Create the parent field first so the new value inherits its scope before records reference it.

update_a_rillet_field_value_by_id

Update a pick-list value in Rillet, renaming or reordering the entry while preserving its underlying id so historical records stay linked to the same option. Returns the parent field object including its id. Required: field_id and id. Prefer this over delete-and-recreate when auditing requires stable references.

delete_a_rillet_field_value_by_id

Delete a field value in Rillet by id, retiring the pick-list option so it can no longer be selected while older records keep their history. Returns the parent field object including its id. Required: field_id and id. Confirm no automation or validation rules still require the value before removal.

list_all_rillet_reports_trial_balances

Retrieve a trial balance report for a specified date range in Rillet. Returns the trial balance report object for that range (optionally scoped by book); its fields follow Rillet's report schema. Required: from_date and to_date, both ISO-8601 dates (YYYY-MM-DD) — both must be provided or the call will fail.

list_all_rillet_reports_balance_sheets

Retrieve the Rillet balance sheet report as of a specified date. Returns the balance sheet report for the requested date; its field structure is defined by the upstream BalanceSheetReport schema in the Rillet API reference. Required: as_of_date (ISO-8601 date, YYYY-MM-DD).

list_all_rillet_reports_income_statements

Retrieve the Rillet income statement (profit and loss) report for a specified date range. Returns the report record with its id and attributes (the report fields as defined upstream in the IncomeStatementReport schema). Required: from_date and to_date (ISO-8601 dates, YYYY-MM-DD); both must be provided or the call will fail.

list_all_rillet_reports_cash_flow_statements

Get the Rillet cash flow statement report for a date range. Returns the report's id and its schema-defined attributes; the field-level structure follows the upstream CashFlowStatementReport schema. Required: from_date, to_date (ISO-8601 YYYY-MM-DD, both must be provided or the call fails).

list_all_rillet_reports_executive_pls

Retrieve the executive profit and loss report with margins for a specified date range in Rillet. Returns the report object including its id and report-specific fields under attributes. Required: from_date, to_date.

list_all_rillet_reports_journal_entries

List Rillet journal entries with line item amounts converted to the reporting currency. Returns journal_entries and a pagination object with next_cursor. Entries are sorted descending by created (default) or updated.

create_a_rillet_invoice_payment

Record a manual cash receipt against an open Rillet invoice. Returns the created invoice payment including its id, status, created_at, and updated_at. Required: invoice_id. The request body supplies the payment amount, effective date, and the GL account code that maps to a funded cash account — Rillet resolves the account code before posting.

delete_a_rillet_invoice_payment_by_id

Delete an uncleared invoice payment in Rillet, reversing the payment and restoring the invoice balance. Returns an empty 204 response on success. Required: invoice_id, id. Only uncleared payments can be deleted; cleared or reconciled payments are rejected.

list_all_rillet_invoice_payment

List every payment attempt recorded against a single Rillet invoice, including successful, uncleared, and failed rows with their public status. Returns: id, status, invoice_id, amount, date, account_code, updated_at, created_at. Required: invoice_id.

update_a_rillet_invoice_payment_by_id

Replace the amount, date, and cash account on an existing uncleared Rillet invoice payment. Returns the updated invoice payment including its id, status, created_at, and updated_at. Required: invoice_id, id. This is a full-replace operation (PUT semantics) — include all fields in the request body; cleared or reconciled payments are rejected.

get_single_rillet_approval_workflow_by_id

Get a single approval workflow in Rillet by id. Returns: id, created_at, updated_at. Required: id.

list_all_rillet_approval_workflows

List all approval workflows in Rillet. Returns each workflow's id, created_at, and updated_at.

update_a_rillet_approval_workflow_by_id

Update an approval workflow in Rillet by id. Returns the updated workflow with id, created_at, and updated_at. Required: id.

create_a_rillet_bill_document

Upload a document (PDF, JPEG, or PNG), such as an invoice, contract, or receipt, to an existing Rillet bill as a multipart form-data file. Returns an empty 204 response on success. Required: bill_id, file.

create_a_rillet_charge_document

Upload a document (a receipt as PDF, JPEG, or PNG) to an existing charge in Rillet using multipart form data. Returns an empty 204 response on success. Required: charge_id, file.

create_a_rillet_reimbursement_document

Attach a receipt file (PDF, JPEG, or PNG) to an existing reimbursement in Rillet. Returns an empty 204 response on success. Required: reimbursement_id, file.

Why Truto

Why use Truto’s MCP server for Rillet

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Rillet in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Rillet account

Use Truto’s frontend SDK to connect your customer’s Rillet account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Rillet

Truto’s Proxy API is a 1-to-1 mapping of the Rillet API. You call us, we call Rillet, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Rillet’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Rillet on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How do end users authenticate their Rillet account?

Rillet uses API key authentication. Through Truto, your users provide their Rillet API key during connection setup, and Truto securely stores and injects the credential on every request so you never handle raw secrets.

Can we attach receipts and supporting documents to transactions?

Yes. Rillet supports multipart form-data uploads for charges, bills, and reimbursements via dedicated document endpoints, so you can attach PDFs or images directly to the underlying GL line item.

Does the integration support multi-entity companies?

Yes. Rillet is designed for multi-subsidiary setups. You can list subsidiaries and organizations, and tag transactions like invoices, bills, and journal entries with the correct entity for intercompany reporting.

Can external billing systems recognize revenue in Rillet without issuing the invoice?

Yes. When creating an invoice, set the scope to REVENUE_RECOGNITION_ONLY. Your product remains the source of truth for invoice delivery and payment collection while Rillet handles deferred revenue, ARR waterfalls, and GL postings.

How do we prevent duplicate records when syncing contracts or customers?

Rillet resources accept external reference IDs on creation. Persist your internal IDs on the Rillet record so subsequent syncs can look up, update, or skip records deterministically instead of creating duplicates.

Can we read Rillet's pre-computed financial reports directly?

Yes. Rillet exposes trial balances, balance sheets, income statements, cash flow statements, executive P&Ls, journal entry reports, and ARR waterfalls as first-class endpoints, so you don't have to derive them from raw ledger data.

Rillet

Get Rillet integrated into your app

Our team understands what it takes to make a Rillet integration successful. A short, crisp 30 minute call with folks who understand the problem.