Payments
Overview
Spot supports multiple ways to handle payments for the sale of our products. This guide covers our invoicing model, as well as how Stripe Connect can work when partners (or their operators) stay Merchant of Record and Spot only receives revenue for Spot coverage. We can also support other processors and setups as needed.
Default Setup: Invoicing Model (Simplest)
Spot’s standard arrangement with partners ensures that the partner remains the Merchant of Record (MoR) for all insurance and non-insurance protection sales. In this setup, the partner sells protection products on Spot’s behalf.
From a payment perspective, Spot invoices the partner at the beginning of each month for the previous month’s enrollments. This process is automated, with invoices generated and sent to the partner invoicing contact based on the enrollments processed during the last reporting period. Payments can be made via the link provided with each invoice, or electronically via an ACH or wire payment using Spot's payment instructions provided with the first invoice.
The high-level workflow here is:
- The partner is MoR for all protection product sales.
- Spot enrolls customers on the partner’s behalf.
- Spot sends automated monthly invoices for the prior month’s enrollments.
- Payments are made via:
- A payment link (included in the invoice)
- ACH or wire using provided banking details
This model is straightforward and requires no integration effort, but lacks real-time revenue routing.
Stripe Connect Model (Recommended for Real-Time Payments)
For partners who want automated, real-time payment routing and tighter integration (and are existing Stripe customers), Spot can be onboarded to your Stripe Connect platform.
Core Structure
- The partner owns the Stripe platform account and retains MoR status.
- Spot is added as a connected account, either as a Standard, Express, or Custom account.
- You control the checkout experience.
- Stripe handles the revenue routing so Spot only receives its share from Spot-specific product sales.
Spot Quoting Flow & Payment Values
Spot's API provides clear payment splitting information through the quoting flow to make the Stripe integration straightforward.
Quote Acceptance Response
When a user accepts a quote via the quote acceptance endpoint, you'll receive these payment values:
{
"spotPrice": 25.00, // Total spot price to consumer
"partnerCut": 15.00, // Amount partner keeps
"invoiceAmount": 10.00 // Amount to split to Spot via Stripe
}spotPrice: The total amount to charge the customerpartnerCut: The amount your platform retiansinvoiceAmount: The amount that should be routed to Spot via Stripe Connect
Requote Acceptance Response
When a user accepts a requote via the requote acceptance endpoint, you'll receive these payment values:
{
"incrementalSpotPrice": 2.50, // Additional spot price to consumer
"incrementalPartnerCut": 1.50, // Additional amount partner keeps
"incrementalInvoiceAmount": 1.00 // Additional amount to split to Spot via Stripe
}These incremental values represent the additional charges beyond the original quote and should be processed as a separate payment split.
Important: Always use theinvoiceAmount(orincrementalInvoiceAmount) converted to cents as the exact amount to route to Spot via Stripe Connect - this ensures accurate revenue splitting.
Integration Setup (Step-by-Step)
Please reference Stripe documentation directly for the latest documentation.
1. Stripe Account & Connect Platform
Ensure your Stripe account is configured as a Connect platform.
- Navigate to the Stripe dashboard → Settings → Connect Settings
- Enable Standard (or Express/Custom) Connect
- Complete platform onboarding and compliance requirements
2. Onboard Spot as a Connected Account
Invite Spot to your Connect platform:
- Use Stripe’s Standard Account onboarding flow for minimal overhead (Stripe handles KYC/compliance).
- Alternatively, you can use Express or Custom if you need tighter control.
Once onboarded, you’ll receive Spot’s Connected Account ID, which is used to route funds.
3. Implement Revenue Splitting Logic
Stripe supports two approaches for routing Spot’s share, depending on whether the platform is the Merchant of Record (MoR) or whether third-party sellers (operators/event hosts) are involved.
Option 1: Real-Time Split (Platform is MoR)
- Use when the platform itself is the MoR - i.e., the customer sees the platform on their bank statement.
- Stripe can automatically split Spot’s share at charge time using
transfer_data. - Dynamic pricing: The platform calculates Spot’s share based on the quote.
Example PaymentIntent:
curl https://api.stripe.com/v1/payment_intents \
-u sk_test_platformKey: \
-d amount=10000 \ # total charge in cents
-d currency=usd \
-d payment_method="{{PAYMENT_METHOD_ID}}" \
-d confirm=true \
-d "transfer_data[destination]"="{{SPOT_CONNECTED_ACCOUNT_ID}}" \
-d "transfer_data[amount]"="{{invoiceAmountInCents}}" \
-d "metadata[quote_id]"="{{SPOT_QUOTE_ID}}"For requotes, create an additional PaymentIntent for the incremental amount:
curl https://api.stripe.com/v1/payment_intents \
-d amount=100 \
-d currency=usd \
-d payment_method="{{PAYMENT_METHOD_ID}}" \
-d confirm=true \
-d application_fee_amount="{{incrementalInvoiceAmountInCents}}" \
-d "metadata[quote_id]="{{SPOT_QUOTE_ID}"" \
-H "Stripe-Account: {{SPOT_CONNECTED_ACCOUNT_ID}}"Notes:
- Spot receives its share immediately.
- Refunds/disputes are handled by the platform; use
reverse_transfer=trueto pull back Spot’s share if refunded. - This approach cannot be used if a third-party operator/event host is MoR.
- Include metadata (
quote_id,enrollment_id) for reconciliation.
Option 2: Sequential Split (Third-Party MoR)
- Use when a third-party seller (operator/event host) is MoR or if the platform wants full control over payouts.
- The initial charge is captured by the operator/event host.
- Platform collects its own fee (platform commission + Spot cost) via
application_fee_amount. - Platform then transfers Spot’s share of revenue via a separate transfer.
Flow of Funds:
- Customer pays full amount to operator/event host (MoR).
- Platform collects an application fee from the operator’s charge - includes Spot cost + any platform commission.
- Platform transfers Spot’s share of revenue to Spot’s connected account.
Example Transfers:
- Operator charges customer with application fee to platform:
curl https://api.stripe.com/v1/payment_intents \
-u sk_test_platformKey: \
-d amount=10000 \
-d currency=usd \
-d payment_method="{{PAYMENT_METHOD_ID}}" \
-d confirm=true \
-d application_fee_amount="{{insurancePlusPlatformFeeInCents}}" \
-d "metadata[quote_id]"="{{SPOT_QUOTE_ID}}" \
-H "Stripe-Account: {{OPERATOR_CONNECTED_ACCOUNT_ID}}"- Platform transfers Spot’s share:
curl https://api.stripe.com/v1/transfers \
-d amount="{{spotInsuranceShareInCents}}" \
-d currency=usd \
-d destination="{{SPOT_CONNECTED_ACCOUNT_ID}}" \
-d "metadata[quote_id]"="{{SPOT_QUOTE_ID}}"For requotes, transfer the incremental invoice amount in cents:
curl https://api.stripe.com/v1/transfers \
-d amount="{{incrementalInvoiceAmountInCents}}" \
-d currency=usd \
-d "metadata[quote_id]="{{SPOT_QUOTE_ID}"" \
-d destination="{{SPOT_CONNECTED_ACCOUNT_ID}}"Notes:
- Spot’s share can be dynamically calculated per quote.
- Refunds/disputes are initiated by the MoR (operator); Spot’s transfer must be reversed manually if needed.
- Include metadata (
quote_id,enrollment_id) for reconciliation.
4. Enable Webhooks for Real-Time Sync
Set up Stripe webhooks on your platform to:
- Monitor successful payments
- Track application fees or transfers
- Handle refunds, chargebacks, and edge cases
Include metadata (e.g. quote_id, enrollment_id) to make reconciliation easier
Key Takeaways
- Spot is never the MoR. All charges appear under the platform or operator account.
- Option A (real-time split) is simpler, works when the platform is MoR, and Spot receives funds immediately.
- Option B (sequential transfer) works when third-party sellers are MoR or when the platform wants to control payouts.
- Spot’s share can be calculated dynamically per transaction to include Spot cost.
- Refunds and disputes are always initiated by the MoR, and Spot’s funds must be reversed as necessary.
Updated 2 days ago
