Accounting API Reference
OpenAPI 3.1, authentication, webhooks, and MCP. Post a first journal in the sandbox, then browse the live spec.
First journal in five minutes
Three steps from zero to a balanced journal in the sandbox ledger. No billing, no sales call.
- 01
Get sandbox credentials
Self-serve signup. Your workspace issues a client_id and client_secret — exchange them for an access token (OAuth 2.0).
- 02
Post a balanced journal
Debits must equal credits or the API rejects the entry before it reaches the ledger.
- 03
Read it back
The journal is live in the general ledger, trial balance, and reports immediately.
Want the five-minute walkthrough with a copy-paste curl? Open the five-minute guide
Want the twenty-minute loop with invoices and payments? Build embedded accounting in 20 minutes
Write authentication: API-credential writes also send x-data-signature. App Connect writes use x-partner-domain instead. See the complete contract.
export PAPREL_API_BASE="https://api-sandbox.paprel.com"
export ACCESS_TOKEN="..."
curl "$PAPREL_API_BASE/v1/accounting/journals" \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN' \
--header 'x-data-signature: $DATA_SIGNATURE' \
--data '{
"currency": "USD",
"date": "2026-06-11",
"description": "Initial journal",
"lines": [
{ "account_code": "1010", "debit": "100.00", "credit": null },
{ "account_code": "4000", "debit": null, "credit": "100.00" }
],
"posted": true,
"reference": "INIT-001"
}'{
"data": {
"journal": {
"id": "journal_...",
"identifier": "JRN-2026-0001",
"currency": "USD",
"is_posted": true,
"is_locked": false
}
}
}- Environment
- Sandbox
- API version
- v1.1.0
- OpenAPI
- 3.1.0
- Authentication
- OAuth 2.0
api-sandbox.paprel.com
Current contract
JSON download
Tenant-scoped bearer tokens
260 operations across the accounting lifecycle
One OpenAPI 3.1 spec (v1.1.0) covers the ledger, receivables, payables, and the platform controls around them. Use the spec to generate SDKs in any language, browse the interactive reference below, or jump to what you need.
Accounting core
Journals · Accounts · Reconciliations · Transactions
Post balanced double-entry journals, manage the chart of accounts, and reconcile against the ledger of record.
02Receivables
Invoices · Quotes · Credit Notes · Clients · Late Fees
Bill customers, issue estimates and adjustments, and keep AR linked to the same books.
03Payables
Bills · Purchase Orders · Vendors · Expenses
Record vendor bills, authorize procurement, and track what you owe end to end.
04Catalog & delivery
Items · Projects · Tax
Manage the product/service catalog, project and timesheet billing, and tax configuration.
05Company & platform
Stripe Connect · Payment Gateways · SMTP · Currencies · Connections
Configure payments, email, multi-currency, and per-tenant settings.
06Access & audit
Roles & Permissions · Activity · System Settings
Scope access with RBAC and keep a high-fidelity, exportable record of every system interaction.
Five-minute guide
Post your first journal
Sandbox keys, an access token, and one balanced POST. The shortest proof the ledger is real.
Open the five-minute guideAuthentication
Exchange credentials for a token
Client credentials, access tokens, and how to generate x-data-signature on writes. The curl sample uses $ACCESS_TOKEN, not the client secret.
Open the authentication guideJournal API
Understand the journal entry lifecycle
See how Paprel validates, connects, queries, updates, and voids double-entry journals before working through the endpoint reference.
Explore the Journal APIGeneral ledger API
Place journals inside the ledger model
Understand the chart of accounts, append-only posting guarantees, source-entity links, and ledger-wide read surface.
Explore the general ledger APISee how these surfaces connect to payments, banks, email, and AI agents on the integrations page.
Evaluate in sandbox
Post a journal before you commit a design
Self-serve keys, no billing. The five-minute guide is the shortest proof; the OpenAPI spec on this page is the contract.