ERPNext deferred revenue and deferred expense recognition

How to recognize annual support, subscriptions and prepaid costs over their service periods in ERPNext, which settings and checks make the monthly entries correct, and what to confirm before go-live.

On this page

How ERPNext defers revenue and expenses across service periods

A twelve-month support contract or prepaid license is usually invoiced in full, but the revenue or cost is earned month by month. ERPNext can post the full amount to a deferred account and release it across the service period, and the setup decides whether those monthly entries are right. The documented mechanism has three parts: a deferred account set on the item (or on the invoice line), service start and end dates on the invoice line, and automatic monthly booking, with a deferred accounting run that processes any entries not yet posted. Confirm the exact field names, where the deferred accounts are configured, and whether the run is scheduled or manual in your ERPNext version, because these details have changed across releases.

Use deferral when a single invoice or bill covers several months of service, when subscriptions are billed in advance, or when a prepaid cost such as insurance or software must be expensed over the period it benefits. A simple invoice is enough when the service is delivered on the invoice date, when the amount is immaterial to the period close, or when the customer pays and receives the service within the same month. Finance leads should agree this policy with their auditors before the first invoice is configured, since it determines which items carry deferred accounts and which do not.

Test the setup with one contract before rolling it out. Create a sample invoice with a known start and end date (illustrative: an annual license starting on the first day of a quarter), submit it, then check the deferred balance and the monthly release entries against the expected schedule. Confirm how the run handles partial months, cancelled invoices and credit notes, and who is responsible for running it at each close. Review the ERPNext documentation and your own release notes for the current behavior before you rely on it in production.

Deferral options by item type and when each fits

This table compares the four ways to set up deferral in ERPNext: deferred revenue on sales invoices, deferred expense on purchase invoices, a deferred account per item group, and a deferred account per item, plus manual journal entries for irregular schedules. Read each row for the accounting result, the master data it needs and the typical fit. The main takeaway is that the right choice depends on how many items recur and how often their schedules change, so confirm account types and posting behavior against your ERPNext version before building.

OptionAccounting outcomeMaster data neededTypical fit
Deferred revenue on sales invoicesInvoice posts to a deferred revenue liability, then releases to income across the service periodDeferred revenue account of the correct type, deferred flag and term on the item, service start and end dates on each lineAnnual support and subscriptions billed in advance for a limited number of items
Deferred expense on purchase invoicesSupplier invoice posts to a prepaid expense asset, then releases to expense across the service periodDeferred expense account of the correct type, deferred flag and term on the item, service start and end dates on each linePrepaid licenses, hosting and maintenance contracts received from suppliers
Deferred account per item groupItems in a group share one deferred account, so balances roll up for reporting and reconciliationGroup-level deferred account set in item group defaults, consistent item grouping by product familyMany recurring items with the same billing and recognition pattern
Deferred account per itemEach item carries its own deferred account, giving item-level balances and tighter audit trailsDeferred account set on each item master, maintained as the catalog changesA small catalog of recurring items or items with distinct recognition rules
Manual journal entries for irregular schedulesRecognition is posted by hand, so timing and amounts follow the contract rather than a generated scheduleReference to the contract, a recognition calendar kept outside the item setup, and reviewer sign-offOne-off services, milestone payments or contracts whose terms change often
Recognition schedule changes mid-termChanging dates or amounts on posted schedules can require reversal and re-posting, so accounting effect must be checkedClear rules on who may amend service dates and how amendments are documentedContracts with frequent renewals, upgrades or cancellations

Setting up deferred accounts and service periods in ERPNext

