Skip to main content
This page explains the journal entries Hyperline posts behind the scenes for each billing event: the actual debits and credits, and why. It complements the accounting rules (which decide which accounts are used) and the journal entries view (where you browse the posted result).
Your accounting rules decide the exact account each line lands on. The tables below use account names (Accounts receivable, Revenue, Output tax…); the codes depend on the chart of accounts attached to your ledger.

Double-entry basics

Every Hyperline journal entry follows standard double-entry bookkeeping:
  • Each entry balances. Total debits always equal total credits.
  • Amounts are net of tax on revenue lines. Tax is always posted separately to the output tax account when the invoice is issued. This applies regardless of how the revenue itself is recognized.
  • Entries are immutable once posted. Corrections are made with reversing entries (for example a credit note), never by editing or deleting a posted entry.
  • One functional currency per ledger. When an invoice is in a different currency, each line stores both the original-currency amount and the converted ledger amount. See multi-currency.
Throughout this page, each event appears as a small ledger table:

Invoice posted

When an invoice is finalized and emitted, Hyperline posts one entry that recognizes the receivable and the tax liability. It books the revenue either immediately or as deferred revenue, depending on the line item’s revenue recognition method.

Immediate revenue

For a line with no deferral (no recognition rule, or point-in-time recognized on the invoice date), revenue is booked straight away.

Example 💡

A €120 invoice line (€100 net + €20 tax) for a product recognized immediately:

Deferred revenue

For a line recognized over time, by usage (billed in advance), or point-in-time on a future date, the revenue is parked in deferred revenue at issue. It is released later (see revenue recognition).

Discounts

How a discount appears depends on the Discount method, set on the Revenue recognition rule:

Revenue recognition

Deferred revenue is released to revenue over the service period by a recognition schedule. Each recognition entry (called a slice) moves the earned portion out of the liability: The recognition method (over-time schedule, point-in-time recognition date, or usage) drives the timing of these slices. See revenue recognition for how each method spreads the amount.
Tax is not touched at recognition time. It was already posted in full to output tax when the invoice was issued.

Usage-based revenue

Metered products and credit packs are recognized in line with actual consumption. There are two timings, depending on whether the usage is billed in advance or in arrears, and they post differently.

Billed in advance

The customer is invoiced up front (or buys a credit pack), so the amount sits in deferred revenue at issue. Each day, Hyperline releases the share matching that day’s consumption: Any amount left deferred when a credit pack expires is recognized as breakage in a single entry on the expiry date. See usage-based recognition for the consumption and breakage rules.

Billed in arrears

When usage is billed after the period (the invoice is issued at period end for what was already consumed), the revenue is earned before it is invoiced. Recognizing it only at invoicing would understate revenue during the period, so Hyperline accrues it daily against a contract asset (unbilled revenue) instead of deferred revenue. During the period, each day’s consumption is accrued: When the invoice is issued, the already-earned amount is reclassified from the contract asset to the receivable. It is not re-recognized as revenue: If the final invoiced amount differs from what was accrued (late usage, corrections), the difference is trued up against revenue at issue. This way, the contract asset nets to zero and recognized revenue equals the invoiced net. Accrual runs per product and per ledger.

Example 💡

A customer consumes a metered product through May and is invoiced €300 + €60 tax on 31 May. Across May, Hyperline accrues the €300 day by day (debit Unbilled revenue / credit Revenue). On 31 May the invoice reclassifies it:Revenue was recognized across May as it was earned, not in a lump on 31 May.
See revenue recognition → usage billed in arrears for the daily timing and per-product behavior.

Contract-based revenue

On a contract-based subscription, revenue follows the contract rather than each invoice. Nothing is posted when the contract is signed. Recognition and invoicing then meet through two accounts: unbilled revenue holds what was recognized before it was invoiced, and deferred revenue holds what was invoiced before it was recognized. Revenue recognized before it is invoiced accrues to unbilled revenue: When the invoice is issued, it first clears what was already recognized, and parks the rest in deferred revenue: Revenue recognized after it is invoiced is released from deferred revenue, as for any over-time schedule: The contract decides how much is recognized each period. An invoice never trues up revenue. If the term’s invoices add up to more or less than the recognized amount at a given date, the difference waits in deferred or unbilled revenue.

Example 💡

