Microsoft Dynamics NAV and Stripe integration
Microsoft Dynamics NAV runs the accounting and order management for small and mid-size businesses, while Stripe processes the online payments and subscription billing. Connecting them keeps your customer records, invoices, and payment status synchronized across both systems. New customers added to NAV appear in Stripe without manual entry, payments received in Stripe automatically post to your NAV general ledger and accounts receivable, and subscription data stays aligned so invoicing is never out of step.
What moves between them
Customer records flow from Microsoft Dynamics NAV into Stripe so payment acceptance reflects current customers. Payment and invoice events from Stripe flow back into NAV's general ledger as posted transactions: customer payments post to accounts receivable, subscription invoices update revenue recognition. Subscription and customer reference data align in both directions so billing in Stripe matches the customer master in NAV. The flow is triggered by NAV webhook notifications (if subscribed and active within the 3-day window) or by polling NAV every 30 to 60 minutes, and by Stripe webhook events delivered in near real-time.
How ml-connector handles it
ml-connector stores both credential sets encrypted and refreshes NAV's OAuth 2.0 bearer token when a call returns 401. It presents the Stripe API key via HTTP Basic Auth on every request and verifies incoming Stripe webhook signatures using HMAC-SHA256, rejecting any unsigned or invalidly signed event. Because NAV webhooks expire after 3 days, ml-connector monitors subscription age and renews them before expiry to maintain the push stream; it also polls NAV periodically as a fallback. Payment amounts and invoice line items are mapped to NAV's accounts and dimensions (customer, cost center) so every posted entry lands on the correct GL account and is tied to the right customer. When Stripe rate limits a request or NAV returns 429, ml-connector backs off with exponential jitter and retries; when a webhook renewal fails, it logs the event and falls back to polling until the subscription is restored. Every record carries a full audit trail and can be replayed if a downstream post fails.
A real-world example
A mid-sized B2B software company runs Microsoft Dynamics NAV for accounting and customer management and uses Stripe to accept customer payments and manage annual subscriptions. Before the integration, the finance team received Stripe payment notifications by email, manually entered each customer payment into NAV's accounts receivable, and reconciled invoices by hand at month-end. With the integration active, each payment received in Stripe posts automatically to the matching customer's account in NAV, subscription invoices update NAV's revenue records, and the accounts receivable ledger stays current with zero re-keying. Month-end close involves no Stripe reconciliation work, and the finance team can focus on analysis instead of data entry.
What you can do
- Sync customer records from Microsoft Dynamics NAV into Stripe so payment acceptance reflects your current customer base.
- Post Stripe payments and invoices automatically into NAV's general ledger and accounts receivable, mapped to the correct customer and GL account.
- Manage NAV webhook subscriptions and renew them before the 3-day expiry window to keep the push stream active.
- Authenticate NAV with OAuth 2.0 token refresh and Stripe with API key validation, verifying webhook signatures on both sides.
- Retry failed posts with exponential backoff, track subscription health, and maintain a full audit trail for every transaction.
Questions
- How does ml-connector handle NAV webhook expiry and keep the connection active?
- Microsoft Dynamics NAV webhooks expire after 3 days and must be renewed before that window closes. ml-connector tracks the age of each subscription and renews it automatically before expiry, so the push stream from NAV remains active. If a renewal fails, ml-connector falls back to polling NAV every 30 to 60 minutes as a backup until the subscription is restored.
- Which direction do payments and invoices flow between NAV and Stripe?
- The main flow is from Stripe back into NAV. When Stripe receives a payment or generates an invoice, those events post into NAV's general ledger and accounts receivable, mapped to the customer and GL account. Customer records flow from NAV into Stripe so your payment gateway reflects your current customer base. Subscription and customer reference data can align in both directions.
- How are Stripe webhook signatures verified and what happens if verification fails?
- ml-connector verifies Stripe webhook signatures using HMAC-SHA256 with your Stripe endpoint secret. Every webhook event includes a Stripe-Signature header; ml-connector compares it against the hash of the raw request body. If verification fails or the signature is missing, the event is rejected immediately and not processed. This prevents spoofed or tampered events from posting false transactions into NAV.
Related integrations
More Microsoft Dynamics NAV integrations
Other systems that connect to Stripe
Connect Microsoft Dynamics NAV and Stripe
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started