DEVELOPERS

Build on the

Rivane API

A REST API, real-time webhooks, and an MCP server give your team, and your AI agents, programmatic access to the ledger, the close, and everything in between.

Get API access

One API for your entire finance stack

The Rivane platform is API-first. Everything you can do in the product, posting journal entries, reading ledgers, running reconciliations, consolidating entities, is available over a clean REST API. Webhooks push events to your systems the moment they happen, and the MCP server lets AI agents work with your books through governed, auditable tools.

Authentication

Secure your requests with API keys and OAuth. Scope keys per environment and rotate them without downtime.

REST endpoints

Read and write journals, ledgers, entities, and reconciliations through a consistent, resource-oriented REST API.

Webhooks

Subscribe to close events, posting activity, and reconciliation status to keep external systems in sync in real time.

Rate limits

Generous, transparent rate limits with standard headers so you can build resilient integrations that back off gracefully.

SDKs

Official TypeScript and Python SDKs handle auth, pagination, and retries so you can ship integrations faster.

MCP server

Connect AI agents to your books through the Rivane MCP server, expose ledgers and workflows as governed tools.

Endpoints

A resource for every part of the ledger

A representative slice of the REST surface. Every resource follows the same conventions for auth, pagination, and errors.

GET/v1/journal-entriesList posted and draft journal entries with filters and pagination.
POST/v1/journal-entriesPost a new balanced journal entry to a specified entity.
GET/v1/ledgers/:idRead a single ledger, its accounts, and current balances.
POST/v1/reconciliationsKick off a reconciliation run against a statement or subledger.
GET/v1/entitiesList the entities in your consolidation and their metadata.
POST/v1/webhooksRegister a webhook endpoint to receive close and posting events.

Post a journal entry in one request

Example only, not a live endpoint.

POST /v1/journal-entries
curl https://api.rivane.com/v1/journal-entries \
  -H "Authorization: Bearer $RIVANE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "entity_id": "ent_8f2a",
    "memo": "Accrue June SaaS revenue",
    "lines": [
      { "account": "1200", "debit": 24000 },
      { "account": "4000", "credit": 24000 }
    ]
  }'
SDK quickstart, TypeScript
npm install @rivane/sdk

import Rivane from '@rivane/sdk'

const rivane = new Rivane({ apiKey: process.env.RIVANE_API_KEY })

const entry = await rivane.journalEntries.create({
  entityId: 'ent_8f2a',
  memo: 'Accrue June SaaS revenue',
  lines: [
    { account: '1200', debit: 24000 },
    { account: '4000', credit: 24000 },
  ],
})

console.log(entry.id) // je_01hy4k, posted and balanced
Example, install and post your first entry in minutes.

Get API access

Talk to our team about keys, sandbox access, and integration support.

Request a demo