---
title: "Stripe"
description: "Connect your Stripe account to Two Minute Billing: find your API keys, connect them, and let Two Minute Billing register the webhook. Cards, ACH and SEPA Direct Debit."
canonical_url: "https://twominutebilling.com/help/guides/connect-a-payment-gateway/stripe"
---
# Stripe

> Connect your Stripe account to Two Minute Billing: find your API keys, connect them, and let Two Minute Billing register the webhook. Cards, ACH and SEPA Direct Debit.

Two Minute Billing charges cards and bank debits through **your** Stripe account. You keep your
Stripe rates, and Stripe pays out to your bank as usual.

## Before you start

- A Stripe account. Test mode works at once; live mode needs Stripe to activate your account.
- Stripe gives you two sets of keys: **test** and **live**. Connect the test keys to a test
business and the live keys to a live business.
- You need permission to manage payment gateways in Two Minute Billing. The owner and admin
roles have it.

## Find your API keys

In Stripe, open **Developers → API keys**. Make sure the **Test mode** toggle matches the business
you are connecting.

<screenshot :height="580" :single="true" :width="1310" alt="The Stripe dashboard's API keys page in test mode, showing the publishable key and the secret key" caption="Stripe → Developers → API keys. Reveal the secret key to copy it." src="gateways/stripe-api-keys">



</screenshot>

You need two values:

<table>
<thead>
  <tr>
    <th>
      Field
    </th>
    
    <th>
      Where to find it
    </th>
    
    <th>
      Looks like
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Secret Key
      </strong>
    </td>
    
    <td>
      Stripe Dashboard → Developers → API keys.
    </td>
    
    <td>
      <code>
        sk_live_…
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Publishable Key
      </strong>
    </td>
    
    <td>
      On the same page.
    </td>
    
    <td>
      <code>
        pk_live_…
      </code>
    </td>
  </tr>
</tbody>
</table>

<warning>

**Keep the secret key secret.** Anyone with the secret key can charge and refund in your Stripe account. Paste it only into
Two Minute Billing, which stores it encrypted, and never into an email or a chat.

</warning>

## Permissions

<warning>

**Use a key with every permission below.** The standard **secret key** has every permission. If you use a **restricted key** instead, give
it each permission in this table. A missing permission does not show when you connect: it shows
later, when a charge, a refund or the webhook fails.

</warning>

<table>
<thead>
  <tr>
    <th>
      Stripe permission
    </th>
    
    <th>
      Access
    </th>
    
    <th>
      Two Minute Billing uses it to
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Payment Intents
    </td>
    
    <td>
      Write
    </td>
    
    <td>
      Charge, capture, cancel and find payments
    </td>
  </tr>
  
  <tr>
    <td>
      Setup Intents
    </td>
    
    <td>
      Write
    </td>
    
    <td>
      Save a card or a bank mandate
    </td>
  </tr>
  
  <tr>
    <td>
      Customers
    </td>
    
    <td>
      Write
    </td>
    
    <td>
      Make and update the customer in Stripe
    </td>
  </tr>
  
  <tr>
    <td>
      Payment Methods
    </td>
    
    <td>
      Write
    </td>
    
    <td>
      Attach and remove saved payment methods
    </td>
  </tr>
  
  <tr>
    <td>
      Charges and Refunds
    </td>
    
    <td>
      Write
    </td>
    
    <td>
      Refund payments and read refunds made in Stripe
    </td>
  </tr>
  
  <tr>
    <td>
      Payment Disputes
    </td>
    
    <td>
      Read
    </td>
    
    <td>
      Read a dispute when Stripe reports it
    </td>
  </tr>
  
  <tr>
    <td>
      Mandates
    </td>
    
    <td>
      Read
    </td>
    
    <td>
      Read the mandate of a bank debit
    </td>
  </tr>
  
  <tr>
    <td>
      Balance
    </td>
    
    <td>
      Read
    </td>
    
    <td>
      Check the credentials
    </td>
  </tr>
  
  <tr>
    <td>
      Accounts
    </td>
    
    <td>
      Read
    </td>
    
    <td>
      Read your account's country when a payment method is saved
    </td>
  </tr>
  
  <tr>
    <td>
      Payment Method Domains
    </td>
    
    <td>
      Write
    </td>
    
    <td>
      Register your payment domain for Apple Pay
    </td>
  </tr>
  
  <tr>
    <td>
      Webhook Endpoints
    </td>
    
    <td>
      Write
    </td>
    
    <td>
      Register the webhook for you
    </td>
  </tr>