This sequence configures the deferred accounts, item-level service rules and test scenarios that let ERPNext spread annual support, subscriptions and prepaid costs across the months they cover. Each step ends with a check the finance team can run before the process goes live.

  1. Confirm deferred accounts exist with the right types

    The finance lead and the ERPNext administrator review the chart of accounts and confirm that a deferred revenue liability account and a deferred expense asset account exist for each company that will recognize revenue or costs over time. Each account should carry the account type and root type your accounting policy requires, and the accounts should belong to the correct company. Confirm these choices with your auditors and accountants, since the account structure drives how the balances appear in financial statements. Done means the account list shows both accounts per company, and the finance team has signed off the naming and types in writing.

  2. Assign deferred accounts to relevant items

    The item owner opens each service, subscription and prepaid cost item that should be deferred and sets the deferred revenue account or deferred expense account on the item's accounting settings, along with the number of months the recognition should cover where that option is used. Items that are sold once and recognized immediately should stay without deferral settings. Check the item list against the product catalog so no recurring service is missed. Done means a filtered item report shows every deferrable item with its account set, and any exceptions are documented with a reason.

  3. Define service start and end date rules

    The finance lead and the sales operations lead agree on how service start and end dates are set on each invoice line and purchase line, including whether the start date follows the invoice date, the delivery date or a contract date. They also decide how partial months are handled and who may override the dates. Write these rules down so that transactions entered by different users follow the same logic. Done means the written rule set is approved and each deferrable item has a default that matches the rule.

  4. Test one annual invoice in staging

    The ERPNext administrator creates a test copy of the production site, or uses a staging site with matching settings, and submits one annual sales invoice and one annual purchase invoice for a deferrable item with a 12-month service period. Use an illustrative amount and a date that falls in the middle of a month so that partial-month handling is exercised. Confirm that the invoice posts to the deferred account first, not directly to income or expense. Done means the test invoice shows the deferred posting in the general ledger and the staging team records the result for review.

  5. Check the generated schedule and monthly postings

    The finance analyst opens the deferred revenue or expense schedule created for the test invoice and compares each row against the expected service months. The total of the scheduled amounts should equal the invoice value, each month's amount should match the service days or months agreed in the rule set, and the posting dates should fall on the intended booking dates. Open a sample of the monthly journal entries to confirm the debit and credit accounts. Done means the schedule totals match the invoice, every row has a posting date, and the sample journal entries use the deferred and income or expense accounts defined in step one.

  6. Run the deferred accounting process for a closed period

    The accountant runs the deferred accounting process for a period that has already been closed in a test or parallel environment, so the results can be checked without changing live books. Confirm that the process books only the scheduled amounts for that period and does not repost periods that were already recognized. Record the run, the user who started it and the entries it created. Done means the process completes without errors, the entries match the schedule for that period, and the run log is saved for the audit trail.

  7. Reconcile the deferred balance to the schedule

    The finance lead compares the closing balance of each deferred account with the total of unexpired service months across all active schedules. For each open schedule, the unexpired amount should equal the invoice value less the amounts already recognized, and the sum across schedules should equal the account balance. Investigate any difference before go-live, including schedules that were cancelled, partially credited or created with wrong dates. Done means the account balance and the schedule totals agree to the currency unit, and the reconciliation is signed off and stored with the close checklist.

Revenue or expense: which side of the deferral to configure first

When customers pay before you deliver, such as annual support, subscriptions or deposits, the amount is first held as a liability (deferred revenue) and released to income as the service runs. In ERPNext this starts with a sales invoice or advance payment that credits a deferred revenue account, with the service start and end dates on the invoice lines driving the monthly schedule. Deposits that are refundable or tied to a contract condition may need a different treatment from earned service fees.

  • Accounts involved: a deferred revenue liability account on the item or invoice, the income account that receives each released amount, and the receivable or bank account that the payment hits first.
  • Document where the schedule starts: the submitted sales invoice line with service start and end dates, or the advance payment linked to it.
  • Typical controller question: does each released month match the service period delivered, and does the deferred balance reconcile to the unexpired contract value?
  • Confirm before go-live: with your auditor, the point at which revenue is recognized for each contract type and how deposits are classified; with your tax adviser, the timing of tax on advance payments in each jurisdiction.

Check a few sample contracts end to end, from invoice to the final released month, before enabling the process for all customers.

Mistakes that misstate deferred balances

Deferred schedules are only as accurate as the setup behind them. The mistakes below share one pattern: a wrong account, date, document state, period or company is accepted at submission and surfaces weeks later as a balance that does not roll off correctly. Each card names the symptom to look for, the cause, and the check to run before the close.

Deferred accounts missing or wrong on items

When an item has no deferred revenue or deferred expense account, or the account is of the wrong type, the invoice lines are either not deferred or are booked to an account that the schedule cannot reverse cleanly. The symptom is revenue or expense recognized on the invoice date, with the deferred liability or prepaid asset never building up on the balance sheet. Before close, review every item flagged for deferral and confirm the linked account is a balance sheet account of the intended type in the same company.

Service dates blank or outside the invoice

Deferral needs a service start and end date on each line. If those dates are blank, or fall outside the period covered by the invoice, the schedule spreads the amount over the wrong months or not at all. The symptom is a deferred balance that never reaches zero or recognizes a full annual amount in one month. Before close, filter submitted invoices with deferral enabled and check that each service period matches the contract and sits within the posting window.

Invoices amended after schedules ran

Cancelling or amending a deferred invoice after its monthly entries have posted leaves those entries in place unless the schedule is also reversed. The symptom is recognized revenue or expense that refers to a cancelled source document, or a deferred balance that differs from the open contract value. Before close, list the deferred schedules linked to cancelled or amended invoices and confirm each one has been reversed or reissued, with the journal entries traceable to the current document.

Schedules created in a closed period

