Connect servicesConnectors

Payments and stores

Take payments with Stripe, Paddle, PayPal or Chargebee, or show a shop you already run on Shopify, WooCommerce or PrestaShop. How each one connects, what you can ask for, and what it will not do.

Seven connectors sit here: four that take money and three that show the products of a shop you already have. For how connecting works in general, see Connectors. For what a shop built here looks like, see Online stores and Payments.

ServiceUse it forHow it connects
StripeCard payments, subscriptions, a checkout page hosted by StripeA button, or keys
PaddlePayments and subscriptions with tax handled for youKeys
PayPalBuy buttons with the price set in your PayPal accountClient ID and currency
ChargebeeSubscription billing with a customer portalSite name and an API key
ShopifyA shop front over your Shopify productsStore address and a public token
WooCommerceA shop front over your WooCommerce productsShop address and read-only keys
PrestaShopA shop front over your PrestaShop productsShop address and a webservice key

Money always moves between your customers and your own account at the service. Setherion never holds it and is not part of refunds, chargebacks or disputes. When you connect one of these, you tick a line that says so.

Stripe

For: one-off payments and subscriptions, on a checkout page hosted by Stripe. Buyers never type a card number into your app.

Connects with: the Set up Stripe button. You fill in Stripe's own form and come back, and no key is shown to you. Publish the app first, because Stripe looks at the live site and turns down one that is still under construction. It asks for an ID document and a bank account. You can use keys instead: the publishable key (starts pk_) and the secret key (starts sk_) from your Stripe API keys, and a webhook signing secret (starts whsec_).

Pasted keys only: the Stripe card shows the webhook address to add in Stripe, with a copy button. Add it for the events checkout.session.completed and checkout.session.async_payment_succeeded. With the button there is no webhook to set up.

Ask for:

  • "Add a Buy now button for the course"
  • "Add a monthly plan and a Manage billing button"
  • "Add a My orders page"

What happens: orders are written when Stripe says a payment went through, and appear under Manage, then Payments. See Online stores.

Limits: an app can start a checkout, read it back and read your price list. Refunds, customers and payouts cannot be reached from an app. Refund from Manage, then Payments, or in Stripe. Manage billing works only for a signed-in person who has bought something in that app.

Paddle

For: payments and subscriptions where Paddle sells as the seller, so VAT and sales tax are handled for you. Worth it when you sell across borders.

Connects with: keys, from Paddle's authentication page.

  • Client-side Token (starts live_, or test_ for the sandbox). Public by design, so it is built into the published app.
  • API Key (starts pdl_live_apikey_ or pdl_test_apikey_). Stays on Setherion's servers.
  • Webhook Secret (starts pdl_ntfset_). Optional.

Ask for:

  • "Add a Pro plan with a Subscribe button that opens Paddle checkout"
  • "Show the price and what is included before checkout opens"

How it works: the checkout opens in Paddle's own overlay in the visitor's browser. You create your prices in the Paddle dashboard and the app uses them by their pri_ id. The page never sends an amount, because anyone who opens the page can edit it.

Limits: the API key is not used by the published app, which has no server. A token that starts test_ works only against Paddle's sandbox. Test connection reads one product from your Paddle account.

PayPal

For: a Buy button for one item at a fixed price. The price, tax and shipping live in PayPal, so nobody who opens the page can change what they pay. Buyers pay in PayPal's own window, by PayPal or by card.

Connects with: two values.

  • Client ID: in PayPal, open Pay links and buttons, then a button, then its code. It is the value after client-id=. Public by design.
  • Currency: three letters, like GBP or EUR, the same as on your buttons in PayPal.

Make your buttons first, at PayPal's button page.

Ask for:

  • "Add a PayPal Buy button for each of the three prints"
  • "Put the PayPal button under the price on the product page"

Limits: each button buys one item at the price set in PayPal. There is no cart. Your app is not told when someone pays: PayPal emails you and the buyer, and the sale is not recorded in the app. For a cart, orders kept in your app or subscriptions, connect Stripe or Paddle instead. The connector's page says the same.

Chargebee