</tbody>
</table>

## Connect it in Two Minute Billing

1. Open **Settings → Payment gateways** and click **Add gateway**.
2. Select **Stripe** and paste the **Secret Key** and the **Publishable Key**.
3. Select the **currencies** and the **payment methods** this account handles.
4. Click **Create gateway account**.

Then open the account and click **Check credentials**. **Healthy** means Stripe accepted the key.

The payment methods you can turn on for Stripe:

- **Cards**
- **Direct Debit (ACH)** — US only. The debit settles asynchronously.
- **Direct Debit (SEPA)** — EU only. The debit settles asynchronously.

## Currencies

Two Minute Billing offers these 132 currencies on Stripe:

AED, AFN, ALL, AMD, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BIF, BMD, BND, BOB, BRL, BSD, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ETB, EUR, FJD, FKP, GBP, GEL, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HTG, HUF, IDR, ILS, INR, ISK, JMD, JPY, KES, KGS, KHR, KMF, KRW, KYD, KZT, LAK, LBP, LKR, LRD, LSL, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SEK, SGD, SHP, SLE, SOS, SRD, SZL, THB, TJS, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VND, VUV, WST, XAF, XCD, XCG, XOF, XPF, YER, ZAR, ZMW

Your Stripe account's country can limit these. For example, an account in India charges cards issued in India in INR only. Stripe converts a currency that you do not settle in.

Some payment methods take one currency only:

<table>
<thead>
  <tr>
    <th>
      Payment method
    </th>
    
    <th>
      Currency
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Direct Debit (ACH)
    </td>
    
    <td>
      USD
    </td>
  </tr>
  
  <tr>
    <td>
      Direct Debit (SEPA)
    </td>
    
    <td>
      EUR
    </td>
  </tr>
</tbody>
</table>

If you leave **Currencies** empty on the gateway account, the account takes each currency of your business that is on this list.

## Webhooks

Stripe tells Two Minute Billing about things that happen after a charge: a bank debit that
settles days later, a refund made in the Stripe dashboard, a dispute.

Two Minute Billing registers the webhook with Stripe for you when you save the account. Nothing to copy.

If the gateway account page shows the webhook as not configured:

1. Click “Register with Stripe” on the gateway account page. We create the endpoint and keep the signing secret.
2. Optional: confirm it appears under Developers → Webhooks in Stripe.

## Test it

In your test business, create a customer and save the test card `4242 4242 4242 4242` with any
future expiry date and any CVC. Collect an invoice: it is marked paid, and **Logs** shows the
call to Stripe and Stripe's answer.

## Go live

1. In Stripe, turn **Test mode** off and copy the **live** keys (`sk_live_…`, `pk_live_…`).
2. In your **live** business, add Stripe with those keys.
3. Two Minute Billing registers a separate webhook for live mode. Check it under
**Developers → Webhooks** in Stripe.

## Troubleshoot

- **Check credentials says "We could not check the credentials." with "Invalid API Key
provided".** The secret key is wrong or was rolled in Stripe. Copy it again from
**Developers → API keys** and update the gateway account.
- **The account page shows the webhook as not configured.** Follow the steps under
[Webhooks](#webhooks).
- **A bank debit stays pending.** ACH and SEPA debits take several business days to settle.
Two Minute Billing marks the invoice paid when Stripe reports the debit settled.

## Related

- [Payment gateways overview](https://twominutebilling.com/help/guides/connect-a-payment-gateway)
- [Recover failed payments](https://twominutebilling.com/help/guides/recover-failed-payments)
- [Handle disputes](https://twominutebilling.com/help/guides/handle-disputes)


## Sitemap

See the full [sitemap](https://twominutebilling.com/sitemap.md) for all pages.
