Garage Door OS Docs
Invoices & Payments

Affirm Financing

Offer buy-now-pay-later on estimates and invoices via Stripe.
5 min read

Affirm Financing

Overview

Affirm lets customers check financing options on estimates and pay invoices with buy-now-pay-later at Stripe checkout. ServiceFlow integrates Affirm through Stripe—there is no separate Affirm merchant key in the office app. When eligible, customers see Affirm messaging on estimate and invoice surfaces and can pre-qualify before approving work or paying a balance.
Affirm is Stripe-only. Businesses with Helcim as the active card processor do not see Affirm in the UI or API responses.

How to access

WhoWhere
Admin setupSettings → Payments → Stripe ConfigurationEnable Affirm financing toggle
StaffEstimate and invoice detail pages show Financing status when Affirm is enabled
CustomersCustomer portal estimate/invoice pages, public estimate PDF, payment method select, Stripe checkout
Guide path: Settings → Payments → Stripe → Affirm (within Stripe Configuration tab).

What you can do today

  • Enable or disable Affirm per business when Stripe is active
  • Set a minimum amount for Affirm eligibility (default $50 USD)
  • Show pre-qualification on estimate detail, public estimate PDF, and invoice pay flows
  • Display financing status on staff estimate/invoice records (pre-approved amount, expiry, declined, not started)
  • Record payments when Affirm checkout completes via Stripe and Affirm webhooks
  • Offer Affirm alongside cards and ACH on Stripe checkout when amount meets the minimum

Prerequisites

Setup path: Settings → Payments → Stripe Configuration (/settings/payments?tab=configuration)
All of the following must be true:
  1. Stripe is the active card processor — not Helcim. See Stripe Payments.
  2. Affirm enabled in Stripe Dashboard under Settings → Payment methods; confirm your business category is eligible with Affirm.
  3. Enable Affirm financing toggled on in ServiceFlow Stripe settings.
  4. Affirm Merchant Portal webhook (production recommended) pointing at your API:
    https://<your-api-host>/api/webhooks/affirm
    
    Set AFFIRM_WEBHOOK_SECRET in API environment for signature verification.
  5. financing_applications database migration applied on the API before go-live.
  6. Deploy API, customer-portal, and web apps after enabling the feature.
Optional: configure minimum amount override in Stripe settings (Minimum amount field) or via business settings integrations.stripe.affirmMinAmount.

Step-by-step

1. Enable Affirm in Stripe

  1. Open Stripe Dashboard → Settings → Payment methods.
  2. Enable Affirm and complete any Stripe/Affirm onboarding prompts.
  3. Confirm your MCC/business type is supported.

2. Enable Affirm in ServiceFlow

  1. Go to Settings → Payments → Stripe Configuration.
  2. Confirm Stripe is configured and is the active processor (not Helcim).
  3. Toggle Enable Affirm financing on.
  4. Set Minimum amount if you want something other than $50.
  5. Save configuration.

3. Register Affirm webhooks

  1. In the Affirm Merchant Portal (not Stripe), add webhook URL: https://<your-api-host>/api/webhooks/affirm
  2. Copy the HMAC secret into API env as AFFIRM_WEBHOOK_SECRET.
  3. Affirm sends pre-qual decisions, checkout confirmed, and checkout-not-approved events; ServiceFlow updates financing application records accordingly.

4. Test the customer flow

  1. Create or open an estimate above the minimum amount for a test customer.
  2. Send the estimate or open the public estimate PDF link.
  3. Customer clicks Check your financing options (or equivalent Affirm block).
  4. Complete pre-qual; staff should see Financing status on the estimate.
  5. After approval, pay deposit or invoice via checkout and confirm Affirm appears as a payment method when eligible.

5. Monitor on staff records

  • Estimate detail and invoice detail show financing status when Affirm is enabled.
  • Stripe payment_intent.succeeded / checkout webhooks remain a backup ledger path when Affirm settles through Stripe.

Current limitations

  • Helcim-only businesses — no Affirm UI or API availability
  • Mobile field app — Affirm not in scope for v1 mobile flows
  • Recurring / subscription invoices — not supported with Affirm in v1
  • Internal payment plans — separate from Affirm; not replaced by this integration
  • Some pre-qual payloads may require Affirm Key/Enterprise tier — confirm with your Affirm CSM
  • Affirm eligibility and approved amounts are determined by Affirm, not ServiceFlow

Roadmap

  • Mobile customer and field surfaces for financing visibility
  • Broader invoice types (recurring) if Affirm and Stripe support expands
  • Helcim-side financing only if a separate processor integration is added (not planned for v1)

Related features