Post Your First Journal in 5 Minutes
This is the shortest path from zero to a real double-entry entry in the ledger. No SDK, no setup — just an access token and one API call. If you only do one thing to evaluate Paprel, do this.
You need: a terminal with curl, and sandbox keys (self-serve, no sales call).
1. Get sandbox keys (1 min)
Create a developer account and grab a sandbox token at sandbox.paprel.com. The sandbox is an isolated tenant with real OpenAPI clients and real signed events — the same wire format as production, so anything you build here promotes by swapping a token.
Export it so the next commands stay clean:
export ACCESS_TOKEN="<your sandbox token>"
export PAPREL_API_BASE="https://api-sandbox.paprel.com"
2. Post a balanced journal (2 min)
A journal is a set of lines whose debits and credits must balance before it ever reaches the ledger. Here we record $100 of revenue — debit Cash (1010), credit Revenue (4000):
curl "$PAPREL_API_BASE/v1/accounting/journals" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "content-type: application/json" \
-d '{
"currency": "USD",
"date": "2026-06-27",
"description": "First journal",
"lines": [
{ "account_code": "1010", "debit": "100.00" },
{ "account_code": "4000", "credit": "100.00" }
],
"posted": true
}'
You get back the created journal with an id, an identifier, and is_posted: true. If debits and credits don't balance, the API rejects it — the ledger never drifts.
3. Read it back (1 min)
Confirm the entry is in the ledger of record:
curl "$PAPREL_API_BASE/v1/accounting/journals" \
-H "authorization: Bearer $ACCESS_TOKEN"
Your journal is there, immutable and auditable. That's the whole loop: product event → balanced journal → system of record you can report on.
What just happened
- You posted a GAAP-grade double-entry entry over plain REST.
- It was validated before it hit the ledger — unbalanced entries are rejected, not silently corrected.
- It's now part of an append-only, exportable audit trail.
Next steps
- Go deeper: Build Embedded Accounting in 20 Minutes — company, chart of accounts, invoicing, payments, and a live P&L.
- Browse the surface: the API reference documents all 159 endpoints.
- Production signing: production requests add an
x-data-signatureheader — see authentication & tokens. - Ship faster: use the TypeScript SDK instead of raw
curl(see the SDK README in the repo).