Built for the controller, the AR team, and the AP clerk.
A growing fuel operation has a finance team, not a clerk. A controller closing the books at month-end. Two or three AR seats posting payments and walking aging weekly. An AP clerk cutting vendor checks and matching POs. A payroll administrator running a 1099 / W-2 mixed roster against clock events from the field. Sometimes a part-time CFO checking margin against the dashboard.
KozyOps is the platform underneath all of that. What sets it apart from other fuel-and-service back offices is not a single feature. We run the credit card processor too. At cost. Integrated all the way through the ledger. Segregation of duties enforced server-side, so your controller can sign the SOC questionnaire honestly.
For the controller
Month-end close that does not start with a stack of paper
Deliveries, service jobs, and payments post to the ledger in real time. Calendar schedules, fuel-assistance authorizations, and service-plan auto-renewals are cron-driven, idempotent, date-stamped. The Bank Deposits batch carries the gateway’s settlement timestamp on every line. When close starts, the work the desk did during the month is already in the books.
Deep Sage Intacct push, your choice of GL
Two-way Sage Intacct integration with OAuth, no IT ticket required. QuickBooks for shops on QuickBooks. A generic export adapter for everyone else. General ledger accounting at the API layer, not the report layer, which is why the Intacct adapter is the deepest single integration we ship.
Aging that respects the fuel cycle
Aging Report buckets are 0-7, 7-14, 14-28, 28-56, and 56+ days. The cadence matches a will-call cycle, not a generic 30 / 60 / 90. Status buckets sit next to it: Active, On Hold, In Collection, Inactive, Terminated. The AR manager walks aging the way the desk walks the route board.
Audit trails that survive scrutiny
Record-level change logs and view logs across every resource. When the auditor asks who touched a deposit batch, who reversed an invoice, or who changed a vendor record, the answer is on the screen with a timestamp and a user.
Segregation of duties, server-side
Eight built-in roles enforced at the API, not the UI. AR posts receipts but cannot write a vendor check. AP cuts vendor payments but cannot reverse a customer invoice. Payroll runs the pay week but cannot change a card on file. The menu hides the wrong things, and the API refuses the wrong actions whether the menu hides them or not.
Reporting cadence the controller can set
Daily, weekly, and monthly reports across AR aging, deposit totals, fuel-assistance utilization, service-plan revenue, and payroll. PDFs the auditor can read. CSVs the FP&A workflow can ingest.
For the AR team
Payments, the way they should work
Kozy Payments runs at cost. We do not make money on payments. Rates dealers usually cannot beat anywhere else. The bigger story is what at-cost ownership of the processor lets us do inside the ledger.
- Autopay, with a per-invoice override of which card on file is used.
- Partial refund allocation that lands on the right invoice and the right ledger entry.
- Chargebacks in the same workflow as refunds, linked to the original receipt.
- Bank Deposits one per day, receipts categorized Visa/MC/Disc, AMEX, and Check/Cash, allocated across unpaid invoices, CSV export for the bank run.
- Prompt-pay promo unwind if a discounted payment reverses.
NMI and Qualpay are also supported for dealers who already use them. They work for moving money. They do not reach into the ledger the way Kozy Payments does, because they cannot.
Read the full Kozy Payments story
Invoicing at scale
Posted invoices with line items, taxes, and promotion line items. Promotions are real: flat, percentage, or per-unit, with Universal, Countdown, Limited, Volume, and Time-Based application strategies. Surcharges for late fees, peak season, check handling, or convenience fees. Auto-renewals and service-plan expirations get their own templates and reminders.
Taxes the way an accountant configures them
Configurable per use: fuel sales, services, subscriptions, service plans, propane exchanges. Percentage or per-unit. One rate table, applied where it belongs, audited when it changes.
Subscriptions module
Recurring charges with their own renewal cadence, billed against the customer record, posting through the same ledger. Service plans, equipment rentals, tank rentals, monitoring fees. One place to see what is renewing, what is past due, and what is cancelled.
Ledger cards
A customer-level statement view. Every charge, every payment, every adjustment, in one card, with the seat that touched it. The screen the AR team lives on.
Collections without spreadsheets
The Collections screen carries Reminders Completed, Due, Upcoming, and Unpaid counters. Charge the card on file. Send email or text. Place a credit hold. Lift it when the customer is current. Every step is on the customer record, every step is logged.
Receipts and deposits
Receipts post against invoices. Bank Deposits batch them so what the AR seat took to the bank matches what is in the GL, with the gateway’s settlement timestamp on each line when you are on Kozy Payments.
For the AP clerk and payroll
AP, vendors, and POs
Vendor management, vendor payments, purchase orders, bills of lading. Full AP side, with PO matching and a vendor record kept distinct from the customer record.
Payroll for a mixed driver roster
Drivers and techs clock in and out via KozyServiceman. Those clock events feed shifts, pay weeks, and pay cards across both 1099 and W-2 employees on the same run. We generate the payroll PDF. You hand it to your payroll provider or your bookkeeper.
Fuel assistance at program scale
Fuel assistance (LIHEAP and state programs) is a full module. Authorizations, contracts, vendor pricing, daily stale-price alerts so you do not deliver against pricing that is a week old, cron-driven expiration handling. For operations carrying hundreds of state-program accounts, this is one of the few back offices that does it right.
Learn more on the heating-oil page