Balanced before it is written
Every request is validated at the API boundary. If total debits and credits do not match, the journal never reaches the ledger.
Journal API
Turn product events into balanced debits and credits over REST. Paprel validates every entry, keeps it tied to your source record, and preserves the accounting history your finance team needs.
curl -X POST https://api-sandbox.paprel.com/v1/accounting/journals \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "content-type: application/json" \
-d '{
"currency": "USD",
"date": "2026-07-13",
"description": "Marketplace order settled",
"reference": "ORDER-1042",
"posted": true,
"lines": [
{ "account_code": "1010", "debit": "100.00", "credit": null },
{ "account_code": "4000", "debit": null, "credit": "100.00" }
],
"meta_data": {
"root_entity_type": "order",
"root_entity_id": "ORDER-1042"
}
}'Accounting invariants included
The Journal API owns one concrete task: writing reliable accounting entries. The wider general ledger API adds the chart of accounts and ledger-wide read model around it.
Every request is validated at the API boundary. If total debits and credits do not match, the journal never reaches the ledger.
Store your entity type and external identifier with the journal so a payment, order, invoice, or adjustment remains traceable.
GET returns the current journal plus version_history. Posted history stays readable; void reverses impact without deleting the original record.
Filter entries by date, account, reference, posting state, or identifier, then retrieve the full debit and credit lines.
Journal entry API surface
/v1/accounting/journals/{anchor_id}Read the current journal plus version_history. Pass version to load one earlier version.Where raw journals fit
Use workflow APIs for standard documents. Use direct journals when your product event is the source of truth and the accounting lines are specific to your business model.
Marketplaces
Turn one order into cash, platform revenue, seller payable, fees, and tax lines while retaining the marketplace order id.
Fintech
Translate a settled transfer or card event into the accounting effect your product needs to report and reconcile.
Vertical SaaS
Post journals for industry-specific workflows that do not fit a generic invoice or expense document model.
Follow the five-minute journal guide, then run the complete embedded accounting loop from keys to a live P&L.
Journal API FAQ
Need to evaluate the wider backend? See the accounting engine or compare building versus embedding.
A Journal API lets software create and retrieve the debit and credit entries that make up double-entry accounting. Paprel validates balance, connects entries to source records, and preserves the audit history around changes and voids.
No. Paprel validates that total debits equal total credits before accepting the journal. An unbalanced request is rejected rather than repaired silently.
Use a workflow API when Paprel's invoice, bill, payment, expense, or reconciliation model fits your event. Use the Journal API for custom domain events or migrations where you need direct control of the accounting lines.
Posted journals keep their history: GET returns the current version plus version_history, and earlier versions stay readable. Void a current journal to reverse its financial impact. Draft entries can be updated or deleted within the constraints documented in the API reference.
Use sandbox for developer testing with no billing. When you are ready for real workflows, start production on a monthly plan with a 14-day free trial.