Connect Stripe

Updated October 5, 2026

Connect Stripe to import two things: the processing fee Stripe actually charged on each order, and your Stripe disputes (chargebacks). You need this if customers pay you through Stripe as a payment provider in your Shopify checkout.

Where
In the sidebar, open Integrations, then Stripe
Who
Stores that take payments through Stripe in Shopify. Owners, admins and members with access to the whole account can connect. Viewers and members limited to single stores cannot
Time
About 5 minutes
Updates
The first import starts as soon as you connect. After that, new fees and disputes are fetched about once an hour

What Is Imported#

DataWhat Profitario reads from StripeHow far back
Transaction feesThe fee Stripe charged on each successful payment2 years
DisputesAmount, reason, status and the dispute fee Stripe charged, if it did1 year

Each Stripe payment is matched to the Shopify order it paid for, using the payment reference Shopify stores on the order. One connection covers every store in your Profitario account.

If Stripe charged the fee in a different currency than your store uses, the fee is converted to your store currency at the exchange rate of the payment day.

Profitario only reads data. It cannot create charges, issue refunds or change anything in your Stripe account.

How Imported Fees Work With Your Fee Rules#

A fee rule on the Transaction Fees page is an estimate: a percentage plus a fixed amount. The fee imported from Stripe is the real amount. For each order, Profitario uses the first of these that exists:

PrioritySourceWhen it applies
1A fee you changed on the orderAlways wins
2The fee imported from StripeAs soon as the payment is matched to the order
3Your fee rule for the Stripe gatewayAs long as no Stripe fee exists for the order

Example. An order of $126.00 is paid through Stripe. Your fee rule is 2.9% + $0.30, so Profitario first calculates $126.00 × 0.029 + $0.30 = $3.95. The customer paid with a foreign card and Stripe actually charged $5.84. After the next sync the order shows $5.84, and your profit for that order is $1.89 lower than the estimate.

Keep your fee rule. It covers new orders until the real fee arrives, and any order whose Stripe payment could not be matched.

Create a Restricted Key in Stripe#

Profitario connects with an API key from your Stripe account. Create a restricted key: it can only do what you allow, and Profitario only needs to read.

  1. 1

    Step 1 of 3

    Start a restricted key in live mode#

    Follow Stripe's own guide for the current steps: Restricted API keys.

    Create the key in live mode. A test mode key connects without an error, but it contains none of your real payments.

  2. 2

    Step 2 of 3

    Set three permissions to Read#

    When Stripe asks for permissions, set these three to Read and leave everything else on None:

    Permission in StripeAccessUsed for
    Charges (Stripe may list it as Charges and Refunds)ReadYour payments
    Disputes (Stripe may list it as Payment Disputes)ReadYour disputes
    Balance transaction sourcesReadThe fee amount of each payment
  3. 3

    Step 3 of 3

    Copy the key#

    Stripe shows the finished key only once. Copy it right away. A live restricted key starts with rk_live_.

Connect Stripe in Profitario#

Your account needs at least one installed Shopify store before you can add an integration.

Integrations

To add a second Stripe account, repeat the steps with a key from that account.

What Happens Next#

  • Your orders are updated. Matched orders carry the real Stripe fee. Dashboard and reports use the new amounts.
  • Disputes appear in the report. Open a store in the sidebar, then Reports > Disputes. The dispute fee is counted as a cost on the disputed order, except for disputes you won. If Stripe reports no fee for a dispute, the default from Store settings > Order Events > Default dispute fee per gateway is used.
  • New data follows about once an hour. Each sync fetches the payments and disputes created since the last one. Last Sync on the Stripe page shows when that was.

Manage the Connection#

Click the three dots at the end of the connection row.

Manage the Connection

Check What Was Imported#

Payment Records lists one row per Stripe payment and one per dispute.

Check What Was Imported

Click a row to open Payment Record Details, including the order it was matched to.

In the screenshot, the payment of $126.00 with a fee of $3.95 is unmatched: its fee is not counted on any order until a matching order is found.

Limits#

  • Only Shopify orders paid through Stripe are matched. Payments in the same Stripe account that do not belong to a Shopify order in Profitario (invoices, another shop system, another business) stay unmatched and are not counted.
  • Only the fee of the original payment is imported. Payouts, refunds and later fee adjustments in Stripe are not read.
  • Only successful payments. Failed and pending payments are ignored.
  • History is limited. Fees go back 2 years, disputes 1 year.
  • The status of a dispute is not refreshed every hour. The hourly sync fetches disputes opened since the last sync. A dispute that was imported as open keeps that status until the disputes are read again. To refresh the last year, click Import Fees.
  • Not real time. New fees and disputes arrive with the hourly sync, not the moment the customer pays.

Troubleshooting#

What you seeCauseFix
Status Failed on the connectionStripe rejected the key: mistyped, deleted in Stripe, or a permission is missingHover the status to read the message. Correct the key or its permissions in Stripe, use Edit API Key if the key changed, then Import Fees
Disputes are imported, but no record of type fee existsThe key cannot read the fee amountsSet Balance transaction sources to Read on the key in Stripe, then click Import Fees
This API key is already connectedThe same key is already in the listUse the existing connection, or create a separate key
Connect a Shopify store before adding integrations.No installed Shopify store in the accountInstall Profitario on your Shopify store first
A dispute still shows as open although Stripe has closed itThe hourly sync only fetches newly opened disputesClick Import Fees to read the disputes of the last year again
Many records are unmatchedThe orders are not in Profitario yet, or the payments belong to something other than your Shopify ordersOnce the orders are imported, click Sync Orders
A new order shows the fee from your rule, or a clock, instead of Stripe's feeThe hourly sync has not run since the paymentWait for the next sync. See Why Transaction Fees Sometimes Appear Later
The fee on an order differs from your fee ruleExpected: the imported Stripe fee replaced the estimateNothing to do
Menu entries are greyed out and say Import already in progressAn import is runningWait until the status is Connected again

If the problem remains, contact support and send: the store, the last four characters of the key as shown in the API Key column, the status message, and one order number with its Stripe payment ID (it starts with ch_ or pi_). Never send the key itself.

Related articles

Was this article helpful?

We value your privacy
We use cookies to enhance your experience. By continuing to use our site, you consent to our use of cookies.

By clicking "Accept All", you consent to our use of cookies.

Learn more
Connect Stripe - Profitario