Documentation Index
Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt
Use this file to discover all available pages before exploring further.
How to Record and Manage Bills
Bills in DualEntry represent amounts you owe to vendors. You can create them manually, upload documents for OCR extraction, or convert them from approved purchase orders. Every bill follows a consistent lifecycle: draft → submitted → approved → posted.Entering Bills Manually
To create a bill, navigate to Accounts Payable → Bills → New Bill. Select a vendor, set the bill date and due date, and add one or more line items. Each line item requires an account, an amount, and optionally one or more dimensions (department, project, location) that drive your reporting segments. The API equivalent is aPOST to /public/v2/bills/ with the vendor, dates, and a line_items array. You can filter existing bills by company_id, vendor_id, date range, record_status, approval_status, or amount.
DualEntry validates required fields before allowing submission. The vendor must have an active status, the bill date cannot be in a closed period, and each line item must reference a valid account. If any validation fails, the system displays the specific error so you can correct it before resubmitting.
If you use multi-entity consolidation, make sure the bill’s company matches the entity that owes the vendor. Intercompany bills follow separate routing rules.
OCR Upload and the Bill Inbox
For paper or emailed invoices, use the bill inbox. Drag and drop a PDF or image file, or forward the email to your company’s dedicated inbox address. DualEntry’s OCR engine extracts the vendor name, invoice number, date, line items, and total. You review the extracted data, correct anything the model missed, and submit. Uploaded files are stored as attachments on the bill record. You can add additional attachments at any time through the UI or via the/public/v2/bills/{id}/attachments/ endpoint. The OCR engine improves over time as it learns from your corrections, so extraction accuracy increases the more you use it.
When the OCR engine cannot confidently identify a vendor, it presents its top suggestions ranked by confidence score. You select the correct vendor or create a new vendor record directly from the inbox. This prevents duplicate vendors from accumulating in your master data.
Line-Item Coding and Approval Routing
Each line item on a bill maps to an account in your chart of accounts and, optionally, to classification dimensions. Accurate coding at the line level is what makes your departmental P&L and project-level reports meaningful. When you code a line item, DualEntry validates the account type against the bill type. Expense accounts and asset accounts are valid; revenue accounts are not. If you select an invalid account, the system blocks submission and displays the validation error. Once you submit a bill, it enters the approval workflow assigned to the bill record type. Workflows can route based on amount thresholds, entity, or classification values. Approvers receive a notification and can approve, reject, or request changes directly from their approval queue. Bills remain insubmitted status until all required approvals are complete. After the final approval, the status moves to approved and the bill is eligible for posting. Rejected bills return to the submitter with the approver’s comments attached, so you can address the issue and resubmit without starting a new bill.
Posting Bills
Posting a bill creates the accounting entries: a debit to the expense or asset accounts on each line item and a credit to accounts payable. Posted bills appear in your AP aging report and become available for payment. You can post bills individually or in bulk from the bill list view. The API supports posting by updating the bill’srecord_status to posted. Bulk posting is useful at the end of an approval cycle when multiple bills reach approved status at the same time.
Once posted, a bill’s line-item coding is locked. You cannot change the accounts or dimensions on a posted bill - if you need to reclassify, void the bill and create a corrected replacement. This immutability ensures that your audit trail accurately reflects the entries that hit the general ledger.
Recurring Bills
For vendor charges that repeat on a fixed schedule - rent, SaaS subscriptions, insurance premiums - set up a recurring bill. Navigate to Accounts Payable → Recurring Bills or use the/public/v2/recurring/bills/ endpoint. Define the vendor, line items, frequency (weekly, monthly, quarterly, annually), and start/end dates.
DualEntry generates a draft bill on each scheduled date. The draft includes the same line-item coding as the template. You review and submit it through the normal approval flow. If the amount or coding changes between periods, update the recurring template and all future drafts pick up the new values.
Recurring bills are especially useful for charges where the amount is fixed or predictable. For variable charges - like utility bills that fluctuate monthly - you may prefer to enter each bill manually or use OCR upload, since the draft amount from the template would need adjustment each period anyway.
Voiding and Correcting Bills
To void a posted bill, open the bill and select Void. Voiding creates a reversing entry that zeroes out the original posting. The bill’s status changes tovoided and it no longer appears in aging or payment selection.
If you need to correct a bill rather than void it, void the original and create a new bill with the corrected details. DualEntry does not support in-place edits to posted bills because that would break the immutable audit trail. The void-and-replace pattern keeps your ledger clean and fully traceable.
You can attach supporting documents - contracts, receipts, delivery confirmations - to any bill at any stage. Attachments are immutable once uploaded; you can add new files but cannot delete or replace existing ones. This supports your audit trail by ensuring that reviewers and auditors see exactly what was available at the time of approval.
