# Get paid: gateway by gateway

> What each gateway needs, how its payments reach ShopFast, which currencies it takes, and the steps and warnings that differ from one gateway to the next.

Source: https://shopfa.st/docs/selling/get-paid/gateways

Connecting works the same way for every gateway: pick it in the gallery, follow the steps in its panel, paste what they
tell you to copy and click **Connect**. That is shown step by step in
[the complete guide](https://shopfa.st/docs/selling/get-paid#connect-your-own-gateway-step-by-step). This page covers what differs.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/gallery-all.webp" alt="The full gallery of own gateways under Connect one, filter set to All: Stripe, PayPal, Square, Mollie, Razorpay, Paystack, Crypto to your wallet, NOWPayments, Cryptomus, BTCPay Server, PayPal (email only), Shopify, Paddle, Heleket, SumUp, Authorize.Net, NMI, Skinloop, Cash App, PayPal Friends & Family, Manual methods and Payment plugins, each with what you keep on a $24.00 sale." width="800" height="783" loading="lazy" decoding="async"><figcaption>Every gateway in the gallery, opened with the <strong>more</strong> button.</figcaption></figure>

## At a glance

"Payment notifications" is how the provider tells ShopFast a payment was made. Where it says you add a webhook, the
panel gives you the address to copy. "Store currencies" are the store currencies the gateway takes: checkout skips it
for the others.

| Gateway | What you paste | Payment notifications | Store currencies | Refunds from ShopFast |
| --- | --- | --- | --- | --- |
| Stripe | Secret or restricted key; optionally the publishable key and a payment method configuration ID | ShopFast adds its webhook | Any | Yes |
| PayPal | Client ID and Secret of a Live app | ShopFast adds its webhook | USD, EUR, GBP, CAD, AUD, JPY | Yes |
| PayPal (email only) | Your PayPal email | Each payment names ShopFast's address | USD, EUR, GBP, CAD, AUD, JPY | No, in PayPal |
| Square | Production access token; optionally the application ID | ShopFast adds its webhook | Your main location's currency: USD, CAD, GBP, AUD, JPY or EUR | Yes |
| Mollie | Live API key | Each payment names ShopFast's address | EUR, GBP, USD, CAD, AUD, JPY | Yes |
| Razorpay | Key ID, Key Secret and a webhook secret | You add ShopFast's webhook (`payment_link.paid` and `order.paid`) | INR, USD, EUR, GBP, CAD, AUD, JPY | Yes |
| Paystack | Live secret key | You paste ShopFast's address as the Live Webhook URL | USD | Yes |
| Shopify | Shop address, Client ID and Secret, then you approve the app | ShopFast adds its webhooks when you approve | Your Shopify store's currency | Yes |
| Paddle | API key; optionally a client-side token | ShopFast adds its notification destination | USD, EUR, GBP, CAD, AUD, INR, JPY | Yes, once Paddle approves |
| SumUp | Secret API key and merchant code | Each payment names ShopFast's address | EUR, GBP, USD | Yes |
| Authorize.Net | API Login ID, Transaction Key and Signature Key | ShopFast adds its webhook | USD, CAD, GBP, EUR, AUD | Yes |
| NMI | Private API key, public tokenization key, webhook signing key | You add ShopFast's webhook | USD, CAD | Yes |
| Crypto to your wallet | An xpub or a wallet address | ShopFast watches the chain | — | No, from your wallet |
| NOWPayments | API key and IPN secret key | Each invoice names ShopFast's address | USD, EUR, GBP, CAD, AUD, INR, JPY | No, in NOWPayments |
| Cryptomus | Merchant ID and Payment API key | Each invoice names ShopFast's address | USD, EUR, GBP, CAD, AUD, INR, JPY | No, in Cryptomus |
| Heleket | Merchant ID and API key for payments | Each invoice names ShopFast's address | USD, EUR, GBP, CAD, AUD, INR, JPY | No, in Heleket |
| BTCPay Server | Server address, store ID and API key | ShopFast adds its webhook to your server | — | Yes |
| Skinloop | API key, webhook signing secret, optionally the games | You add ShopFast's webhook | USD | No, in Skinloop |
| Cash App | Your $Cashtag and the Gmail that gets your receipts | Gmail forwards Cash App's receipts | USD, GBP | No, in Cash App |
| PayPal Friends & Family | Your PayPal primary email | You point PayPal's IPN at ShopFast's address | USD, EUR, GBP, CAD, AUD, JPY | No, in PayPal |

When a gateway does not take your store's currency, its tile says so and the panel warns you before you connect
([currency not supported](https://shopfa.st/docs/selling/get-paid#currency-not-supported)). How ShopFast checks each payment, whatever
the gateway: [How every payment is checked](https://shopfa.st/docs/selling/own-gateways#how-every-payment-is-checked).

## Where buyers pay, gateway by gateway

Most gateways take the payment in a window over your store's checkout, with the gateway's own form, so buyers never
leave your store. The rest send buyers to the gateway's own page, because they have no form that runs on another
site. [Where buyers pay](https://shopfa.st/docs/selling/own-gateways#where-buyers-pay) explains the window.

| Gateway | In the window over your checkout | When it goes to the gateway's page instead |
| --- | --- | --- |
| Stripe | Stripe's embedded checkout | No publishable key, or Stripe's checkout cannot load |
| PayPal | PayPal's buttons (approval in PayPal's popup) | PayPal's buttons cannot load |
| Square | Square's card fields, Google Pay, Cash App Pay, Apple Pay | No application ID, or Square's fields cannot load |
| Razorpay | Razorpay's checkout window | Razorpay's checkout cannot load (its payment link) |
| Paystack | Paystack's popup | The popup cannot load (Paystack Checkout) |
| Paddle | Paddle's checkout | No client-side token, or Paddle refuses your store's address (your default payment link) |
| SumUp | SumUp's card form | The form cannot load (SumUp's hosted page) |
| Authorize.Net | Authorize.Net's payment form | The form cannot load (its page, for the same payment) |
| NMI, Cash App, PayPal Friends & Family | Always | Never |
| Mollie, Shopify, PayPal (email only), Skinloop, NOWPayments, Cryptomus, Heleket, BTCPay Server | Never | Always |

When the window cannot show the gateway's form, it says so and offers the gateway's page with one click.

## Stripe

Buyers pay with cards, Apple Pay, Google Pay and every method you turn on in Stripe: Link, Klarna, WeChat Pay, Amazon
Pay, iDEAL, Alipay and the others, each where it suits the buyer's currency and device. With your publishable key,
they pay in Stripe's embedded checkout in a window over your store; without it, on checkout.stripe.com. The panel's
steps are in [the complete guide](https://shopfa.st/docs/selling/get-paid#2-follow-the-steps-in-the-panel).

- **Restricted key.** In **Developers → API keys**, click **Create restricted key** and give it Write access to
  Checkout Sessions, Refunds and Webhook Endpoints, and to Payment Method Domains (ShopFast registers your store's
  address for Apple Pay with it). Your secret key works too, but a restricted key can do only what ShopFast needs.
- **Publishable key** (optional, recommended). Copy the publishable key (`pk_live_…`) from the same API keys page. It
  must be of the same mode as the secret key: a test publishable key with a live secret key is refused under the
  field. Methods that need the buyer's bank or wallet app (iDEAL, Klarna, Alipay…) open it and come back to your store.
- **Payment method configuration ID** (optional). To choose exactly which methods buyers see, create a configuration in
  **Settings → Payments → Payment methods** in Stripe and paste its ID, which starts with `pmc_`. Without one, buyers see
  every method you turned on.
- ShopFast adds its webhook to your Stripe account. Disconnecting removes it.

## PayPal: with keys, or with just your email

There are two ways to take PayPal checkout payments. Pick one.

| | PayPal | PayPal (email only) |
| --- | --- | --- |
| You need | A PayPal Business account and a Live app in developer.paypal.com | The email of any PayPal account |
| You paste | Client ID and Secret | Your PayPal email |
| Buyers pay with | PayPal balance, Pay Later and cards through PayPal | PayPal checkout |
| Refunds | From ShopFast | In your PayPal account |

**PayPal** (with keys): sign in at developer.paypal.com, open **Apps & Credentials**, switch to **Live** and click
**Create App** (type Merchant). Copy the app's **Client ID** and **Secret key 1**. ShopFast adds its webhook to the app.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/paypal-keys-steps.webp" alt="The Connect PayPal panel: two steps with drawings of developer.paypal.com. Step 1, Apps & Credentials → Live: click Live and + Create App. Step 2, the app page: copy the Client ID and Secret key 1." width="520" height="736" loading="lazy" decoding="async"><figcaption>PayPal with keys: create a Live app, then copy its Client ID and Secret.</figcaption></figure>

**PayPal (email only)**: paste the email of the PayPal account that should receive the money (**Settings → Account →
Email addresses** in PayPal). There is nothing to set up in PayPal: each payment tells PayPal where to send its
notification, and ShopFast checks each one with PayPal. If you ever turned **Instant payment notifications** off, turn
them back on.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/paypal-email-sheet.webp" alt="The Connect PayPal (email only) panel: a warning that PayPal holds some payments as pending (an eCheck, a currency your PayPal account does not accept on its own, a review) and those orders wait; three steps (find your PayPal email, nothing to set up in PayPal, refunds happen in PayPal); the field PayPal email address and the button Connect PayPal (email only)." width="520" height="1003" loading="lazy" decoding="async"><figcaption>PayPal (email only), with its warning about pending payments.</figcaption></figure>

The panel warns that **PayPal holds some payments as pending (an eCheck, a currency your PayPal account does not accept
on its own, a review): those orders wait until PayPal completes the payment.** Refunds happen in PayPal (**Activity →
the payment → Issue a refund**).

## Square, Mollie, Razorpay and Paystack

- **Square**: in developer.squareup.com, open your application (or create one), switch to **Production**, open
  **Credentials** and copy the **Production access token**. ShopFast uses your main location and adds its webhook. The
  location's currency must be your store's. Buyers pay in Square's card fields (and Google Pay, Cash App Pay, and Apple
  Pay where your domain is registered with Square) in a window over your store; ShopFast reads the application ID from
  the token. Paste the **Production application ID** from the same page only if ShopFast asks for it.
- **Mollie**: in **Developers → API keys**, copy the **Live API key** (it starts with `live_`). Each payment tells
  Mollie where to report back, so there is nothing else to set up.
- **Razorpay**: in Live mode, open **Account & Settings → API keys**, click **Generate Key** and copy the Key ID and
  the Key Secret (shown once). Then **Account & Settings → Webhooks → Add New Webhook**: paste ShopFast's address, type
  a secret of your own and tick `payment_link.paid` and `order.paid`. Paste that secret in **Webhook secret** too.
  Buyers pay in Razorpay's checkout window over your store; the payment link is their way out if it cannot open.
- **Paystack**: in **Settings → API Keys & Webhooks**, copy the **Live Secret Key**, paste ShopFast's address into
  **Live Webhook URL** and click **Save changes**. Paystack takes only USD of ShopFast's currencies. Buyers pay in
  Paystack's popup over your store; it resumes the payment ShopFast started, so no public key is needed.

## Paddle

Paddle is a merchant of record itself: it handles sales tax, and buyers pay with cards, PayPal, Apple Pay and Google
Pay. Its setup has one step the others do not: Paddle must approve your website first.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/paddle-sheet.webp" alt="The Connect Paddle panel: a warning that Paddle opens its checkout on a page of your own website that loads Paddle.js and must approve that website first, that buyers pay exactly your price with Paddle taking sales tax and its fee out of it, and that refunds wait for Paddle's approval. Step 1 shows Paddle's API keys page (New API key, write access to Transactions, Adjustments and Notification settings, read access to Checkout settings, copy the key). Step 2 shows Website approval (add your domain, status Approved)." width="520" height="978" loading="lazy" decoding="async"><figcaption>Paddle's warning, the API key step and the website approval step.</figcaption></figure>

1. In **My account → Settings → Authentication → API keys**, click **New API key**. Give it write access to
   Transactions, Adjustments and Notification settings, and read access to Checkout settings. Copy the key (shown once).
2. Submit your website in **My account → Settings → Website approval** and wait for Paddle to approve it.
3. In **Checkout → Checkout configuration**, set **Default payment link** to a page of that website that loads
   Paddle.js. ShopFast checks it when you connect and adds its notification destination.

4. Optional: to let buyers pay in a window over your store, create a client-side token in **Developer tools →
   Authentication → Client-side tokens**, paste it in **Client-side token**, and add your store's address to
   **Website approval**. Paddle opens its checkout only on addresses it approved: until it approves your store's,
   buyers go to your default payment link, as without a token.

Buyers pay exactly your price: Paddle takes sales tax and its fee out of it. Refunds wait for Paddle's approval.

## SumUp, Authorize.Net and NMI

- **SumUp**: in **Settings → For developers → Toolkit → API keys**, click **Create** and copy the secret key (shown once,
  not the public key). Your merchant code starts with M. ShopFast asks SumUp whether the account is a sandbox and refuses
  one while checkout takes real money. EUR, GBP and USD only. Buyers type their card into SumUp's own card form in a
  window over your store.
- **Authorize.Net**: in the Merchant Interface, open **Account → Settings → Security Settings → General Security
  Settings → API Credentials & Keys**. Copy the API Login ID, then make a **New Transaction Key** and a **New Signature
  Key**. The panel warns: **Your Authorize.Net account must take your store's currency and only that one, and must not
  be in Test Mode.** Buyers pay in Authorize.Net's own payment form, shown in a window over your store.
- **NMI**: in **Settings → Security Keys**, add a private key with API permission and a public key with Tokenization
  permission. In **Settings → Webhooks**, add ShopFast's address, tick `transaction.sale.success`, save and copy the
  signing key. The panel warns: **Your NMI account must not be in test mode: ShopFast refuses it, since test mode
  approves cards without charging them.** Buyers type their card into NMI's own card fields on ShopFast's pay page.

## Shopify

Buyers pay on your Shopify store's checkout: Shopify Payments, Shop Pay, Apple Pay and Google Pay. You need an active
Shopify plan, and your Shopify store must sell in the same currency as your ShopFast store. Connecting has two parts:
an app you make in Shopify's Dev Dashboard, then your approval on Shopify.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/shopify-steps.webp" alt="The Connect Shopify panel: a warning that buyers pay on your Shopify store's checkout, so you need an active Shopify plan and the same currency; step 1, Create app in the Dev Dashboard; step 2, a Redirect URL box with a copy button, outlined, and a drawing of the app's Versions page: App URL, Redirect URLs and Scopes to paste, then Release." width="520" height="1001" loading="lazy" decoding="async"><figcaption>Shopify's first steps. The redirect address to copy is outlined.</figcaption></figure>

1. In Shopify's Dev Dashboard, with the account that owns your store, click **Create app**, choose **Start from Dev
   Dashboard** and name it ShopFast.
2. On the app's **Versions** page, set the **App URL** and the **Redirect URLs** to the exact addresses in the panel,
   add the scopes `write_draft_orders, read_draft_orders, read_orders, write_orders` and click **Release**.
3. In the app's **Settings**, copy the **Client ID** and **Secret** under Credentials.
4. Paste them with your store's `your-store.myshopify.com` address (not your own domain) and click **Connect Shopify**.

The panel then asks for one last step. Click **Approve on Shopify**: Shopify asks you to approve the app, then brings you
back to ShopFast.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/shopify-approve.webp" alt="The Connect Shopify panel after pasting the keys: 'One last step: approve on Shopify. Your app's keys for your-store.myshopify.com (Shopify, waiting for approval) are saved. Shopify now asks you to approve the app, then brings you back here.' Buttons Later and Approve on Shopify, outlined." width="520" height="383" loading="lazy" decoding="async"><figcaption>Keys saved: approve the app on Shopify.</figcaption></figure>

If you click **Later**, the row waits with **Finish setup** and its own **Approve on Shopify** button.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/shopify-row.webp" alt="The Shopify row: badge Finish setup, 'your-store.myshopify.com (Shopify, waiting for approval) · Keys saved. Approve your app on Shopify to finish.', health 'Needs a look · Finish onboarding with the provider before it can take payments.', and the buttons Approve on Shopify (outlined), Replace keys and Disconnect." width="800" height="76" loading="lazy" decoding="async"><figcaption>A Shopify connection waiting for your approval.</figcaption></figure>

Back from Shopify, a page checks Shopify's approval and adds ShopFast's webhooks to your app. It then says the store is
connected, with **Back to payments**. Buyers pay through Shopify once your store uses its own gateways. If Shopify's
approval did not come back, see [Shopify not approved yet](https://shopfa.st/docs/selling/get-paid#shopify-not-approved-yet).

## Crypto to your own wallet

Buyers pay from any wallet straight to yours in BTC, LTC, USDC, USDT or ETH. ShopFast never holds keys or coins and
takes no fee. The **Crypto to your wallet** tile opens its own page.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/crypto-wallet.webp" alt="The Crypto to your wallet page: the tabs Setup and Payments; the Your wallets card with an Off switch and the fields Bitcoin extended public key, Litecoin extended public key, EVM address (Ethereum, Polygon, Base, Arbitrum) and Solana address; and an At checkout card: 'Buyers do not see crypto yet. Switch crypto on and save.', ShopFast fee: None, Matching per coin." width="800" height="484" loading="lazy" decoding="async"><figcaption>The <strong>Setup</strong> tab of Crypto to your wallet.</figcaption></figure>

1. Under **Your wallets**, paste public keys and addresses only: a Bitcoin or Litecoin extended public key (each order
   gets the next receiving address), an EVM address (one address for USDC, USDT and ETH on every network you pick) or
   a Solana address (USDC on Solana). A private key or seed phrase never belongs here, and ShopFast refuses one.
2. Under **Coins buyers can pick**, choose the coins and networks. Coins without a wallet stay off.
3. Under **Price lock and edge cases**, set how long a quote holds, how short a payment may be, and what happens to
   overpayments and late payments. See [order limits](https://shopfa.st/docs/selling/order-limits#crypto-how-short-a-payment-may-be).
4. Turn the switch on (**On at checkout**) and click **Save changes** in the bar at the bottom.

Crypto to your wallet works on your own gateways: on a store set to ShopFast Pay, the page says **Switch to your own
gateways to take crypto to your wallet.** The **Payments** tab lists every crypto payment. Underpaid and late payments
wait there for you: **Accept as paid**, or **I sent it back** once you returned the coins.

## NOWPayments, Cryptomus, Heleket and BTCPay Server

- **NOWPayments**: in **Settings → Payments → API keys**, click **Add new key**. On the same page, under Instant payment
  notifications, click **Generate** and copy the IPN secret key (shown once).
- **Cryptomus**: in **Business → your merchant → Settings → API integration**, copy the Merchant ID and generate a
  Payment API key (not the payout key).
- **Heleket**: create a merchant in **Business → Merchants**, click **Leave a request** in its Settings with your store's
  address (the panel gives it to copy), and wait for Heleket's moderation. The panel warns that **Heleket must approve
  your merchant (a website and domain check) before its API key for payments works.** Then copy the Merchant ID and the
  API key for payments.
- **BTCPay Server**: a short wizard instead of a key panel. You need a BTCPay Server you control, with a store for the
  coins you accept.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/btcpay-wizard.webp" alt="The Connect BTCPay Server panel: 'You keep about $24.00 of a $24.00 sale', three steps (Your BTCPay Server, Create an API key, Check and connect), the first step listing what you need: the https address of your server, the store ID and an API key. Buttons Cancel and Next." width="480" height="640" loading="lazy" decoding="async"><figcaption>BTCPay Server's three-step wizard.</figcaption></figure>

For BTCPay, create the API key in **Account → API keys → Generate key** with only these permissions: view invoices,
create invoices, modify webhooks and create pull payments (for refunds). The last step, **Enter server details**, checks
the key against your server and registers ShopFast's webhook there.

Crypto payments cannot be pulled back by ShopFast: refund them from the processor or your wallet.

## Skinloop

Buyers pay with CS2 and Rust skins from their Steam inventory, on Skinloop's checkout, priced in US dollars.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/skinloop-sheet.webp" alt="The Connect Skinloop panel: a warning that Skinloop prices in US dollars only, skin payments are final, and a CS2 trade sits in Steam's trade hold for up to 8 days while the order waits; step 1 shows creating an API key with checkout:create and checkout:read and the games." width="520" height="680" loading="lazy" decoding="async"><figcaption>Skinloop's warning and its first step.</figcaption></figure>

1. In **API Keys & Webhooks**, create an API key with the `checkout:create` and `checkout:read` scopes for the games you
   accept. Copy it (shown once).
2. In **Settings → Checkout Settings → Checkout Redirect Origins**, add your store's address.
3. In **API Keys & Webhooks → Webhooks**, add ShopFast's address, subscribe it to `payment.pending`,
   `payment.completed` and `payment.reverted`, and copy its signing secret (`whsec_…`).
4. If your key allows only one game, enter it in **Games** (`cs2` or `rust`). Leave it empty for both.

Your store must sell in USD. A CS2 order waits during Steam's trade hold and is delivered once Skinloop confirms the
trade.

## Person to person: Cash App and PayPal Friends & Family

Buyers send money to your $Cashtag or PayPal account with a short order code in the note. ShopFast's pay page shows
them the exact amount, where to send it and the code, and ShopFast confirms the payment by itself. They are under
**Person to person** in the gallery.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/gallery-p2p.webp" alt="The gallery filtered to Person to person: the Cash App tile ('Buyers send money to your $Cashtag with an order code', US and UK) and the PayPal Friends & Family tile ('Buyers send money to your PayPal with an order code', 200+ markets), each with $24.00 you keep." width="800" height="247" loading="lazy" decoding="async"><figcaption>The <strong>Person to person</strong> filter.</figcaption></figure>

<div class="callout callout--warn"><p>These are personal payments, and the panels say so before you connect.
Cash App: <strong>buyers have no purchase protection, and Cash App can limit personal accounts that take business
payments. A Cash App for Business account is safer.</strong> PayPal Friends &amp; Family: <strong>PayPal's terms do not
allow Friends &amp; Family payments for goods: PayPal can limit your account, and buyers have no purchase
protection.</strong> PayPal checkout, with keys or just your email, avoids that.</p></div>

### Cash App

Cash App has no notifications of its own for personal accounts, so Cash App's receipt emails reach ShopFast through
your Gmail. ShopFast accepts a receipt only when Cash App's email signature checks out, it was sent to your email, and
it carries the code and the exact amount.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/cashapp-sheet.webp" alt="The Connect Cash App panel: the warning about person-to-person payments, then steps: turn on email notifications for payments in Cash App; in Gmail, add your ShopFast forwarding address (shown with a copy button) under Forwarding and POP/IMAP, with a drawing of Gmail's forwarding settings; Gmail's confirmation code appears in the panel." width="520" height="808" loading="lazy" decoding="async"><figcaption>Cash App's warning and its first steps. Your forwarding address is in step 2.</figcaption></figure>

1. In Cash App, open your profile and turn on email notifications for payments.
2. Enter your **$Cashtag** and the **Gmail address that gets your Cash App receipts**, and click **Connect Cash App**.
3. The panel now shows **Forward Cash App receipts to ShopFast**, with three steps and a live status.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/cashapp-connected.webp" alt="The Cash App panel after connecting: '$NorthwindStudio (Cash App) is connected. Buyers can pay with Cash App now.' Below, 'Forward Cash App receipts to ShopFast' with the status 'Waiting for the first receipt' and three steps: Add this address in Gmail (your ShopFast address with a copy button and a link to Gmail's forwarding settings), Confirm it with Gmail's code (waiting for Gmail's confirmation email), Forward only Cash App receipts (From: cash@square.com with a copy button)." width="520" height="833" loading="lazy" decoding="async"><figcaption>After connecting: the forwarding steps, waiting for the first receipt.</figcaption></figure>

- **Add this address in Gmail**: in Gmail, **Settings → See all settings → Forwarding and POP/IMAP → Add a forwarding
  address**, paste your ShopFast address, then **Next → Proceed**. **Open Gmail's forwarding settings** goes there.
- **Confirm it with Gmail's code**: Gmail sends a confirmation code to your ShopFast address. A few seconds after you
  click **Proceed**, the code appears right in this step, with a copy button and Gmail's confirmation link, so you never
  open that email. It also names the Gmail address that asked: only confirm it if that is yours. Keep **Disable
  forwarding** selected in Gmail: only Cash App receipts should be forwarded.
- **Forward only Cash App receipts**: in Gmail's search box, open **Show search options**, put `cash@square.com` in
  **From**, click **Create filter**, tick **Forward it to** and pick your ShopFast address.

The status turns to **Working** with the time of the last receipt once one arrives. Then make a $1 test purchase on your
store with Cash App: it is marked paid as soon as the receipt arrives. Later, **Forwarding** on the Cash App row opens
these steps again.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/connected-list.webp" alt="Connected own gateways: PayPal (email only), Shopify (Finish setup), Cash App with 'Needs a look · Waiting for the first Cash App receipt.' and its Forwarding button outlined, and PayPal Friends & Family with Change details and Disconnect." width="800" height="303" loading="lazy" decoding="async"><figcaption>Cash App's row says <strong>Waiting for the first Cash App receipt.</strong> until one arrives. <strong>Forwarding</strong> is outlined.</figcaption></figure>

### PayPal Friends & Family

PayPal's Instant Payment Notification (IPN) tells ShopFast about each payment. ShopFast checks every notification with
PayPal, and it must name your account, the code and the exact amount.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/paypal-ff-sheet.webp" alt="The Connect PayPal Friends & Family panel: the warning that PayPal's terms do not allow Friends & Family payments for goods, then step 1 with a Notification URL box and copy button, outlined, and a drawing of PayPal's IPN settings: paste the Notification URL, tick Receive IPN messages (Enabled), click Save." width="520" height="692" loading="lazy" decoding="async"><figcaption>PayPal Friends &amp; Family: the warning and the IPN step. The address to copy is outlined.</figcaption></figure>

1. In PayPal, open **Account Settings → Notifications** and click **Update** next to Instant payment notifications.
   Click **Choose IPN Settings**, paste ShopFast's address as the **Notification URL**, select **Receive IPN messages
   (Enabled)** and save. PayPal shows these settings on Business accounts: if you do not see them, upgrade to Business
   (free) and keep the same email.
2. Paste the **Primary email of your PayPal account** and click **Connect PayPal Friends & Family**.
3. Make a $1 test purchase: the order is marked paid once PayPal reports it.

<figure class="doc-shot"><img src="https://shopfa.st/docs/img/get-paid/paypal-ff-connected.webp" alt="The panel after connecting: 'payments@northwind-studio.example (PayPal Friends & Family) is connected. Buyers can pay with PayPal Friends & Family now. Payments confirm once the webhook you added in PayPal Friends & Family delivers its first event.' and a Done button." width="520" height="405" loading="lazy" decoding="async"><figcaption>Connected. Payments confirm once PayPal sends its first notification.</figcaption></figure>

### Payments that paid no order

A payment with the wrong amount, without the code, with more than one code, or with the code of a checkout that expired
or was already paid does not pay an order. It is kept under its row as **1 payment paid no order** (or more). Open it to
see each payment's amount, sender, note and the reason, for example **The note has no order code.** The row's health
also says how many payments in the last 7 days paid no order.

Sort these out with the buyer in Cash App or PayPal: refund the payment there, or make the order by hand. Refunds for
person-to-person payments always happen in Cash App or PayPal.
