Accounting for Revenue Recognition for ASC 606 for organizations using Stripe

September 4, 2024
Cody Leach
Finance

This guide aims to streamline the process of accounting for Stripe revenue recognition and the order to cash cycle per ASC 606/GAAP and facilitate margin analysis.

Want a downloadable PDF version of this post? Click here.

Introduction

Subscription revenue accounting can be complex. While Stripe provides comprehensive data, it is scattered across various sections of the application. This guide aims to streamline the process of accounting for revenue recognition and the order to cash cycle per ASC 606/GAAP and facilitate margin analysis.

Stripe maintains all of the necessary data to record revenue according to ASC 606 correctly, unlike some other billing/payment tools, but extracting these reports is the first step in the accounting process. See below for a summary of accounting that can be achieved from Stripe, compared to other common Billing and Payment systems used in the Subscription/SaaS industry.

Data Extraction

To compile all necessary data for accurate accounting, up to eight reports need to be downloaded from Stripe:

  1. Invoices Report: Available on the Invoices page.
  2. Cash/Payments Report: Found under the “Payments” tab in “All Transactions.”
  3. Payout Reconciliation Report: Located in the “Reports” tab.
  4. Refunds, Disputes, and Credit Reports: Extracted from the Activity Report, filtered for specific categories:
    • Refunds: Filter for refunds.
    • Disputes: Filter for disputes.
    • Credits: Filter for credits.

Balance Report: Select the balance change from activity for the relevant date range.

Accounting - Journal Entries

Invoices Report

Journal Entries:

  • Revenue Deferral: Dr. Accounts Receivable (AR), Cr. Deferred Revenue 
  • Revenue Recognition: Dr. Deferred Revenue, Cr. Revenue 
  • Sales Tax Accrual: Dr. AR, Cr. Sales Tax Liability

Steps:

  1. Pull invoices to determine initial deferral and recognize revenue over time using start and end dates.
  2. If volume is manageable, maintain each subscription on a line in Excel to create a detailed waterfall report; otherwise, summarize entries to a summarized waterfall.
  3. Split out the tax portion for the sales tax accrual. Use a VLOOKUP on the payment report (discussed next) for tax jurisdiction if separate Sales Tax Accrual Accounts are maintained.

Cash/Payments Report

Journal Entries:

  • Customer Pays: Dr. Cash in Transit (Stripe), Cr. AR
  • Payment Processor Fees: Dr. Payment Processor (PSP) Fees, Cr. Cash in Transit (Stripe)

Steps:

  1. Use VLOOKUP to link invoice information for product-related fees and sales tax allocation.
  2. Connect fees to payments using the Stripe Charge ID and link payments to invoices using the Invoice ID.

Payout Reconciliation Report

Journal Entries:

  • Stripe Payouts: Dr. Cash - Bank, Cr. Cash in Transit (Stripe)

Steps:

  1. Stripe settles in large batches, as such use the Balance Report to reconcile to payments, involving VLOOKUP to the Payout Report for details on fees, refunds, and disputes.
  2. Entries can be recorded in bulk or detailed for FP&A purposes by using this balance transaction detail.

Refunds, Disputes, and Credit Reports

Refunds

Journal Entries:

  • Dr. AR, Cr. Cash in Transit (Stripe) 
  • Dr. Revenue/Contra Revenue, Cr. Deferred Revenue
  • Dr. Cash in Transit (Stripe), Cr. PSP Fees 

Steps:

  1. VLOOKUP refunded payments and related invoices for proper revenue offset recording.

Disputes - Initiated/Lost

Journal Entries:

  • Dr. AR, Cr. Cash in Transit (Stripe)
  • Dr. Deferred Revenue, Cr. Revenue/Contra Revenue
  • Dr. Cash in Transit (Stripe), Cr. PSP Fees

Steps:

  1. VLOOKUP disputed payments and related invoices for accurate revenue offset recording.

Disputes - Won

Journal Entries:

  • Dr. Cash in Transit (Stripe), Cr. AR
  • Dr. Deferred Revenue, Cr. Revenue/Contra Revenue
  • Dr. PSP Fees, Cr. Cash in Transit (Stripe)

Steps:

  1. You will need to pull several past months for won disputes and vlookup the payments accordingly to offset previous reversals, usually done in summary but necessary for detailed FP&A analysis.

Credit Report

Journal Entries:

  • Credit Issuances (Proration IS NOT true): Dr. Deferred Revenue, Cr. Credit Payable
  • Credit Applications (Proration = true): Dr. Credit Payable, Cr. AR

Steps:

  1. VLOOKUP related invoice IDs to determine which deferred revenue or AR accounts to offset.

Disputes - Won

Journal Entries:

  • Dr. Cash in Transit (Stripe), Cr. AR
  • Dr. Deferred Revenue, Cr. Revenue/Contra Revenue
  • Dr. PSP Fees, Cr. Cash in Transit (Stripe)

Steps:

  1. You will need to pull several past months for won disputes and vlookup the payments accordingly to offset previous reversals, usually done in summary but necessary for detailed FP&A analysis.

Credit Report

Journal Entries:

  • Credit Issuances (Proration IS NOT true): Dr. Deferred Revenue, Cr. Credit Payable
  • Credit Applications (Proration = true): Dr. Credit Payable, Cr. AR

Steps:

  1. VLOOKUP related invoice IDs to determine which deferred revenue or AR accounts to offset.

Key Insights and Best Practices

Revenue Completeness

The best identifier for revenue lines in Stripe is the product_id on your reports. Each product_id should map to a revenue stream. Review monthly to ensure all product_ids are accounted for.

Taxes

Stripe allows setup of various product_ids, including local and regulatory taxes. Ensure these are accounted for as tax rather than revenue streams.

Credits

Credits can have their own product_ids. Ensure accurate identification and accounting.

Subscription Upgrades and Downgrades

Stripe handles subscription changes by issuing a "unused time credit." Use this data to determine appropriate revenue and deferred revenue offsets. VLOOKUP unused time credits to the related invoice line item to find related revenue/deferred revenue to offset.

Conclusion

Accurately accounting for subscription revenue through Stripe requires a comprehensive approach to data extraction and journal entries and is extremely manual. By following this guide, finance teams can ensure compliance with ASC 606/GAAP and achieve detailed margin analysis. Working closely with the team managing Stripe to maintain clean product_ids will greatly facilitate this process.

Hubifi can greatly simplify this process by automating the data gathering and eliminating the need for Vlookups entirely. Contact us to learn more about automating this process.

This white paper is designed to serve as a practical guide for accounting professionals navigating subscription revenue accounting using Stripe.

Cody Leach

Accounting Automation | Product | Technical Accounting | Accounting Systems Nerd

A technology and automation focused CPA helping finance leaders bring their processes into the 21st century.If you're interested in talking finance systems - https://calendly.com/cody-hubifi Feel free to set up some time on my calendar. I like talking about this stuff too much

Book a demo

Learn how we cut accounting close timelines by 75% and identified 6% of revenue margin erosion opportunities for one of the fastest growing companies.

Get Started