A 2-year contract runs from 1 January 2029 to 31 December 2030. Year 1 is invoiced €6,000 + €1,200 tax on 1 January 2029, and year 2 €12,000 + €2,400 tax on 1 January 2030. Hyperline recognizes the €18,000 evenly: €9,000 per year.During 2029, the first €6,000 recognized drains deferred revenue, and the next €3,000 accrues to unbilled revenue. On 1 January 2030, the year 2 invoice clears it:During 2030, the €9,000 left in deferred revenue is recognized, and both accounts end the contract at zero.
A credit note on a line covered by the contract mirrors the invoice. It reduces deferred revenue first, then increases unbilled revenue for the rest, and never debits revenue: A credit note you create by hand stops there: the contract value doesn’t change, and recognition keeps following the contract. Only a refund credit note issued by a subscription change (a cancellation, an update or a transition) lowers the contract value. What is left to recognize is then spread again from that day. A void reverses the invoice’s entry. When part of what the invoice deferred was already recognized, a second entry moves that part from deferred to unbilled revenue, so the result matches a full credit note. The contract doesn’t change: revenue for the voided period keeps being recognized and accrues to unbilled revenue until the period is invoiced again. When a subscription change leaves the contract below what was already recognized (for example a full refund late in the term), Hyperline takes the difference back from revenue in one entry. Both accounts end the contract at zero:

Invoice settled

When a payment transaction settles, Hyperline clears the receivable against cash. The debit side depends on the payment method:
  • Bank transfer / direct cash → a cash account is debited.
  • Payment provider (card, etc.) → a payment clearing account is debited (the funds are in transit until the provider pays out).

Provider fees

When Stripe deducts a processing fee, the cash received is net of the fee and the fee is booked as an expense. Fees from other providers are not booked:

Refunds

A refund reverses a settlement: cash goes back to the customer and the receivable (or a credit) is restored. The legs mirror the settlement entry, debit and credit swapped.

Credit notes

A credit note reverses an invoice, posting to the same accounts that were used when the invoice was issued. The revenue (or remaining deferred revenue) and the output tax are reversed; the offsetting side depends on whether the invoice received any payment:
  • No payment received → the receivable is reduced (the customer owes less). Any excess goes to customer credits.
  • Any payment received (paid or partially paid) → the full credit goes to a customer credit liability (the value is owed back to the customer). This applies even if part of the invoice is still unpaid.

Example 💡

A €120 credit note (€100 net + €20 tax) against an unpaid invoice whose revenue was recognized immediately:Had the invoice been paid, the €120 credit would land on Customer credits instead of Accounts receivable.
If the original line still had deferred revenue (not yet fully recognized), the credit note reverses the remaining balance from the deferred revenue account rather than from revenue. This way, it only claws back what was actually recognized.

Multi-currency and FX

Each ledger keeps its books in a single functional currency. When an invoice or payment is in another currency, every journal entry line stores:
  • the original-currency amount (as billed), and
  • the ledger-currency amount (converted), plus the exchange rate and rate date used.
The rate is captured at the time of the event (invoice emission date, payment date) and frozen on the entry, so historical entries are never re-translated when rates later move. The same rate is used across an event’s related entries. For example, accrued usage is accrued, reclassified, and trued up at one consistent per-ledger rate so the contract asset nets cleanly. On a contract-based schedule, revenue recognized from deferred revenue is measured at the rate it was invoiced at, so deferred revenue drains to exactly zero.

Bad debt

Configure the uncollectible debit account in your accounting rules. Select an asset account to reclassify the outstanding amount as a doubtful receivable, or an expense account for a direct write-off. Hyperline’s default rules use Bad Debt Expense. When you mark an invoice uncollectible, Hyperline posts a journal entry dated on that status change. It clears only the outstanding Accounts receivable balance, so previous partial payments remain settled. For invoices with revenue recognition, Hyperline recognizes revenue scheduled through the write-off date, reverses the remaining deferred revenue, and cancels later recognition entries. The balancing amount is normally a debit. In uncommon partial-payment cases where the deferred revenue reversal exceeds the outstanding receivable, Hyperline credits the configured account instead. On a contract-based subscription, the write-off expenses the outstanding receivable of its contract lines as bad debt in full. Deferred revenue stays in place, and the contract keeps recognizing what the invoice billed. On a cancelled contract, this needs a manual correction: see edge cases and limitations.
This journal entry writes off the receivable. It does not refund or reverse a settled payment through the payment provider.
Is something still unclear? Don’t hesitate to reach out to our team via the in-app chat if you need additional support.