For: subscription billing. A Subscribe button opens Chargebee's hosted checkout, a Manage billing button opens the customer portal, and your team can see customers, subscriptions and invoices.

Connects with: keys.

  • Site name: the part before .chargebee.com in your dashboard address, in lowercase.
  • API key: in Chargebee, Settings, then Configure Chargebee, then API Keys, then Add API Key. Choose a Write Key (create, read and update, never delete). That is all an app needs.

Ask for:

  • "Add a pricing page from my Chargebee plans, with a Subscribe button on each"
  • "Add a Manage billing button for signed-in customers"
  • "Make a team page with my subscriptions and unpaid invoices"

Who can do what: visitors can start a checkout, open the billing portal and read the plans and prices on sale, for a pricing page. Customers, subscriptions and invoices, and changing plans and prices, are for your team only. Mark the accounts that are your team in Manage, then Cloud, then Users.

Limits: it uses Chargebee Product Catalog 2.0, so plans are item prices. Amounts come in pence or cents. Deleting is not possible from an app. Under Permissions you can switch off checkout, the portal, or reading and changing each of customers, subscriptions, invoices, plans and prices.

Shopify

For: a new shop front over a Shopify store. Products, prices and stock stay in Shopify, and buyers pay on Shopify's own checkout page.

Connects with: two values.

  • Store domain: the .myshopify.com address, even if your shop shows a custom domain to customers.
  • Storefront API token (public): in Shopify admin, open Sales channels, then Headless, then Create storefront. Copy its public access token.

Never use the Admin API token (it starts shpat_): the card refuses it, because this token is built into the published app and anyone can read it.

Ask for:

  • "A new shop front for my Shopify store, with the collections on the home page"
  • "Add a cart that sends shoppers to Shopify checkout"
  • "Add search and filters over my Shopify products"

Permissions: Shopify is different. Your apps call it straight from the page with the public token, so there are no switches in Setherion. Set the limits in Shopify: Sales channels, Headless, your storefront, then Manage beside Storefront API, then Permissions. They apply to every storefront in the Headless channel.

Limits: stock, orders and payments stay in Shopify. If an item is out of stock the app says what changed before it sends the shopper on.

WooCommerce

For: a shop front that shows your real WooCommerce products and sends buyers to your own checkout.

Connects with: keys.

  • Shop address: the address your shop runs on, the one with /wp-admin behind it.
  • Consumer key (starts ck_) and Consumer secret (starts cs_): in WooCommerce, open Settings, then Advanced, then REST API, then Add key, with Permissions set to Read.

Both keys stay on Setherion's servers.

Ask for:

  • "Show my WooCommerce products in a grid with a Buy button on each"
  • "Add a page for each product with its photos and price"

Limits: products are the only thing an app can read. Orders and customers are refused, so there is no order history or customer account on this. Buying happens on your shop: the button sends the buyer to your checkout with the product added. Prices come in the shop's own currency, as the shop gives them. Test connection reads one product.

PrestaShop

For: a shop front that shows your real PrestaShop products and sends buyers to each product's page in your shop.

Connects with: keys.

  • Shop address: the address your shop runs on, the one with /admin behind it.
  • Webservice key: 32 letters and digits. In PrestaShop, open Advanced Parameters, then Web service, then Add new webservice key, and tick View (GET) on products.

The key stays on Setherion's servers.

Ask for:

  • "Show my PrestaShop products with their photos and prices"
  • "Link each product to its page in my shop"

Limits: products are the only thing an app can read. Orders and customers are refused, and stock counts are not available, so the app shows no "in stock" badges. PrestaShop prices exclude tax, and the app labels them that way. Buyers are sent to the product page in your shop, not straight to a basket.

Good to know

  • A shop front built on Shopify, WooCommerce or PrestaShop is for showing products. Orders, stock and payments stay where they are today. Nothing moves to Setherion.
  • Payments, shops and databases are never lent to the members of a team workspace: the account belongs to whoever connected it. See Connectors.
  • Disconnecting a service stops every app that uses it from reaching it, at once. Prices and orders at the service are untouched.

Was this page helpful?

Join the community

Questions, ideas and what others are building.