A deferred schedule created for a month that is already closed can post into a locked period, fail silently in a batch run, or be pushed into the next period by hand. The symptom is a deferred balance in the current period that disagrees with the closed statements, or entries that appear after the period was signed off. Before close, check the accounting period and frozen date settings, then confirm that no schedule has a posting date inside a closed period.

Entries posted in the wrong company or currency

A deferred invoice raised under the wrong company, or in a currency different from the one the contract was priced in, puts recognition in the wrong ledger or at the wrong exchange rate. The symptom is a deferred balance that sits in one entity while the contract belongs to another, or a foreign-currency balance that does not revalue at month end. Before close, confirm the company and currency on each deferred invoice and schedule against the contract, and review the entries in both company and transaction currency.

Who can create, change and reverse deferred entries

The control question buyers ask is simple to state and harder to answer: which roles can create or edit the deferred schedule, who approves the deferred accounting run, and how a reversal or correction is documented after the fact. In ERPNext these answers come from role permissions on the accounting documents, from the Accounts Settings that govern posting, and from the period lock or frozen date that the month-end process relies on. Start by listing every role that can touch a Journal Entry, a sales or purchase invoice carrying deferred items, and the Process Deferred Accounting tool, then decide which of those roles are allowed to submit, cancel or amend. Map each one to your segregation of duties policy before any user is created, because a role that can both build a schedule and approve its run defeats the purpose of having an approval step.

Period control is the second layer. Once a period is closed, entries dated inside it should not be posted or reversed quietly, and ERPNext offers both an Accounting Period record and a frozen accounts date to block posting. Confirm in your own version how these interact with the deferred accounting run, in particular whether a run dated into a closed period is rejected, and whether users with the frozen-date exemption role can bypass the lock. Decide who holds that exemption, if anyone, and how each use is logged and approved. Ask your implementation partner to demonstrate a blocked posting in a test site before go-live rather than relying on the setting names alone.

Corrections need a documented trail. A cancelled deferred schedule or a reversed revenue entry should carry a reason in the document or a linked note, and the person who prepared the correction should differ from the person who approves it. Confirm which fields ERPNext records on amended and cancelled documents in your version, and whether your audit trail is kept through Version history or a custom field you add for this purpose. Agree the evidence you will retain for each reversal, such as the approver's sign-off and the source document, and confirm with your external auditor which controls they expect to test. DeployOpen can prepare the role matrix, the lock configuration and the evidence checklist, but the assessment of whether these controls meet your obligations stays with your auditors and your own policy owners.

Limits to confirm in your environment

Deferred revenue and expense schedules depend on the ERPNext version, the way the site is hosted and supported, and the volume of entries it must book. Confirm these limits before you design the workflow, because each one changes what you can rely on after go-live.

Version and support window

Confirm the exact ERPNext and Frappe Framework version in use and check its support window before you build anything. Version 14 reached end of life on January 31, 2026, version 15 is planned for support until the end of 2027, and version 16 until the end of 2029. A schedule workflow built on an unsupported version carries a migration cost you will need to plan for.

Workflow behavior in your version

Test the deferred workflow in your exact release rather than relying on general descriptions. Confirm how deferred accounts on items, service start and end dates, and the monthly booking run behave, including what the deferred accounting run posts and when. Minor releases arrive often, so record the version you tested and retest after each upgrade.

Multi-currency and multi-company schedules

Check how schedules behave when invoices are in a foreign currency and when several companies share a site. Confirm which currency and which company receive each monthly entry, how exchange differences are handled between booking dates, and whether deferred accounts can differ by company. These cases are where recognition errors usually surface at period close.

Cancelled and partially credited invoices

Decide how a cancelled invoice, a credit note or a partial refund affects schedules that have already booked some months. Confirm whether unbooked periods reverse automatically, whether booked periods need manual journal entries, and who approves them. Write this rule down before go-live, since auditors will ask how each reversal was supported.

Schedule volume and run timing

Estimate how many deferred schedules and monthly entries the site will create each period, then test the booking run at that volume. Confirm how long the run takes, whether it runs in the background, and what happens if it fails halfway through. Large contract books need a rehearsed run, not a single test invoice.

Frappe Cloud support plan

If warranty coverage from Frappe matters to your organization, confirm that a Frappe Cloud support plan matching your ERPNext version is in place. Frappe's supported versions policy ties warranty coverage to a listed version and a matching plan. Without that check, a defect in deferred booking may fall to your own partner or internal team to resolve.

Questions buyers ask before setting up deferred recognition

Can our finance team configure deferred recognition in ERPNext without a partner?

