Connection checklist
Confirm all of the following:- Workspace settings → Integrations → Stripe shows Manage, not Enable.
- The Stripe App shows Connected to the expected Biqli workspace.
- The connection environment matches the Checkout Session: live for
cs_live_..., test or sandbox forcs_test_.... - Conversion tracking is enabled in the workspace.
- Your website hostname is allowed and the browser SDK uses an active
biqli_pk_...publishable key from the same workspace. - The visitor arrived through a conversion-enabled Biqli link and the SDK has a valid
bq_id. - Your site registered the Stripe Checkout Session before redirecting to Stripe.
A sale is missing
Check the customer journey in this order:- Open the destination through the exact short link you are testing.
- In the browser, verify
Biqli.getClickId()returns a click ID. - Confirm
storeStripeSession()succeeded before navigation to Checkout. - Complete payment in the same Stripe account and environment that is connected to the workspace.
- In Stripe Workbench, open the event destination and inspect the delivery for
checkout.session.completedorinvoice.paid. - Allow a short period for webhook delivery, then refresh the Biqli customer or conversion report.
Interpret Stripe delivery responses
Biqli stores one immutable ledger entry per Stripe event ID and environment. Replaying the same event is safe. Reusing an event ID with materially different event data is rejected.
A trial event failed before succeeding
Stripe can delivercustomer.subscription.created before checkout.session.completed. The subscription event does not yet have the exact Checkout attribution, so Biqli can return 500 processing_failed with a pending-attribution condition.
This is recoverable. The expected sequence is:
- the early subscription event is temporarily failed;
checkout.session.completedestablishes the Checkout, customer, and subscription mapping;- Stripe retries the original subscription event;
- Biqli processes one Stripe Free Trial lead.
Checkout was canceled or the card was declined
These outcomes should not change sales or revenue:- Returning through your cancel URL records no conversion.
- A declined payment records no sale.
- A failed 3DS authentication records no sale.
- An abandoned Checkout mapping expires and cannot create a late sale after its attribution window.
The customer is unknown
A Stripe subscription event may contain only a customer ID, while the later Checkout event contains name and email. Biqli first creates the account-scoped Stripe identity, then enriches it when trusted identity fields arrive. If the customer stays unknown:- confirm Checkout has
customer_details.emailor an expanded Stripe customer with an email; - confirm
checkout.session.completedwas delivered and processed; - confirm your signup lead uses the same Stripe customer ID as its external identity;
- do not substitute an email-only identity if a Stripe customer ID exists.
Country differs from Stripe billing details
Biqli’s customer country is the country of the attributed first-touch click. Stripe billing or card country is payment data and does not replace marketing attribution geography. The customer list and customer detail should display the same attributed-click country.A refund did not change revenue
Verify that:- the original attributed sale exists;
- the refund status is
succeeded; - Stripe delivered
refund.createdorrefund.updated; - the refund uses the same currency as the sale;
- the Stripe charge or PaymentIntent can be linked to the original sale.

