# PanoQore - [Introduction](https://docs.panoqore.com/introduction.md): A multi-tenant, double-entry ledger for fintech products. - [Quickstart](https://docs.panoqore.com/quickstart.md): Open two accounts, post an entry and read the balance. - [Environments](https://docs.panoqore.com/environments.md): Live and sandbox tenants, and test keys. - [Authentication](https://docs.panoqore.com/authentication.md): API keys, scopes and what a key can reach. - [Idempotency](https://docs.panoqore.com/idempotency.md): Retry a write safely. - [Errors](https://docs.panoqore.com/errors.md): The error envelope and every code an API key can meet. - [Pagination](https://docs.panoqore.com/pagination.md): Walk a list with a cursor. - [Money and data formats](https://docs.panoqore.com/money.md): Minor units, strings, ids and zero values. - [SDKs](https://docs.panoqore.com/sdks.md): The TypeScript and Go clients. - [Ledgers and accounts](https://docs.panoqore.com/concepts/ledgers-and-accounts.md): How the chart of accounts is laid out, and what an account code means. - [Entries](https://docs.panoqore.com/concepts/entries.md): Balanced postings, pending entries and reversals. - [Holds](https://docs.panoqore.com/concepts/holds.md): Reserve money before you know where it goes. - [Periods](https://docs.panoqore.com/concepts/periods.md): Accounting months, closing and late postings. - [Approvals](https://docs.panoqore.com/concepts/approvals.md): Maker-checker, and what your product can see of it. - [Lending](https://docs.panoqore.com/guides/lending.md): Turn loan events into balanced entries. - [Fees](https://docs.panoqore.com/guides/fees.md): Charge a schedule on the entries that name it. - [Named accounts and inbound credits](https://docs.panoqore.com/guides/named-accounts.md): Bind a partner's account number to a wallet, and record what arrives. - [FX](https://docs.panoqore.com/guides/fx.md): Rates, quotes and conversions. - [Reconciliation and statements](https://docs.panoqore.com/guides/reconciliation.md): Match partner statements, work breaks and export statements. - [Webhooks](https://docs.panoqore.com/guides/webhooks.md): Receive events, and verify their signature. - [API reference](https://docs.panoqore.com/api-reference/overview.md): Every operation an API key can call. - [List accounts](https://docs.panoqore.com/api-reference/accounts/list-accounts.md): **Scope:** any one of `read`, `entries:write`. - [Create an account](https://docs.panoqore.com/api-reference/accounts/create-an-account.md): The type, normal side and category follow from the code. A customer wallet's code has the group `WAL`. - [Get an account](https://docs.panoqore.com/api-reference/accounts/get-an-account.md): **Scope:** any one of `read`, `entries:write`. - [Get an account's balance](https://docs.panoqore.com/api-reference/accounts/get-an-accounts-balance.md): Always the balance now. `available` is what can be spent: posted, less pending debits, plus any overdraft limit. - [List an account's postings](https://docs.panoqore.com/api-reference/accounts/list-an-accounts-postings.md): **Scope:** any one of `read`, `entries:write`. - [List entries](https://docs.panoqore.com/api-reference/entries/list-entries.md): **Scope:** any one of `read`, `entries:write`. - [Post an entry](https://docs.panoqore.com/api-reference/entries/post-an-entry.md): Debits must equal credits in each currency. Set `feeSchedule` to charge a fee; without it no fee is added. - [Post a linked batch of entries](https://docs.panoqore.com/api-reference/entries/post-a-linked-batch-of-entries.md): Linked batch: all entries commit or none do. - [Get an entry](https://docs.panoqore.com/api-reference/entries/get-an-entry.md): **Scope:** any one of `read`, `entries:write`. - [Post a pending entry](https://docs.panoqore.com/api-reference/entries/post-a-pending-entry.md): **Scope:** `entries:write`. - [Void a pending entry](https://docs.panoqore.com/api-reference/entries/void-a-pending-entry.md): **Scope:** `entries:write`. - [Reverse an entry](https://docs.panoqore.com/api-reference/entries/reverse-an-entry.md): API keys with entries:write reverse directly; people get an approval (APPROVAL_REQUIRED carries its id). - [List holds](https://docs.panoqore.com/api-reference/holds/list-holds.md): **Scope:** any one of `read`, `holds:write`, `entries:write`. - [Create a hold](https://docs.panoqore.com/api-reference/holds/create-a-hold.md): **Scope:** `holds:write`. - [Get a hold](https://docs.panoqore.com/api-reference/holds/get-a-hold.md): **Scope:** any one of `read`, `holds:write`. - [Capture a hold](https://docs.panoqore.com/api-reference/holds/capture-a-hold.md): Omit `amount` to capture all that is still held. What is not captured stays held. A hold protecting a pending entry cannot be captured here: post the entry instead. - [Release a hold](https://docs.panoqore.com/api-reference/holds/release-a-hold.md): A hold protecting a pending entry cannot be released here: void the entry instead. - [List loans](https://docs.panoqore.com/api-reference/lending/list-loans.md): `status` is `OPEN` while something is owed and `CLEARED` when nothing is, which includes a loan written off. - [Open a loan](https://docs.panoqore.com/api-reference/lending/open-a-loan.md): Opens the loan's principal and accrued interest accounts. Needs the Lending module. - [Get a loan](https://docs.panoqore.com/api-reference/lending/get-a-loan.md): `loan_ref` is the reference the loan was opened with. `status` is `OPEN` while something is owed and `CLEARED` when nothing is, which includes a loan not yet drawn, repaid or written off. - [Get the loan book](https://docs.panoqore.com/api-reference/lending/get-the-loan-book.md): Totals per currency: outstanding principal and interest, and the loss allowance by stage. - [Record a loan event](https://docs.panoqore.com/api-reference/lending/record-a-loan-event.md): Records one loan event. A key with entries:write posts at once; a person's request goes to approval. A write-off always goes to approval, and only a person can approve it. - [List fee schedules](https://docs.panoqore.com/api-reference/fees/list-fee-schedules.md): **Scope:** any one of `read`, `entries:write`. - [Preview a fee](https://docs.panoqore.com/api-reference/fees/preview-a-fee.md): What a schedule would charge on an amount, without posting anything. - [List rates](https://docs.panoqore.com/api-reference/fx/list-rates.md): **Scope:** `read`. - [Get a quote](https://docs.panoqore.com/api-reference/fx/get-a-quote.md): Give `baseAmount`. `quoteAmount` is not read yet. The price is held for 60 seconds, and a quote can be used once. - [Convert between currencies](https://docs.panoqore.com/api-reference/fx/convert-between-currencies.md): One balanced entry through the tenant's FX position accounts. QUOTE_EXPIRED past the TTL. - [Bind a named account](https://docs.panoqore.com/api-reference/named-accounts/bind-a-named-account.md): The tenant supplies a number it opened with its partner. In FULL mode PanoQore first checks with the partner that the number is an open account under the tenant's credentials, and takes the name from it. - [Get a named account](https://docs.panoqore.com/api-reference/named-accounts/get-a-named-account.md): **Scope:** any one of `read`, `entries:write`. - [List named accounts](https://docs.panoqore.com/api-reference/named-accounts/list-named-accounts.md): **Scope:** any one of `read`, `entries:write`. - [Find a named account by number](https://docs.panoqore.com/api-reference/named-accounts/find-a-named-account-by-number.md): Used by adapters and support tooling. A closed binding never resolves. - [List a named account's inbound credits](https://docs.panoqore.com/api-reference/named-accounts/list-a-named-accounts-inbound-credits.md): **Scope:** any one of `read`, `entries:write`. - [Record an inbound credit](https://docs.panoqore.com/api-reference/named-accounts/record-an-inbound-credit.md): A credit the partner reports to one of its account numbers. Used by a ledger-only tenant's own code and by PanoQore's partner adapters alike. It is idempotent on the partner's transaction id: a replayed notification answers DUPLICATE and credits nothing. A number with no active binding is never cred… - [List statements](https://docs.panoqore.com/api-reference/reconciliation/list-statements.md): **Scope:** any one of `read`, `entries:write`. - [Send a partner statement](https://docs.panoqore.com/api-reference/reconciliation/send-a-partner-statement.md): CSV or JSON lines, uploaded by a ledger-only tenant or pulled by an adapter. Idempotent on statement id. - [Match a statement again](https://docs.panoqore.com/api-reference/reconciliation/match-a-statement-again.md): **Scope:** `recon:write`. - [List breaks](https://docs.panoqore.com/api-reference/reconciliation/list-breaks.md): **Scope:** any one of `read`, `entries:write`. - [Get a break](https://docs.panoqore.com/api-reference/reconciliation/get-a-break.md): **Scope:** any one of `read`, `entries:write`. - [Get the control equation](https://docs.panoqore.com/api-reference/reconciliation/get-the-control-equation.md): The daily control per partner and currency: partner statement balance = settlement account = bound customer accounts + suspense. - [List periods](https://docs.panoqore.com/api-reference/reporting/list-periods.md): **Scope:** any one of `read`, `entries:write`. - [List exports](https://docs.panoqore.com/api-reference/reporting/list-exports.md): **Scope:** any one of `read`, `entries:write`. - [Request an export](https://docs.panoqore.com/api-reference/reporting/request-an-export.md): Made at once, so the answer's `status` is `READY`. `format` is `CSV` unless you ask for `PDF` on an account statement. - [Get an export's download link](https://docs.panoqore.com/api-reference/reporting/get-an-exports-download-link.md): A short-lived signed URL. Every download is an audit event. - [Get a trial balance](https://docs.panoqore.com/api-reference/reporting/get-a-trial-balance.md): **Scope:** any one of `read`, `entries:write`. - [List approvals](https://docs.panoqore.com/api-reference/approvals/list-approvals.md): **Scope:** `read`. - [Get an approval](https://docs.panoqore.com/api-reference/approvals/get-an-approval.md): **Scope:** `read`. - [List webhook endpoints](https://docs.panoqore.com/api-reference/webhooks/list-webhook-endpoints.md): **Scope:** any one of `read`, `webhooks:manage`. - [Create a webhook endpoint](https://docs.panoqore.com/api-reference/webhooks/create-a-webhook-endpoint.md): A signed test event is sent first; the endpoint is saved only if it answers 2xx. - [Reveal a signing secret](https://docs.panoqore.com/api-reference/webhooks/reveal-a-signing-secret.md): Written to the audit log each time. - [Send a test event](https://docs.panoqore.com/api-reference/webhooks/send-a-test-event.md): **Scope:** `webhooks:manage`. - [Replay an endpoint's failed deliveries](https://docs.panoqore.com/api-reference/webhooks/replay-an-endpoints-failed-deliveries.md): Put an endpoint's failed deliveries back in the queue. - [Replay an event](https://docs.panoqore.com/api-reference/webhooks/replay-an-event.md): Put one event's failed deliveries back in the queue, at every endpoint it failed at. - [Delete a webhook endpoint](https://docs.panoqore.com/api-reference/webhooks/delete-a-webhook-endpoint.md): **Scope:** `webhooks:manage`. - [List events](https://docs.panoqore.com/api-reference/events/list-events.md): **Scope:** `read`. - [Get a tenant](https://docs.panoqore.com/api-reference/tenant/get-a-tenant.md): **Scope:** any one of `read`, `entries:write`. - [List partners](https://docs.panoqore.com/api-reference/tenant/list-partners.md): **Scope:** any one of `read`, `entries:write`. - [List connectors](https://docs.panoqore.com/api-reference/tenant/list-connectors.md): The connector catalog, with what this tenant is connected to. - [Get a connector](https://docs.panoqore.com/api-reference/tenant/get-a-connector.md): **Scope:** `read`. - [List connections](https://docs.panoqore.com/api-reference/tenant/list-connections.md): Where money enters or leaves the tenant, and how each connection is doing. - [List ledgers](https://docs.panoqore.com/api-reference/chart-of-accounts/list-ledgers.md): **Scope:** any one of `read`, `entries:write`. - [List modules](https://docs.panoqore.com/api-reference/chart-of-accounts/list-modules.md): **Scope:** any one of `read`, `entries:write`. - [List internal accounts](https://docs.panoqore.com/api-reference/chart-of-accounts/list-internal-accounts.md): **Scope:** any one of `read`, `entries:write`. - [Get the current credential](https://docs.panoqore.com/api-reference/identity/get-the-current-credential.md): **Scope:** any valid credential. ## OpenAPI Specs - [openapi](/openapi.json) ## Optional - [Dashboard](https://console.panoqore.example) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.