Yes, a team with accounting knowledge and an administrator who understands ERPNext can configure the core deferred settings, including deferred accounts on items and the process deferred accounting run, on its own. The harder part is usually the policy: deciding which revenue and cost types defer, over which periods, and how service dates are captured on invoices and purchase documents. Teams that want a second pair of hands typically bring in a partner for the design and testing stages, while keeping day-to-day booking in-house. Confirm your own skills against the ERPNext documentation before deciding.

What drives how long deferred recognition setup takes?

The main drivers are the quality of your chart of accounts, the number of item types that need deferral, and how consistently service start and end dates are entered on source documents. A clean chart with clear deferred revenue and deferred expense accounts shortens design work. Each distinct contract pattern, such as annual support billed in advance or multi-year subscriptions with ramped pricing, adds design and test cases. Testing volume matters too, because you need to confirm that monthly bookings reconcile to the underlying contracts for several periods. Ask any provider to show how these factors feed into the timeline in its written scope.

What does the work need from finance and IT?

Finance has to make the accounting policy decisions: which revenue and expense types defer, the recognition pattern for each, and who approves exceptions. Finance should also provide sample contracts, invoices and supplier agreements that show real service periods, plus a month-end close calendar so the booking run fits the existing process. IT needs to provide a staging site that mirrors production settings, access for testing, and a test period long enough to run the deferred accounting process across several months before go-live. Without these inputs, testing tends to stall and the policy gets decided during go-live.

What drives the cost of setting up deferred recognition?

Cost is driven by scope and by the work that surrounds the configuration. The number of item types, the number of companies that need separate deferred accounts, and the amount of historical data that must be corrected all add effort. Integration with billing, a CRM or a subscription tool adds design and testing work if service dates must flow automatically into ERPNext. Data cleanup of existing prepaid balances and open contracts is often the least predictable element. Costs are one-time for design, configuration and testing, while any ongoing finance effort to run the process each month is internal. Ask for a quote that separates these components.

What does a fixed-scope DeployOpen engagement cover for deferred recognition?

A fixed-scope engagement agrees the scope, deliverables and timeline in writing before work starts. For deferred recognition, that typically means reviewing the current accounting process, confirming the deferral policy with your finance team, configuring deferred accounts and item settings, setting up the deferred accounting run, testing against sample contracts in a staging site, and documenting the monthly procedure for your staff. The written scope should name what is excluded, such as unrelated modules or historical restatements. Ongoing support, upgrades and continuous testing are available as separate retainers.

Does ERPNext's built-in deferred functionality cover our policy, or do we need custom work?

ERPNext includes deferred revenue and deferred expense handling tied to item settings and service dates, so many standard policies can be configured without code. Custom work becomes relevant when your policy needs a recognition pattern, allocation basis or approval step that the standard settings do not express, or when deferral must follow a contract structure held in another system. Before deciding, map each policy rule to the standard configuration and mark the gaps. Confirm exact behavior for your ERPNext version against the official documentation and your own test results, since features change between releases.

What should we test before going live with deferred bookings?

Test on a staging site with a copy of your chart of accounts and realistic sample contracts. Check that each deferred item books the expected amount into the deferred account and releases it on schedule, including partial months, mid-period starts and cancellations or credit notes. Confirm that the deferred accounting run posts to the correct periods, that reports tie to the contract schedule, and that user permissions prevent unauthorized changes to deferred settings. Run the process across several period closes before go-live, and keep the test evidence for your auditors and internal control reviews.

How DeployOpen scopes and delivers deferred recognition

DeployOpen plans, implements, customizes, tests and documents ERPNext inside your own infrastructure, including the deferred accounts, service dates and recurring bookings that spread annual support, subscriptions and prepaid costs over time. Engagements start from a written scope that your finance and IT teams agree before build work begins.

How we scope

  • Map each recurring contract, subscription and prepaid cost type to its item, deferred account and recognition period.
  • Agree which service start and end dates come from sales orders, purchase invoices or manual entries, and who owns each.
  • Confirm the written scope, deliverables and timeline with your controller before any configuration starts, with ongoing support available as a retainer.

How we build

  • Configure deferred revenue and deferred expense accounts on items, with the booking logic set up for your company and currency.
  • Set up the process deferred accounting run and test monthly bookings against a sample of contracts with known schedules.
  • Review account mappings, reversal behavior and cancellation paths with finance, then test edge cases such as mid-month starts.

How we hand over

  • Document the item setup, the run procedure and the sign-off steps your accountants follow each period.
  • Record the test cases, expected journal entries and the results so your team can repeat them after upgrades.
  • Train the people who run the monthly process and agree which checks they perform before closing the period.

How we support

  • Review deferred bookings after ERPNext patch releases, since accounting logic changes can affect existing schedules.
  • Support the deferred accounting run and investigate unexpected balances with your finance team as they arise.
  • Available as a retainer that covers upgrades, regression checks and changes to contract types, subject to written agreement.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.