Overview
Prepaids represent expenses that are paid upfront for services or goods that will be used (expensed) in future accounting periods.
In SoftLedger, Prepaids can be created directly from bill line items. Instead of posting a bill line to an expense account immediately, prepaid line items post to a Prepaid Asset account, and the expense is recognized over time based on an amortization schedule.
This ensures expenses are recognized in the periods in which the benefit is received without requiring manual journal entries each month.
How Prepaids Work in SoftLedger
At a high level, the prepaid workflow looks like this:
Create a bill with a Prepaid line item
The bill posts the full amount to a Prepaid Asset account
A prepaid record is created with an amortization schedule
Scheduled prepaid lines are posted over time to an Expense account
Creating a Prepaid
Prepaids are created from bill line items. When creating or editing a bill:
Add a new line item
Set the Line Type to Prepaid
Select a Prepaid Account (this is the asset account)
Enter the amount and tax details as needed
Prepaid line items cannot be associated with Items and do not require an Expense Account at this stage.
Once the bill is saved, SoftLedger automatically creates a Draft Prepaid for that bill line.
Draft Prepaids
When a bill is created with a prepaid line, a draft prepaid is generated automatically. These drafts can be found under the Accounts Payable → Prepaids section or by clicking the prepaid line in bill detail tables.
Draft prepaids:
Are separate from the bill’s draft/approval status
Exist so you can finish defining the amortization details (e.g. expense account, amortization calculation method, descriptions, etc.)
Do not post any expense until the draft prepaid is reviewed and activated
What’s Missing in a Draft Prepaid
To move a draft prepaid to active, the following fields must be completed:
Amortization Method
End Date
Expense Account
Description (optional)
Review and/or submission of the scheduled journal lines
Activating a Prepaid
To activate a prepaid:
Open the prepaid from:
The Bill Detail page, or
Accounts Payable → Prepaids
Edit the prepaid and complete all required fields
Save the prepaid
Once saved, the prepaid becomes Active, and its amortization schedule is ready to post, meaning the user can create the scheduled journal lines.
Bulk Activating Draft Prepaids
After selecting draft prepaid lines, clicking the Review Draft Prepaids bulk action will open a modal that allows review of each draft prepaid selected.
User can move forward and backward through the prepaids using the buttons at the top-right of the modal
User can skip the current prepaid by clicking the Skip button at the bottom-right.
After all the details are provided, user can click the Update button at the bottom-right to update the prepaid and move to the next one
Dialog will automatically close when all the selected draft prepaids have been reviewed
Amortization Methods
SoftLedger supports three amortization methods:
Monthly Prorated
First month is prorated by days
Middle months are amortized evenly (total amount / total months)
Last month picks up the remaining balance
One entry per monthly accounting period
Daily Prorated
Amount is calculated based on the number of days in each month
One entry per monthly accounting period
Custom
Fully manual schedule
Allows you to edit individual schedule journal lines
Required if you need non-standard timing or amounts
Posting Schedule Lines
Each prepaid generates schedule lines, which represent when the expense will be recognized. You can post prepaid expenses in multiple ways:
From Accounts Payable → Prepaids→Prepaid Lines
Clicking into any Prepaids line item to access the Prepaid Detail page using Post All Available Journals for that particular Prepaid
When a schedule line is posted:
The Prepaid Asset account is credited
The Expense account is debited
A journal entry is created automatically
Once all schedule lines are posted, the prepaid moves to Completed status.
Caution: The associated bill must be approved before prepaid schedule lines can be posted.
Important Considerations
Each bill line item can have only one active prepaid
Bills must be approved before prepaid expense can be posted
Completed prepaids are locked and cannot be changed
Prepaid schedules can start before, after, or overlap the bill date
Technical Details
Viewing Prepaids
You can view prepaids in two places:
Clicking a Bill Number to access the Bill Detail page (per line item)
Accounts Payable → Prepaids (list view)
The Prepaids list supports:
Filtering and sorting
Bulk actions, such as deleting or voiding
Draft prepaid review
Exporting
Editing a Prepaid
Draft and Active prepaids can be edited, with what you can change depending on whether any schedule lines have already been posted:
If no lines are posted, most fields are editable
If lines are posted, changes may require switching to Custom amortization
Editing a prepaid does not affect the original bill journal entry.
Cancel vs. Void
Cancel
Stops future expense recognition
Previously posted expense lines remain
No reversal journal is created
Void
Reverses previously posted expense lines
Creates a void journal entry
All remaining schedule lines are cancelled
Deleting a Prepaid
A prepaid can be deleted only if:
Status is Draft or Active
All schedule lines are still Pending
Once deleted, a new prepaid can be recreated from the bill line if needed.
Recreating a Prepaid
If a prepaid is deleted or voided, you can create a new one from the bill line.
SoftLedger will default:
Amortization Method: Monthly Prorated
Start Date: Bill invoice date
End Date: One year from invoice date
Schedule Lines: Auto-generated
You can adjust these before saving.
Tax Handling on Prepaids
Tax behavior on prepaid lines depends on tax code recoverability:
Recoverable Tax
Tax is posted to the tax account
Tax is not included in the prepaid total
Prepaid amount equals the line amount only
Non-Recoverable Tax
Tax is included in the prepaid total
Entire amount is amortized over time
No separate tax posting
If a prepaid line has tax but no tax code, tax is treated as non-recoverable by default.









