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.
For your customers
Section titled “For your customers”- 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.
For your business
Section titled “For your business”- 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.succeededevent for every successful payment.
How a payment works
Section titled “How a payment works”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- Your server creates a payment intent with your secret key and sends its
client_secretto your app. Only your server knows the price. - Your app opens the Stack payment sheet with the
client_secret, using your publishable key. - Stack signs the customer in, lets them choose how to pay, and takes the payment.
- Your server receives a signed webhook and fulfils the order.
What’s available
Section titled “What’s available”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.
Coming soon
Section titled “Coming soon”- 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.