Loopfour
IntegrationsAccounting

Rillet

Modern ERP for invoices, contracts, revenue, and the general ledger

Rillet

Connect to Rillet for accounting and ERP automation -- customers, invoices, contracts, usage records, bills, credit memos, journal entries, and the general ledger. Rillet is a modern, AI-native ERP built for finance teams.

The Rillet block currently surfaces only the Send Email action in the Studio dropdown. The additional operations below are available through the rillet.<operation> dispatch layer (used by programmatic and API-defined workflows) but are not yet exposed as Studio dropdown options. Field tables reflect the executor requirements, not a Studio form.

Prerequisites

  • Rillet account
  • Rillet API key (RILLET_API_KEY) or apiKey passed in step config
  • Optional RILLET_BASE_URL (defaults to the Rillet sandbox)

Authentication

Rillet uses direct HTTP with an API key (not Nango). Set the RILLET_API_KEY environment variable or pass apiKey in the step config. POST requests automatically include an idempotency key.

Available Operations

Operations are invoked as rillet.<operation>. List operations are paginated (cursor-based).

Customers

OperationDescription
listCustomersList customers (paginated)
getCustomerGet a customer by customerId
createCustomerCreate a customer
updateCustomerUpdate a customer by customerId
setupCustomerAutoPaymentConfigure auto-payment for a customer
getCustomerPaymentMethodGet a customer's payment method
{
  "type": "action",
  "action": "rillet.createCustomer",
  "config": {
    "name": "{{input.companyName}}",
    "email": "{{input.email}}"
  }
}

Invoices

OperationDescription
listInvoicesList invoices (paginated)
getInvoiceGet an invoice by invoiceId
createInvoiceCreate an invoice
addInvoiceTaxAdd tax to an invoice
updateInvoiceSentStatusUpdate an invoice's sent status
{
  "type": "action",
  "action": "rillet.createInvoice",
  "config": {
    "customerId": "{{input.customerId}}",
    "lineItems": [
      { "description": "Subscription", "quantity": 1, "unitAmount": "{{input.amount}}" }
    ]
  }
}

Invoice Payments

OperationDescription
listInvoicePaymentsList invoice payments (paginated)
createInvoicePaymentRecord an invoice payment

Products

OperationDescription
listProductsList products (paginated)
getProductGet a product by productId
createProductCreate a product

Contracts

OperationDescription
listContractsList contracts (paginated)
getContractGet a contract by contractId
createContractCreate a contract
amendContractAmend a contract
endContractEnd a contract

Contract Item Usage

OperationDescription
upsertContractItemUsageUpsert usage records for a contract item
listContractItemUsageRecordsList usage records for a contract item
deleteContractItemUsageRecordDelete a usage record
{
  "type": "action",
  "action": "rillet.upsertContractItemUsage",
  "config": {
    "contractItemId": "{{input.contractItemId}}",
    "usageRecords": [
      { "date": "{{input.date}}", "quantity": "{{input.units}}" }
    ]
  }
}

Bills

OperationDescription
listBillsList bills (paginated)
getBillGet a bill by billId
createBillCreate a bill
uploadBillDocumentUpload a document to a bill

Credit Memos

OperationDescription
listCreditMemosList credit memos (paginated)
getCreditMemoGet a credit memo by creditMemoId
createCreditMemoCreate a credit memo
addCreditMemoTaxAdd tax to a credit memo

Vendors

OperationDescription
listVendorsList vendors (paginated)
getVendorGet a vendor by vendorId
createVendorCreate a vendor

General Ledger

OperationDescription
listJournalEntriesList journal entries (paginated)
getJournalEntryGet a journal entry
createJournalEntryCreate a journal entry
listAccountsList the chart of accounts
listBankAccounts / getBankAccountBank accounts
listCharges / getChargeCharges
listReimbursements / getReimbursementReimbursements
listSubsidiaries / getSubsidiarySubsidiaries

Custom Fields & Utility

OperationDescription
listFields / createField / updateFieldManage custom fields
getApiKeyInfoGet info about the current API key
healthCheckCheck API connectivity

Example Workflow

Create a Rillet invoice when a Stripe invoice is paid:

{
  "name": "Sync Invoice to Rillet",
  "trigger": {
    "type": "webhook",
    "provider": "stripe",
    "events": ["invoice.paid"]
  },
  "steps": [
    {
      "id": "create-rillet-invoice",
      "type": "action",
      "action": "rillet.createInvoice",
      "config": {
        "customerId": "{{input.data.object.customer}}",
        "currency": "{{input.data.object.currency}}",
        "lineItems": [
          {
            "description": "Subscription",
            "quantity": 1,
            "unitAmount": "{{input.data.object.amount_paid | divided_by: 100}}"
          }
        ]
      }
    }
  ]
}

Troubleshooting

ErrorCauseSolution
Rillet API key not foundNo API keySet RILLET_API_KEY or pass apiKey in step config
customerId is requiredMissing required IDProvide the required ID field for the operation
Rillet API error (4xx)Bad request/authCheck the API key, base URL, and request payload

Next Steps

On this page