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.
When an invoice is paid through your Stripe account, Partner.io uses a two-step process to attribute it to the correct lead and partner:
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
Note: A lead's Stripe Customer ID is set automatically the first time a payment is successfully matched via email. The primary method therefore applies to all subsequent payments from that customer.
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 ❌
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.
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
Important: Adding a Stripe Customer ID does not backfill missed payments. Only future invoice events from Stripe will be attributed automatically.
If payments came through before attribution was set up:
Navigate to the lead in Partner.io
Select Add Revenue
Enter the payment amount, currency, and description
Commissions will be calculated and generated automatically based on the partner's program tier
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.
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.
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
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
Scenario: User signs up with one email but pays with a different email
Example:
John signs up for free trial with [email protected] (creates lead in Partner.io)
Company finance team processes payment with [email protected]
Partner.io cannot match payment to original lead
Why This Happens:
Lead record has [email protected]
Stripe payment has [email protected]
No Stripe Customer ID on lead record yet
Email matching fails
Ensure consistent email usage between signup and payment from customers. If mismatch occurs, manually link Stripe Customer ID to the lead record.
This usually happens when the email on your Stripe customer doesn't match the email on the lead record in Partner.io. For example, a customer might sign up with [email protected] but your finance team processes payment under [email protected]. Partner.io sees two different emails and can't make the connection.
The quickest way to diagnose this is to open the payment in your Stripe account and check the customer email, then compare it to the email on the lead in Partner.io.
If the emails differ:
Manually add the Stripe Customer ID to the lead record in Partner.io
Use Add Revenue on the lead to record any payments that were missed
Future payments will now be attributed automatically
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
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.