...
Customer Story · Government & Utility Billing

Caselle gives clients the exact invoice amount and lets citizens cover the processing fees.

"

Cities asked us how to charge a convenience fee and still receive the exact $150 invoice as their deposit. Without Zift's service fee solution, that math never worked.

C
Caselle
On the original problem
"

One API request from us, two transactions on Zift's side. Cities reconcile in minutes instead of hunting fees at month-end.

C
Caselle
On the integration model

Caselle serves thousands of small and medium municipal utilities, cities, and government billers. Historically the same hard problem kept surfacing: how do you let citizens cover the processing fee, while still depositing the exact invoice amount to the biller?

About the company.

Caselle is a long-standing utility-billing platform serving small and medium-size cities and utilities across the United States, with a total addressable market estimated near $9 billion. Civic Systems serves a similar municipal market in the Midwest. Following acquisitions by Black Mountain Software, the two have merged into a single company meaning their shared customers (city utilities, public works, government billers) are now served by one platform that uses Zift end-to-end.

The challenge.

Cities don't want to absorb processing fees on utility payments. They want to pass those fees to the citizens who choose to pay by card. They still see the exact bill amount land in their bank account, which makes reconciliation against their billing ledger actually work.

The initial surcharging approach didn't work. If a $150 utility bill carries a 3% surcharge, the deposit looks like $154.50, and processing fees get pulled out at month-end. The city is then stuck back-solving fees against transactions, batch by batch, line by line. Cities couldn't reconcile cleanly and surcharging isn't the proper way to handle government payments. Caselle was getting the same question from every customer: how do we make this match?

On top of that, batch cutoff times never matched the city's own day. Reports didn't line up against the local time zone, so end-of-day numbers and deposit numbers told different stories.

What wasn't working

Surcharge math that left cities reconciling fees at month-end. Deposits that didn't match invoice amounts. Reporting cutoffs that ignored the city's time zone. A model that worked for a generic merchant, but not for a government entity or utility that doesn't want to deal with credit card processing fees.

Fee processor: one request, two transactions.

Zift proposed a different model built on its fee-processor logic, a feature designed for government and education MCC codes that allows service fees to be processed as a separate, second transaction.

Caselle sends a single API request. On Zift's side, that request is split into two transactions: the government entity receives the full invoice amount as their deposit, and the fee is processed separately through a fee-processor account. The government entity is never charged any processing fees at all, those are collected from the citizen, in a parallel transaction, that lands in a separate account dedicated to fees.

How a $150 utility payment flows

Citizen pays $154.50, but the split is invisible at the API layer.

Citizen pays
$154.50
$150 bill + ~3% service fee
→
Zift splits the transaction
1 → 2
One API request becomes two transactions
↓
City deposit
$150.00
Exact invoice amount · gross funded
Fee processor account
$4.50
Service fee · collected separately

Critically, this is all supported with gross funding. The government entity receives $150.00, full and clean, every time. They can match the deposit report straight to the invoice ledger, no fee subtraction, no month-end true-up, no spreadsheet gymnastics.

Customizable service-fee tables.

Different cities want different fee structures, and government and education MCCs have specific compliance requirements around how service fees can be presented. Zift handles this through a customizable service fee table that can be accessed via API.

Each table can hold different fees for different types of payments, transaction-amount ranges, or categories the city wants to define. Caselle pulls the right fee for the right context, and Zift applies it at split time. The whole experience is compliant for government and education MCC codes, with the fee processor specifically designed for that environment.

Reconciliation that respects the city's clock.

The other request from Caselle was reconciliation that actually matched what their customers were seeing on the ground. Government entities wanted to reconcile a full day inside their own time zone, not a UTC batch cutoff that splits one city's day across two reports.

Zift customized the batch period and cutoff time for them. Reports now align to the local-day boundary the city expects, so end-of-day numbers, deposit reports, and the city's own ledger all describe the same day. Their customers see a deposit report that matches their day, and reconciliation becomes a non-event.

1 → 2 txns
One API request from Caselle becomes two transactions on Zift's side
Exact $
City always receives the full invoice amount as deposit, gross funded
Local time
Customizable batch period and cutoff per city's time zone

What they use today.

Today, Caselle's government entity clients get set up with a Zift account and have the ability to either absorb the processing costs, pass the processing costs off to the payors as a service fee, or do a mixture of both. They can process cc/debit cards online or in person through EMV terminals and accept ACH as an additional payment option.

Fee processor (gov/edu MCC) Gross funding Customizable service fee tables Bank Bill Pay Multi-merchant terminals Reporting API Customizable batch period Card & ACH on one account Tokenization

Bank Bill Pay, built for the customer base

A large share of utility payments come through bank bill-pay channels. Zift built bank bill-pay support so billers using Caselle can support payors who pay bills through their banks. Those payments are routed through Zift and deposited to the billers alongside their credit/debit card and ACH payments. Caselle uses the same integration to provide reporting back to their clients on cc/debit card, ACH and Bank Bill Pay payments.

Multi-merchant terminal support

Some municipal offices manage several merchant accounts under one roof like water, sewer, permits, and parking. Often times deposits for these transactions need to go to different bank accounts which requires multiple merchant accounts to be set up. The municipalities don't want a separate terminal for every line item. Zift built terminal logic that lets a single device on a city desktop toggle between accounts. One terminal, multiple accounts, no compromises.

Reporting API for end-to-end reconciliation

Beyond the batch-period customization, Zift's reporting API lets Caselle pull transaction, deposit, and dispute data into the platform's own reporting tools so the city's view of payments lives inside the management system they already use.

The integration.

Once the integration was live, an influx of customers who had been waiting for proper integrated payments came over. Today, almost every new city configured on the platform gets fee-processor accounts set up by default or they are registered with the card brands as utility billers.

Integration profile

~1 month to live · Single lead developer · Customizable support for service fees · Bank Bill Pay · multiple accounts on one terminal

Partnership results.

  • Fee processor live for almost every new government entity. Government entities get the exact invoice amount as a deposit. Service fees flow through a separate transaction to a fee-processor account, fully compliant with government and education MCC codes.
  • One API request, two transactions. Caselle sends one call. Zift splits server-side. The integrator's code stays simple while the city gets clean, reconcilable funds.
  • Customizable service fee tables. Different service fees by payment type or amount range. Pulled by the Caselle system at request time and applied to the transaction.
  • Batch periods aligned to local time zones. Reporting cutoffs match the city's day. End-of-day numbers and deposit numbers tell the same story.
  • Bank Bill Pay and multi-merchant terminals built collaboratively. Two features Zift developed alongside Caselle to fit the realities of municipal payment workflows.
Your story could be next

Pass the fee to the citizen. Deposit the exact invoice amount to the city.

If you build software for cities, utilities, schools, or government billers, talk to Zift. We'll show you the fee processor, the reconciliation reports, bank bill pay, and the migration path your customers actually want.

Get a Free Assessment →