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 usUse Cases
Why integrate with Rillet
Common scenarios for SaaS companies building Rillet integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Rillet in under an hour. No boilerplate, no maintenance burden.
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.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call 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.
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.
From the Blog
Rillet integration guides
Deep dives, architecture guides, and practical tutorials for building Rillet integrations.
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.