Stripe was built for billing, not for accounting.
We've covered many of the top reasons why this is true, and the challenges it creates.
Read 3 Ways Stripe’s Out-of-the-Box Reporting Falls Short for Accountants
Read 3 Reasons Stripe Data Isn’t Good Enough for Accounting
Read 5 Pitfalls of Connecting Stripe to NetSuite or watch the recorded webinar
One of the most complicated revenue accounting challenges for subscription businesses is reconciling credits. Because Stripe’s credit management system focuses on customer balances and invoice adjustments, credit data doesn’t translate neatly into revenue recognition or accounts receivable reconciliation.
At a high level, the main challenges of reconciling credits in Stripe look like this:
If you do this work, you know the frustrations of applying unique treatments to all the different credit types. Not to mention solving for those fun, unexpected surprises when your customer support team will adjust a customer’s credit balance without explanation or communication.
Lucky for you, we’ve cracked the credit code after helping dozens of companies on Stripe Billing successfully identify and account for credits. Watch our recorded webinar on this topic here.
There are four main types of credits within Stripe, and each poses unique challenges for accountants.
When a customer changes their subscription mid-cycle – either upgrading or downgrading – Stripe issues an "unused time credit" to account for the prorated difference. This appears as a negative line item on the customer's next invoice. For instance, if a user switches from an annual plan to a monthly plan halfway through, the system will create a credit to cover the unused time. These credits, however, don’t have a dedicated credit object in Stripe, making it tricky to account for. Stripe calculates these down to the millisecond, which can create discrepancies when accountants try to reconcile by day or month.
These adjustments are often manual changes made by customer support or billing teams to address various situations, such as customer complaints or adjustments following a subscription change. Unlike unused time credits, credit balance adjustments aren’t tied to any specific invoice and can appear as arbitrary changes in a customer’s account. While seemingly insignificant, these adjustments can impact the accounting books by either crediting or debiting the customer liability account, depending on the direction of the adjustment.
Credit applications reduce the outstanding balance on an invoice by applying the available customer balance. For instance, if a customer has a negative credit balance, it will be used to offset the total amount due on the next invoice. These applications involve various considerations, including starting and ending balances, unused time credits, and discounts that may apply at both the line-item and invoice level. This process can get complicated as the credits are used to adjust the accounts receivable, often in combination with other charges.
Credit notes are adjustments made after an invoice is issued. They can either be treated as a refund if the payment has already been settled or as an adjustment if it hasn’t. Credit notes often impact the accounts receivable and can carry specific properties like taxes and discounts associated with the original invoice, adding another layer of complexity.
Reconciling Stripe credits goes beyond standard accounting tasks because Stripe is granular down to the millisecond. This adds several layers of complexity.
We’ve found a few successful approaches to solving for the intricacies of Stripe credit reconciliation.
One way to handle unused time credits is to prorate them across the remaining subscription period. This requires calculating the revenue impact for each day or week until the end of the cycle.
Alternatively, the full reversal approach can be used to immediately recognize the entire unused time credit on the date it is issued, which simplifies journal entry creation but may lead to timing differences in revenue recognition.
Since these adjustments can happen at any time and for various reasons, it’s important to track them as customer liability adjustments in the general ledger. Leapfin recommends mapping these to a customer credit liability account to ensure proper recognition.
Note: manual adjustments should be tracked separately from automated credits to prevent confusion during reconciliation.
For credit applications, it’s crucial to track changes to the customer’s balance on each invoice. This requires careful monitoring of the starting and ending balances, along with any applied discounts or taxes.
Properly accounting for credit notes, including taxes and discounts, ensures that accounts receivable balances match the actual amounts owed. This involves linking credit notes to the corresponding invoice line items for detailed tracking.
Leapfin offers a solution to these challenges by standardizing different credit types and automating journal entry creation:
At the end of the day, Stripe isn’t going to fix this problem for revenue accountants. Reconciling Stripe credits will continue to be an essential part of your process. Every month. Maybe more frequently. But attempting to solve Stripe credit reconciliation challenges manually is a recipe for inefficiency and burnout.
It helps to understand the different types of credits and have some smart reconciliation strategies to use. But the smartest strategy of all is to do what Accounting and Finance teams at companies like SeatGeek, Canva, and Reddit have done – leverage a proven automation solution that transforms messy Stripe data into clear journal entries and makes rev rec and month-end close a breeze.
Choose your own adventure to learn more about how Leapfin solves tricky, messy, repetitive revenue accounting problems.
Watch our 2-min explainer video (specifically for Stripe users)