Stripe Integration Guide
Learn how we integrate with Stripe and how its implemented across Partner.io and the Partner Portal.
Table of Contents
🎯 Overview
- Overview - Understanding the main purposes of the Stripe integration
💰 Lead Attribution
- How It Works - Two-step attribution process
💸 Partner Payouts
- Setup Requirements - What partners and companies need
- Payment Process - From commission calculation to payment
💱 Currency Handling
- Currency Handling - How Partner.io displays vs processes different currencies
🔧 Troubleshooting
- Common Attribution Issues - Fixing payment matching problems
- Payout Issues - Resolving commission payment problems
- Frequently Asked Questions - Quick answers for users
Overview
Partner.io uses Stripe for two main purposes:
- Lead Attribution (Integration) - Integration with your Stripe account to track payments and attribute revenue to the correct partners
- Partner Payouts - Using Partner.io's Stripe infrastructure to facilitate commission payments to your partners
It's important to note that these are two separate systems. Lead attribution uses your Stripe integration, while partner payouts use Partner.io's own Stripe account as a payment facilitator. This guide will walk you through how both systems work, common issues you might encounter, and how to resolve them.
Lead Attribution
How It Works
When a payment comes through your Stripe account, Partner.io uses a two-step process to attribute it to the correct lead and partner:
Primary Attribution Method: Stripe Customer ID
- Payment from your Stripe account arrives with a Customer ID (e.g.,
cus_ABC123xyz
) - Partner.io searches for a lead where
customer_id = 'cus_ABC123xyz'
- If found: Payment is attributed ✅
- If not found: Falls back to email matching
Fallback Attribution Method: Email Matching
- Partner.io attempts to match using the
customer_email
from your Stripe invoice - Searches for a lead with a matching email address
- If found:
- Payment is attributed to the lead
- Stripe Customer ID is saved to the lead for future payments
- If not found: Automatic attribution fails ❌
Manual Attribution
If both methods fail, you can manually assign the Stripe Customer ID to the lead record in Partner.io. This will ensure future payments are automatically attributed.
Manual Customer ID Assignment Process
- Find the lead in Partner.io that should receive attribution
- Locate the Stripe Customer ID from your Stripe account
- Update the lead record with the Customer ID in Partner.io
- Future payments will be automatically attributed
Partner Payouts
Setup Requirements
For Partners
- Stripe Connected Account: Partners complete Stripe onboarding to create a connected account under Partner.io's Stripe infrastructure for receiving payouts.
- Bank details: For manual off-platform payments Partners can add their bank details which will appear on the invoice.
For Companies
Add a payment card in Partner.io for processing stripe commission payments. Navigate to Settings > Payment Settings to configure your payment method.
⚠️ IMPORTANT: Your payment card is stored as a customer in Partner.io's Stripe account and is only used for commission payments through our platform.
Payment Process
- Commission Calculation: System calculates owed commissions based on attributed revenue
- Invoice Generation: Invoices are created automatically based on schedule settings
- Payment Options:
- Stripe Payment: Click "Pay" button to process payment from your stored card to the partner's connected account
- Mark as Paid: Mark invoice as paid if payment was processed outside of Partner.io
⚠️ IMPORTANT: All invoice payments require manual review and approval in Partner.io, either to process the payment or to mark it as paid
Currency Handling
- Partner.io Interface: Always displays amounts in your company currency, defaults to USD but can be changed on request.
- Lead Attribution: Revenue tracking processes payments in the currency of the Stripe invoice, usually the currency in which you invoice customers
- Partner Payouts: Invoices are generated in the partner's organizational currency, and Stripe payment intents process in that same currency
Troubleshooting
Common Attribution Issues
Stripe Email Mismatch Problem
Scenario: User signs up with one email but pays with a different email
Example:
- John signs up for free trial with
john@techstartup.com
(creates lead in Partner.io) - Company finance team processes payment with
billing@techstartup.com
- Partner.io cannot match payment to original lead
Why This Happens:
- Lead record has
john@techstartup.com
- Stripe payment has
billing@techstartup.com
- No Stripe Customer ID on lead record yet
- Email matching fails
Solution
Ensure consistent email usage between signup and payment from customers. If mismatch occurs, manually link Stripe Customer ID to the lead record.
Payments Not Being Attributed to Lead
Scenario: Payment comes through your Stripe integration but isn't linked to any lead
Example:
- A customer signs up for a free trial through a partner referral (creates lead in Partner.io)
- When the trial ends, they upgrade to paid through your Stripe checkout
- Partner.io receives the payment webhook from your Stripe integration
- Partner.io cannot match the Stripe payment to the existing lead
Why This Happens:
- Lead was created with one email but customer paid with different email
- Stripe Customer ID is not linked to any lead record
- Customer used different payment details than signup details
Solution
- Verify lead exists with correct email in Partner.io
- Check if Stripe Customer ID is set on the lead record
- Confirm payment appears in your Stripe account with correct customer email
- Look for email mismatches between lead record and Stripe customer
- Manually link Stripe Customer ID to lead record if necessary
Payout Issues
Partner Not Receiving Commission
Verification Steps:
Step 1: Check Attribution (Integration Issues)
- ✅ Confirm payment was attributed to the correct lead in partner.io
- ✅ Verify lead is linked to the correct partner
- ✅ Check that revenue appears correctly from your Stripe integration
Step 2: Check Payment Processing (Partner.io's Payout System)
- ✅ Ensure partner has connected their Stripe account in the portal settings
- ✅ Verify partner has added valid bank account details in the partner portal
- ✅ Confirm you have added a payment card in Partner.io's Payment Settings
- ✅ Check invoice status and payment history in Partner.io
- ✅ Confirm your invoice schedule settings are configured correctly
Frequently Asked Questions
Does adding a Stripe Customer ID retroactively add payments to the lead?
No, it only ensures future payments are attributed correctly.
Can I bulk update Stripe Customer IDs for multiple leads?
Currently, Customer IDs must be updated individually per lead record. If you need to update many leads at once, contact support for assistance with bulk operations.
What happens if a customer refunds or cancels their subscription?
Partner.io tracks individual payments, not subscription states. Refunds and cancellations in Stripe don't automatically adjust commissions - you'll need to handle these manually in your commission calculations.
What data does Partner.io receive from Stripe webhooks?
We receive payment amounts, customer emails, customer IDs, invoice details, and transaction metadata. We don't store or access sensitive payment method information.