# Connect your own gateway

> Stripe, PayPal, Square, Shopify, Paddle, Mollie, SumUp, Authorize.Net, NMI, Razorpay, Paystack, crypto processors, Skinloop, Cash App, PayPal Friends & Family and gift cards: what you need, where to find it, and how ShopFast confirms every payment.

Source: https://shopfa.st/docs/selling/own-gateways

Your own gateway is the other way to get paid next to [ShopFast Pay](https://shopfa.st/docs/selling/shopfast-pay). You connect it with
your own account's credentials: there is no review and nothing for ShopFast to set up first. Buyers pay your account
and ShopFast takes no fee on those orders ([payment models](https://shopfa.st/docs/selling/payment-models)).

Open **Money → Payments** (or the **Choose how you get paid** step in **Get started**) and pick a gateway. The panel
walks you through it step by step, with a drawing of each screen you need in the provider's dashboard, the exact
values to copy, and a link to the right page. [Get paid: the complete guide](https://shopfa.st/docs/selling/get-paid) shows every step
with screenshots, and [gateway by gateway](https://shopfa.st/docs/selling/get-paid/gateways) what differs per gateway.

## Who takes your payments after you connect

- **ShopFast Pay is not available for your store** (you have not applied, or are not approved yet): connecting a gateway
  that can take payments moves your store to your own gateways right away. The panel says **Buyers now pay through
  your own gateways**. A gateway with one step left (Shopify's approval, Stripe or PayPal onboarding) moves it when
  that step is done.
- **Your store is already on your own gateways**: buyers can pay with the new gateway at once.
- **ShopFast Pay takes your payments**: the gateway is added and ready, and buyers keep paying through ShopFast Pay until
  you pick **Your own gateways** at the top of **Money → Payments**.

You can change who takes payments at any time with that choice, as [payment models](https://shopfa.st/docs/selling/payment-models#choosing-and-switching)
explains.

## How every payment is checked

An order is created, and its keys or files delivered, only when all of these hold:

- the payment comes from the provider itself: ShopFast checks the provider's signature where it signs, and always
  reads the payment back from the provider with your credentials before trusting it;
- it is for the checkout ShopFast created (its id or order code), at the provider the buyer chose;
- it is complete (not pending, partly paid or held);
- the amount and currency are exactly the checkout's total: a payment that is a cent short, or the same number in
  another currency, does not count;
- it has not been counted before: a notification sent twice, or a second payment for the same cart, never makes a
  second order. A second payment for another checkout of the same cart is refunded where the provider allows it; a
  second payment for the very same checkout (a pay link used twice) sends you a notice with the payment to refund.

Some providers' pay links stay usable after ShopFast closes a checkout (a PayPal link, a Shopify draft order). If a
buyer pays a checkout you cancelled, or one you cancelled in Fraud Shield, the order is made but **held**: nothing is
delivered until you release it or refund it. A checkout that only ran out of time still delivers when its exact total
arrives late (a pending PayPal payment, slow crypto confirmations).

Prices always come from your store, never from the buyer's browser. Chargebacks your gateway reports (Stripe, PayPal)
mark the order as disputed, and a Skinloop trade the buyer reverses after delivery counts as a lost chargeback: the
order's keys and licenses end.

## Where buyers pay

With most gateways, buyers never leave your store to pay. Pay opens a window over your checkout with the gateway's
own form: Stripe's checkout, PayPal's buttons, Square's card fields, Razorpay's or Paystack's payment window, Paddle's
checkout, SumUp's card form, Authorize.Net's form or NMI's card fields. The window is ShopFast's pay page, served on
your store's own address. Card and account details go into the gateway's own fields; ShopFast never sees them. Wallets
like PayPal open their own popup, and a bank that asks for 3-D Secure shows its check in place.

| Gateway | Where buyers pay | What it needs |
| --- | --- | --- |
| Stripe | In the window: Stripe's embedded checkout, opened on the method the buyer picked at checkout (see [Every way to pay at checkout](#every-way-to-pay-at-checkout)) | Your publishable key. Without it, buyers pay on checkout.stripe.com; add it on Money → Payments, no reconnecting |
| PayPal | In the window: the PayPal, Pay Later, Venmo or card button the buyer picked, approval in PayPal's popup | Nothing more |
| Square | In the window: Square's card fields, Google Pay, Cash App Pay, and Apple Pay where your domain is registered with Square | The application ID, which ShopFast reads from your access token (an optional field if Square does not say). Without it, buyers pay on Square's payment page |
| Razorpay | In the window: Razorpay's checkout (UPI, cards, netbanking, wallets) | Nothing more. Tick `order.paid` for your webhook too |
| Paystack | In the window: Paystack's payment popup | Nothing more |
| Paddle | In the window: Paddle's checkout | A client-side token (optional field), and your store's address approved by Paddle. Without them, buyers pay on your default payment link |
| SumUp, Authorize.Net, NMI | In the window: the gateway's card form | Nothing more |
| Mollie, Shopify, PayPal (email only), Skinloop, NOWPayments, Cryptomus, Heleket, BTCPay Server | On the gateway's own page | These gateways have no form that runs on another site, so buyers go to their page and come back to their order |
| Cash App, PayPal Friends & Family | In the window: what to send and the order code | Nothing more |

If the gateway's form cannot load in the window (a blocked script, or the gateway refuses to open there), the window
says so and offers the gateway's own page for the same payment, so a buyer is never stuck. Closing the window brings
the checkout back. Whatever the window shows, the checks in [How every payment is checked](#how-every-payment-is-checked)
are the same: the window only tells ShopFast to look, and ShopFast asks the gateway itself.

## Every way to pay at checkout

Your checkout lists each way to pay your gateway offers as its own choice, with its mark: with Stripe, every method
you turned on in Stripe (Settings → Payments → Payment methods), such as Amazon Pay, WeChat Pay, Alipay, Cash App Pay,
Klarna, Afterpay, Affirm, Revolut Pay, PayPal, iDEAL, Bancontact or SEPA Direct Debit; with PayPal, PayPal, Pay Later,
Venmo and cards; with Square, cards and Cash App Pay. Apple Pay, Google Pay and Link show inside **Card**: the buyer's
device offers them there. **Card** opens Stripe with every method you have on, so a method ShopFast does not list yet
still works there. Any other choice opens the gateway on that method alone; if Stripe refuses it for the order (not
activated, outside its amounts), the buyer stays on your checkout with "not available for this order right now" and
picks another way to pay. Orders record how the buyer actually paid. Cash App Pay and direct debits (SEPA, ACH, Bacs)
count as cards for your order limits, because buyers can reverse them.

- **What shows where.** A method shows only in currencies it can charge in (iDEAL in euro stores, Cash App Pay in
  dollar stores) and only to buyers from countries the gateway offers it in (iDEAL in the Netherlands, Bancontact in
  Belgium). Money → Payments lists the rest under "Not offered in" your currency.
- **Stripe's list stays current.** ShopFast reads your methods from Stripe when you connect, once a day after that,
  and when you click **Refresh** on Stripe's row in Money → Payments. A restricted key needs Read access to Payment
  Method Configurations for this; without it the row says so, and checkout keeps the last list (cards, Apple Pay and
  Google Pay to start). With Read access to PaymentIntents too, each order shows exactly how the buyer paid. With a payment method configuration ID (under "More Stripe settings"), its methods are used instead
  of your account's defaults.
- **The publishable key.** Stripe's row says when buyers still leave your store for Stripe's page. Paste the
  publishable key (pk_live_…) there and click **Save**: ShopFast checks that it is a publishable key of the same mode
  as your secret key, that Stripe knows it and, where Stripe's keys show it, that it belongs to the same account.

## What happens to your credentials

- ShopFast checks them with the provider before saving anything. Keys the provider refuses, test keys while checkout
  takes real payments, or a key of the wrong shape are turned down with a message under the field.
- Saved credentials are encrypted and never shown again, not to you and not to your team. To change them, connect
  again; **Disconnect** removes them (and the webhook ShopFast added, where it added one).

## Cards and wallets

| Gateway | Buyers pay with | What you need |
| --- | --- | --- |
| Stripe | Cards, Apple Pay, Google Pay and every method you turn on in Stripe | A restricted key (write access to Checkout Sessions, Refunds and Webhook Endpoints, Payment Method Domains for Apple Pay, and read access to Payment Method Configurations and PaymentIntents) or your secret key. Optionally your publishable key (pk_live_…, from the same page) so buyers pay in a window over your store, and a payment method configuration ID (pmc_…) to choose exactly which methods show |
| PayPal | PayPal, Pay Later, Venmo and cards through PayPal, with refunds from ShopFast | The Client ID and Secret of a Live app in developer.paypal.com (a Business account) |
| PayPal (email only) | PayPal checkout | Just your PayPal email, any account type. Payments PayPal holds as pending (an eCheck, a currency your account does not accept by itself) wait until PayPal completes them. Refunds happen in PayPal |
| Square | Cards, Apple Pay, Google Pay, Cash App Pay | Your application's Production access token. ShopFast uses your main location; its currency must be your store's. Optionally the Production application ID, only if ShopFast cannot read it from the token |
| Shopify | Shopify checkout: Shopify Payments, Shop Pay, Apple Pay, Google Pay | An active Shopify plan and an app in Shopify's Dev Dashboard (the panel gives the exact addresses and scopes). After pasting its keys, click **Approve on Shopify**: Shopify asks you to approve the app and brings you back. ShopFast creates a draft order in your Shopify store and sends the buyer to its checkout. Your Shopify store must sell in your ShopFast currency |
| Paddle | Cards, PayPal, Apple Pay, Google Pay, with Paddle handling sales tax | An API key, and a default payment link: a page of your own website that loads Paddle.js, which Paddle must approve first. Optionally a client-side token, so buyers pay in a window over your store (add your store's address to Paddle's website approval too). Buyers pay exactly your price; Paddle takes sales tax and its fee out of it |
| Mollie | Cards, Apple Pay, iDEAL, Bancontact, SEPA and more | Your Live API key |
| SumUp | Cards, Apple Pay, Google Pay (EUR, GBP, USD) | A secret API key and your merchant code. ShopFast asks SumUp whether the account is a sandbox, and refuses one while checkout takes real money |
| Authorize.Net | Cards, in Authorize.Net's own payment form inside ShopFast's pay page | API Login ID, Transaction Key and Signature Key. The account must take your store's currency (and only it) and must not be in Test Mode |
| NMI | Cards, typed into NMI's own card fields on ShopFast's pay page | A private API key, a public tokenization key, and the signing key of the webhook you add. Test mode is refused: it approves cards without charging them |
| Razorpay | UPI, cards, netbanking, wallets | Key ID and Key Secret, plus the secret of the webhook you add (with `payment_link.paid` and `order.paid` ticked) |
| Paystack | Cards, bank transfer, USSD, mobile money | Your Live secret key; you paste ShopFast's address as your webhook URL |

## Crypto

| Gateway | What you need |
| --- | --- |
| Crypto to your wallet | Nothing but your wallet's xpub or address (Money → Payments → Crypto). ShopFast watches the chain |
| NOWPayments | API key and IPN secret key |
| Cryptomus | Merchant ID and Payment API key |
| Heleket | Merchant ID and the API key for payments (Heleket must approve your merchant first) |
| BTCPay Server | Your server's address, store ID and API key |

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

## Skins

**Skinloop** lets buyers pay with CS2 and Rust skins from their Steam inventory. You paste a Skinloop API key, add
your store's address as a redirect origin and ShopFast's webhook address in Skinloop, and paste the webhook's signing
secret. If your key allows only one game, say which in **Games**. Skinloop prices in US dollars only, so your store
must sell in USD. CS2 trades can sit in Steam's trade hold for up to eight days: those orders wait, and are delivered
once Skinloop confirms the trade. A payment Skinloop reverts before it completes pays no order; one reverted after
delivery is a lost chargeback on that order.

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

Buyers send money to your $Cashtag or PayPal account with a short order code (like `SF-7KQ2M`) in the note. ShopFast
shows them the exact amount, where to send it and the code, and confirms the payment by itself:

- **PayPal Friends & Family**: your Gmail forwards PayPal's "You've got money" emails (from service@paypal.com, with
  "Transaction ID" in them) to your ShopFast address for PayPal, which works with any PayPal account. ShopFast accepts an
  email only if PayPal's own signature checks out, it was sent to your PayPal email, and it carries the code and the
  exact amount. On a Business account you can also paste ShopFast's address in PayPal's Instant Payment Notification
  settings; each notification is checked with PayPal. A payment reported both ways counts once.
- **Cash App**: your Gmail forwards Cash App's receipt emails (from cash@square.com) to your ShopFast address. ShopFast
  accepts a receipt only if Cash App's own email signature checks out, it was sent to your email, and it carries the
  code and the exact amount.

After you connect either one, the panel shows your ShopFast address, then Gmail's forwarding confirmation code the
moment it arrives (so you never open that email), and finally when the last payment email came in.

A payment with the wrong amount or without the code is not confirmed: you see it in Money → Payments and sort it out
with the buyer.

These are personal payments. **PayPal's terms do not allow Friends & Family payments for goods, and Cash App can limit
personal accounts that take business payments; buyers get no purchase protection.** A Cash App for Business account,
or PayPal checkout (with keys or just your email), avoids that.

## Gift cards: Binance, Steam and cards you add

Buyers pay with another company's gift card: they buy one on Eneba or G2A and send you its code. You redeem the code,
then confirm the order, and only then is anything delivered. Install **Gift cards** in Money → Payments → Your own
gateways (there is nothing to connect), then pick the cards you take:

- **Binance** is ready to use: USDT cards for orders in US dollars, in the usual values.
- **Steam** takes the values and currencies you sell for (a US card for USD orders, a euro card for EUR orders).
- **Add another card** for any other gift card, with its own name, picture, values and instructions.

Each card has a picture buyers see (ShopFast's drawing, or your own from the media library) and the Eneba and G2A pages
where buyers buy it. Paste a page for the card, or a page for each value when the site lists them separately; buyers
then get **Buy on Eneba** and **Buy on G2A** buttons for exactly the value they need, opening in a new tab. Links must be
https pages on www.eneba.com or www.g2a.com themselves: links to other sites, look-alike addresses and links that send
buyers somewhere else are refused when you save.

At checkout the buyer picks **Gift card**, then a card, and sees exactly what to buy: the value that covers the order
(a $23.50 order is one $25 card; a large order can take up to five cards). Because cards come in fixed values, you
choose what happens to the difference: it becomes the buyer's store credit when you accept, or you keep it. The buyer
reads which before buying.

When a buyer sends a code, the order waits in Orders → Awaiting payment with **To review**, and you get a notification.
Open it, choose **Show the codes**, redeem them in Binance or Steam, then **Accept and deliver**, or **Turn down** with a
reason the buyer reads (they may send another code within an hour, or you close the order). Codes are encrypted, only
people who can confirm payments see them, every viewing is in your activity log, and a code can be sent to ShopFast only
once, at any store.

## Currencies

Each gateway takes payments only in the currencies it supports. When a gateway cannot take your store's currency
(Paystack takes only USD of ShopFast's currencies, PayPal does not take NPR, a Square location or a Shopify store
takes its own currency), the panel says so before you connect it and checkout does not offer it.

## Test it

After connecting, place a small order on your store with that way to pay. It is marked paid (and delivered) as soon as
the gateway confirms it. Where the gateway has a test mode, ShopFast's test mode for your store runs checkouts without
real money.
