Jul 2, 2025

Jul 2, 2025

Jul 2, 2025

Jul 2, 2025

Commit #2 : Introducing The Invoice Workflow Support

Billing systems need to be precise, but reality is messier. Enterprise customers request custom features mid-cycle.

When your billing logic can't handle these real-world scenarios, finance teams fall back to spreadsheets, manual invoices, and duct-tape solutions that break audit trails and frustrate customers.

Today's update changes that. We're introducing invoice workflow features that handle the complexity of modern billing, so your finance team can focus on growing the business instead of patching billing gaps.

Here's what's new!

One-off Invoices

As soon as you start selling to enterprise customers, someone asks for:

  • Custom feature development

  • Onboarding and Implementation support

  • Paid support or training

  • Unforeseen one-time charges that don’t fit your clean subscription model

And when that happens? Your billing logic breaks, you fall back to spreadsheets and Stripe links, and it's duct-tape billing all over again.

Now you can create a one off invoice in Flexprice to account charges that aren't linked to a subscription or metered usage.

Creating a one-time invoice is as simple as raising any subscription or usage invoice


In case you want to do this via API -  [Check our API docs]

Previously, you’re patching this via side emails or manual invoices. With Flexprice, it all lives in one system.

Custom invoice numbers

As the customer base grows and you expand across channels and geographies, your finance team starts dealing with new set of challenges:

  • Your accounting system is running its own invoice register

  • Country/region specific formats for compliance

  • Marketplaces issuing invoices on their own platform

  • Reserving invoice numbers for future invoices especially when selling to enterprises

That’s exactly what we’re fixing today: 

Bring your own invoice numbers

With Flexprice, pass your own invoice number when creating invoices via API:

invoice_req = DtoCreateInvoiceRequest(
   external_customer_id="your_db_customer_id",
   invoice_number="CUSTOM-SEQ-001",
   invoice_type="ONE_OFF",              # or "RECURRING"
   currency="USD",
   amount_due="1000",
   period_start=datetime.fromisoformat("2025-06-30T00:00:00+00:00"),
   line_items=[
       DtoCreateInvoiceLineItemRequest(
           display_name="Implementation Fee",
           quantity="1",
           amount=1000
       )
   ]
)

 Example:

  • Imagine your accounting team follows this sequence for Singapore: SG-INV-20240628-001

  • Your reseller platform uses: RS-SEA-20240628-XYZ

  • And Flexprice? It normally follows: INV-202406-0052

Want to see how? [Check our API docs]


Credit balances with transparent ledger

Every prepaid usage product follows the same path: you start with a simple balance counter, add some expiration logic when customers complain. Then spend months debugging why the numbers don't add up when support tickets roll in.

And every time something breaks?

  • You explain credit math to your finance team

  • Support scrambles to calm annoyed customers

  • Product teams patch yet another edge case

We’ve all been there. So we fixed it.


What is wallet and credit separation?

Not all credits are created equal:

  • Free trial credits? Simple expiration, no accounting headaches

  • Purchased top-ups? Revenue recognition, refund tracking required

  • Subscription credits? Proration nightmares when plans change

  • Refund credits? Double-entry bookkeeping to avoid revenue leaks

Flexprice keeps them clean, labeled, and separate, so your balances stay predictable, and your customers stay happy.

How it works?

When topping up a wallet, pass a clear transaction reason:

Some of the available options are additional purchased credits, promotional or goodwill credits and check out our API docs to learn about the rest of the available options. 


Backfill usage data

Despite clean invoices and clear wallets, inconsistencies can come up in the usage data reporting due to various reasons:

  • Usage events delayed within your system

  • Metering pipelines miscount

  • Product teams roll out features mid-cycle

  • Enterprise customers send manual reports post-invoice


How it works?

  • Re-ingest the missing usage events with desired timestamps

  • Trigger the regenerate invoice API

  • Flexprice recalculates the invoice based on the latest, correct data

This makes the life of finance teams easier as they do not need to hack in manual discounts or create one off invoices for corrections later.

# Specify your invoice ID
invoice_id = "inv_01JXYZ..."  # the ID of the invoice you want to recalculate


# Call the recalculate method
response = invoices_api.invoices_id_recalculate_post(id=invoice_id)

# Specify your invoice ID

invoice_id = "inv_01JXYZ..."  # the ID of the invoice you want to recalculate

# Call the recalculate method

response = invoices_api.invoices_id_recalculate_post(id=invoice_id)

Want to see it in action? [Check our API docs.]


Credit notes (Refund workflow)

Finance teams occasionally find themselves in situations which require them to charge the customer less than the actual raised invoice. This can happen in case:

  • Product expectation mismatch or downtimes

  • Duplicate invoices due to manual error

  • Invoices calculation mistakes

  • Enterprise customers change their minds mid-cycle.

Flexprice now supports issuing credit notes against an invoice. When you issue a Credit Note, your customer sees:

  • Their original invoice

  • The Credit Note applied against it

  • The updated amount due



Wrapping up

These workflow improvements are just the beginning. Real billing operations involve dozens of edge cases, compliance requirements, and customer scenarios that standard solutions simply can't handle.

We're building Flexprice to eliminate the manual workarounds that slow down finance teams and frustrate customers. Every feature we ship is designed around one principle: your billing should work exactly how your business works.

→ If you have any questions, talk to us

→ Sign up for launch updates to get tomorrow’s drop in your inbox

See you on Day 03.

Blogs

Blogs

Blogs

More insights on billing

Insights on
billing and beyond

Explore expert tips, industry trends, and best practices for billing, pricing, and scaling revenue.

Get started with your billing today

Get started with
your billing today