How MurrCloud Works - Finance & Billing

Stripe stays your processor. MurrCloud becomes your books.

Every paid invoice, every subscription, every payment failure - synced from Stripe into MurrCloud's accounting, automatically, with the actual amount Stripe charged, not your list price. No manual journal entries, no reconciling two systems by hand.

Reading time: 8 min | Best for: SaaS businesses, subscription billing, recurring revenue operations | Setup time: 1 hour (one-time)

01 - The Problem

Stripe knows what was charged. Your books don't.

Stripe is excellent at collecting money - invoices, subscriptions, retries, payment methods, all handled. But Stripe isn't an accounting system. Every paid invoice still needs to become a real customer invoice in your books, reconciled against a bank journal, attached to the right partner, mapped to the right product.

Without a sync, someone re-keys Stripe activity into the accounting system by hand - or worse, revenue just lives in Stripe's dashboard and never makes it into reported numbers at all.

Revenue is invisible

Paid Stripe invoices don't automatically become recognized revenue in your accounting system.

Subscriptions live in two places

Stripe tracks the subscription. Your ERP doesn't know it exists unless someone enters it manually.

Reconciliation is manual

Matching Stripe payouts to invoices and partners by hand doesn't scale past a handful of customers.

02 - How It Works

Stripe webhooks, verified and processed in real time.

Stripe sends webhook events to MurrCloud the moment something happens - an invoice gets paid, a subscription is created, a payment fails. MurrCloud verifies, logs, and processes each event, turning Stripe activity into real accounting records without anyone touching a keyboard.

01
Stripe sends the webhook Every relevant Stripe event posts to MurrCloud's webhook endpoint in real time.
02
MurrCloud verifies the signature The Stripe-Signature header is checked with HMAC-SHA256. Invalid signatures are rejected outright.
03
The event is logged Every webhook is recorded with the Stripe event ID as a deduplication key - the same event arriving twice never creates duplicate records.
04
MurrCloud finds or creates the partner Matched by Stripe customer ID first, then email. A new partner is created automatically if neither exists.
05
The invoice or subscription is processed MurrCloud creates the accounting record, maps products, and posts using the actual Stripe-charged amount.
06
Payment is registered and reconciled The invoice is posted, payment registered against the configured bank journal, and the receivable reconciled - automatically.
03 - Customer Matching

One durable link between Stripe and MurrCloud - not a name match.

Stripe customer names and MurrCloud partner names don't have to match exactly. MurrCloud uses the Stripe customer ID as the permanent link, so renaming a customer in either system never breaks the sync.

  • 1
    Stripe customer ID If a MurrCloud partner already has this Stripe customer ID stored, that's the match - durable and exact.
  • 2
    Partner email address If no ID match exists yet, MurrCloud falls back to matching by email and links the Stripe customer ID for next time.
  • +
    New partner created If neither matches, MurrCloud creates a new partner automatically so the invoice still has somewhere to post.
04 - Two Billing Workflows

One-time invoices and recurring subscriptions, handled differently - correctly.

Not all Stripe billing is the same, so MurrCloud doesn't force it through one path. A standalone invoice and a subscription invoice trigger different - but equally automatic - sequences.

Workflow 1 Invoice Only

Stripe creates a standalone invoice, the client pays it, and MurrCloud creates a matching customer invoice in your books - one line per Stripe invoice line, posted and reconciled automatically.

Workflow 2 Subscription

Stripe creates a subscription, generates the invoice, the client pays. MurrCloud creates a native subscription sale order, generates the invoice from that order, then posts and reconciles payment.

The intended subscription sequence: Stripe paid subscription invoice -> MurrCloud native subscription order -> MurrCloud invoice generated from that order -> payment registered on that invoice. Every step is traceable back to the original Stripe event.
05 - Product Matching & Pricing

The right product. The actual price Stripe charged - not your list price.

