Skip to content

What is Stack

Stack is a payment account your customers carry between apps. They sign up once, the first time they pay anywhere with Stack. After that, paying you is an email code and one tap, even if they’ve never used your app before.

  • Signing in is an email code. No password, no form. A customer who used Stack in another app is recognised straight away.
  • They pay with what they have: their Stack balance, a saved card, a saved bank, a new card, or a bank transfer to a one-time account number.
  • On a phone, returning customers confirm with Face ID or a fingerprint, or with their Stack PIN.
  • Their first payment creates their Stack account. A customer with no balance and nothing saved can still pay you straight away, by card, bank or transfer.
  • One integration for every way to pay. You create a payment on your server and open the Stack sheet in your app. Stack handles sign-in, choosing how to pay, card checks (OTP, PIN, 3-D Secure) and bank transfers.
  • One balance. Every payment, whatever the customer paid with, is credited to your Stack balance net of fees. Refunds come out of it, and payouts to your bank go out on request. See Fees, balance and payouts.
  • Webhooks tell you when to fulfil. Stack sends your server a signed payment_intent.succeeded event for every successful payment.
Your server ── create payment (secret key) ──▶ Stack API ──▶ client_secret
│ │
│ your app / website ◀┘
│ │
│ presentPaymentSheet({ clientSecret })
│ customer signs in, chooses, pays
│ │
◀── signed webhook: payment_intent.succeeded ──── Stack API ◀┘
fulfil the order
  1. Your server creates a payment intent with your secret key and sends its client_secret to your app. Only your server knows the price.
  2. Your app opens the Stack payment sheet with the client_secret, using your publishable key.
  3. Stack signs the customer in, lets them choose how to pay, and takes the payment.
  4. Your server receives a signed webhook and fulfils the order.

Available now:

  • Server SDK for Node: @usestack/node
  • React (web): @usestack/react
  • React Native and Expo: @usestack/react-native
  • The REST API
  • Test mode

Nigerian naira (NGN) only for now.

  • Live payments. You can verify your business now, so live keys are ready when they open. See Going live.
  • Continue with Stack: customers approve in the Stack Wallet app with one tap instead of typing a code. It switches on with the Stack Wallet app, in apps and on the web together.
  • Phone sign-in, with codes by SMS. Sign-in is by email for now.
  • Refunds to the original card or bank, as well as to the Stack balance.
  • Payouts from the API. For now, request them in the dashboard.
  • More currencies beyond NGN.
  • More SDKs: @usestack/web (websites without React), Flutter, iOS (Swift), Android (Kotlin), and Python, Go and PHP on the server. Until then, use the REST API.