Answers
Some money never reaches your CRM. A membership platform, a course site or a booking tool charges your customers through your own Stripe account, and Keap never hears about it, so your dashboard shows that revenue as missing. Connect Stripe and those charges are read in and added to the revenue your CRM reports, matched to your contacts by email.
We ask for a restricted key that can only read, never your secret key. In Stripe open Developers → API keys, make sure test mode is off, and press Create restricted key. Set Charges, Customers and Refunds to Read and leave everything else at None. Create it, copy the key (it starts rk_live_) and paste it on Settings → Connections → Stripe. We refuse a secret key (sk_) outright, because it can move money, and a test key, because test charges are not money. The key is checked with one read before it is kept, stored encrypted, and never shown again.
Every charge that succeeded and was captured, less anything refunded, in the charge's own currency. Failed, pending and uncaptured charges are not money and are skipped. The whole history is read first, newest to oldest, a few hundred charges every fifteen minutes, and the card says how far back it has reached; until it finishes, older months read short. After that every new charge and every refund arrives within fifteen minutes, and a refund on an old charge takes it down too.
A charge is matched to the CRM contact with the same email: the Stripe customer's email, else the billing email, else the receipt email. A charge with no email, or an email your CRM does not hold, still counts, honestly unattributed, on the unattributed line.
When you connect you say whether Keap also takes payments through the same Stripe account. If it does not, every Stripe charge is added. If it does, a Stripe charge is left out when a paid Keap order for the same person, the same amount and currency, within three days, is already counted. That is a match by email and amount, not proof: a sale paid under a second email, or split into two payments, can still be counted twice, and two genuine purchases of the same amount in three days can be counted once. Connect again with the same key to change the answer.
A disputed charge still counts until we read how the dispute ended. A few currencies Stripe treats as special cases (ISK, HUF, TWD, UGX) are left out and counted on the card rather than guessed at. On an account whose revenue counts from QuickBooks, Stripe charges are not added, because the deposits are usually in your books already. Stripe's fees are not taken off: revenue is what the customer paid, as with your CRM's orders.
Disconnect on the card deletes the key, and Stripe charges stop counting from the next data refresh. Connecting again reads the whole history back in.