MurrCloud maps every Stripe invoice line and subscription item to a real product using configurable Product Mappings, then posts the exact amount Stripe charged - even when that differs from the product's normal MurrCloud price.

  • 1
    Stripe price ID with Price Override enabled The most specific match - used when a particular price needs to map differently from the product-level default.
  • 2
    Stripe product ID The standard matching key for most mappings - one Stripe product maps to one MurrCloud product.
  • 3
    Stripe price ID fallback Used when no product-level mapping exists but the specific price has been mapped directly.
  • v
    No product / generic subscription product Invoice lines fall back gracefully; subscription items use the configured default or a generic "Stripe Subscription" service product.
Example: discounted pricing. A product can have a normal MurrCloud list price of $49, while a specific client's Stripe subscription charges them $40 - or even $0.50 during a trial. The MurrCloud invoice or subscription order line still maps to the correct product, but posts at the actual Stripe-charged amount, not the list price.
06 - Native Subscription Records

Stripe subscriptions become real MurrCloud subscription orders.

When auto-create is enabled, Stripe subscription webhooks generate native MurrCloud subscription sale orders - not just a billing record, but an actual order MurrCloud's subscription tooling can manage, report on, and renew against.

Field on the native orderSourced from
PartnerThe matched Stripe customer.
PlanMapped plan if configured, otherwise inferred from Stripe's billing interval (monthly, yearly).
Start dateStripe's current billing period start.
Next invoice dateStripe's current billing period end.
CurrencyThe Stripe subscription's billing currency.
Order linesOne line per Stripe subscription item, priced at the actual Stripe charge.
Linking is strict on purpose. Native orders are linked only by exact Stripe subscription ID - never by "same customer" or "most recent order." That means one customer can hold multiple active Stripe subscriptions, each with its own MurrCloud order, with zero risk of one subscription's renewal accidentally updating another.
07 - Currency, Failures & Payment Methods

The edge cases that actually matter in production.

Currency handling
Invoices post in Stripe's currency

If Stripe sends a currency that's inactive in MurrCloud, it's activated automatically. If the currency doesn't exist at all, the webhook logs an error rather than posting in the wrong currency.

Payment failure
Partner status updates automatically

A failed payment marks the partner's subscription status as past due and adds a note directly to the partner record - visible to anyone on the account.

Payment methods
Readable card summary on the partner

When a card is attached, MurrCloud writes a human-readable summary (e.g. "Visa ****4242") directly to the partner - no need to look it up in Stripe.

08 - Audit & Troubleshooting

Every webhook, logged. Nothing happens silently.

Every Stripe event that reaches MurrCloud is recorded in the Webhook Event Log, with the raw payload preserved for failed events - so diagnosing a configuration or data issue never means digging through server logs.

received processed skipped ignored error

Logs are available at MurrCloud Stripe -> Events -> Webhook Event Log. Failed events retain the original Stripe payload and the specific error message, so a missing product mapping or an inactive currency is immediately visible - not a mystery.

09 - Getting Set Up

One setup wizard. Reusable across every MurrCloud instance.

  • 01
    Open MurrCloud Stripe -> Configuration -> Setup Wizard Enter your Stripe secret key, publishable key, and webhook secret. Set your default journal and income account.
  • 02
    Choose your automation level Decide whether invoices auto-post, whether invoice emails send automatically, and whether subscription orders auto-create and auto-confirm.
  • 03
    Set up Product Mappings Map each Stripe price or product to the correct MurrCloud product. Add a Price Override where a specific price needs different handling.
  • 04
    Point Stripe at your webhook URL Configure the webhook endpoint in your Stripe dashboard. MurrCloud starts verifying and processing events immediately.
  • 05
    Watch the Webhook Event Log Confirm your first few events process cleanly before turning on auto-post and auto-confirm in production.

Stop reconciling Stripe by hand.

Book a 30-minute walkthrough and we'll connect a live Stripe test account during the call.

Book a Demo Explore Solutions