Connecting Stripe
Accept online payments via Stripe: cards, Apple Pay, Google Pay.
1. Overview#
Stripe is a global payment platform. In the Meni registry Stripe is offered for connection in 46 countries. The Meni + Stripe integration allows you to:
- 💳 Accept payments by card (Visa, Mastercard, AmEx)
- 📱 Apple Pay / Google Pay — one-tap payments
- 💰 Receive payouts to your bank account
- 🔄 Process refunds from the admin panel
- 💵 Tips — the guest adds a tip during checkout
- 📊 Reports — full financial analytics
2. Requirements#
- ✅ Meni account (plan Basic and above)
- ✅ Stripe account (free signup at stripe.com)
- ✅ Bank account for payouts (in your country's currency)
- ✅ Verification documents (passport / ID, company documents)
Supported countries#
Stripe is offered for connection in 46 countries:
| Region | Countries |
|---|---|
| Europe (EEA) | Austria, Belgium, Bulgaria, Croatia, Cyprus, Czechia, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden |
| Europe (non-EEA) | United Kingdom, Switzerland, Gibraltar |
| Americas | USA, Canada, Mexico, Brazil |
| Asia | Japan, Singapore, Hong Kong, Malaysia, Thailand, India, Indonesia |
| Middle East | UAE |
| Oceania | Australia, New Zealand |
Georgia and Türkiye are not on this list — Stripe does not open merchant accounts there, so for a location with such a country the Stripe card will not appear in the panel. For Georgia connect Bank of Georgia (iPay) or TBC Bank, for Türkiye — iyzico, for the Middle East — PayTabs; the global alternative that works almost everywhere is PayPal. If Stripe is already connected to your legal entity in another country, it stays in the list and keeps working.
3. Creating a Stripe account#
Step 1. Sign up#
- Go to stripe.com → Start now
- Enter your email and create a password
- Confirm your email
Step 2. Business verification#
Stripe will request:
| Document | Description |
|---|---|
| Business type | Sole proprietor, LLC, individual |
| Name | Legal name and trading name |
| Address | Company legal address |
| TIN / Tax ID | Tax identifier |
| Director's document | Passport or ID card |
| Bank details | IBAN or account number |
| Business description | "Restaurant / cafe / food delivery" |
Verification usually takes 1–3 business days.
Step 3. Get API keys#
- In the Stripe dashboard: Developers → API keys
- Copy:
- Publishable key (pk_live_...)
- Secret key (sk_live_...)
⚠️ Important: for testing, use keys from Test mode (pk_test_..., sk_test_...).
4. Connecting to Meni#
You connect your own Stripe account: the guest's money goes straight to your Stripe balance, Meni never holds it.
Open App Store → “Finance” category → Stripe card → “Configure” — the connection block opens as a modal right in the store. The familiar path also works: Locations → location card → “Payments” tab (the “Guest payment” section), then “Connect” on the Stripe card.
Connection wizard (recommended)#
A step-by-step wizard (≈10 minutes) walks you through the whole process, showing where to click in the Stripe dashboard:
- Choose the mode — test or live. The mode in Stripe and the “Test / Live” toggle in Meni must match.
- Copy your API keys — Developers → API keys: the Secret key (
sk_test_…/sk_live_…) is required, the Publishable key (pk_…) is optional. - Add a webhook endpoint — Developers → Webhooks → Add endpoint, and paste the Meni webhook URL that the wizard offers with a “Copy” button into the Endpoint URL field. Without a webhook Stripe won't tell Meni that the order was paid, and the order may stay “pending”.
- Select the events to send — under “Select events” add
checkout.session.completed(required — this is what confirms a paid order), and for delayed payment methods alsocheckout.session.async_payment_succeededandcheckout.session.async_payment_failed. Then click “Add endpoint”. Without these events the webhook exists but reports nothing. - Copy the Webhook signing secret (
whsec_…) — an optional field, but it enables signature verification of the notifications. - Connect — the entered values go to the secure backend.
Short form#
If you already know your way around Stripe, open the inline connection form and fill in the same fields: Secret key, Webhook signing secret (optional), Publishable key (optional), plus the mode toggle.
Stripe Connect is not used. Meni is not an intermediary platform: you enter the keys of your own account instead of granting Meni access to it over OAuth.
5. Setting up payment methods#
Bank cards#
Enabled automatically when Stripe is connected:
- Visa / Mastercard — all countries
- American Express — most countries
- Diners Club / Discover — selectively
Apple Pay#
- Settings → Payments → Apple Pay → Enable
- Add and verify your domain in the Stripe Dashboard:
- Settings → Apple Pay → Add new domain
- Upload the verification file
- Apple Pay will appear as an option on iOS/Safari
Google Pay#
Enabled automatically when Stripe is connected. Works on Android and in Chrome.
Other methods#
Via Stripe you can enable:
| Method | Countries | Description |
|---|---|---|
| iDEAL | Netherlands | Bank transfer |
| Bancontact | Belgium | Bank transfer |
| SEPA Direct Debit | EU | Bank account debit |
| Przelewy24 | Poland | Online payments |
| giropay | Germany | Bank transfer |
| EPS | Austria | Bank transfer |
| Boleto | Brazil | Payment voucher |
Enable the required methods in Stripe Dashboard → Settings → Payment methods.
6. Tips#
Setup#
- Settings → Payments → Tips
- Options:
| Parameter | Description |
|---|---|
| Suggested amounts | Presets are filled in by the venue's country: 18/20/25 % for the USA, 15/18/20 % for Canada, 10/15/20 % for Georgia; in Japan, China and Korea the tip block is hidden |
| Custom amount | Guest enters their own amount |
| Default tip | None (guest chooses) |
| Distribution | To waiter / shared pool / proportional |
What the guest sees#
At checkout after selecting items:
Your order: 45₾
Add a tip?
[ 10% (4.50₾) ] [ 15% (6.75₾) ] [ 20% (9.00₾) ] [ Other amount ]
[ No tip ]
TOTAL: 49.50₾ [Pay →]
Tip reports#
Analytics → Tips:
- Total tips for the period
- Average tip %
- Tips by employee
- Trend (up/down)
7. Payouts to your account#
How Stripe pays out funds#
Guest pays → Stripe holds → After T+2 days → Funds in your account
| Parameter | Value |
|---|---|
| Standard payout | T+2 (in 2 business days) |
| Accelerated payout | T+1 (available in some countries) |
| Instant payout | Instant Payouts (within an hour, for an additional fee) |
| Minimum payout | 1€ / 1$ / 1₾ |
Schedule setup#
In Stripe Dashboard → Settings → Payouts:
- Daily (recommended)
- Weekly (specific day of the week)
- Monthly
8. Stripe fees#
| Region | Fee | Example |
|---|---|---|
| Europe (EEA) | 1.5% + 0.25€ | Order 50€ → fee 1.00€ |
| United Kingdom | 1.5% + 0.20£ | Order £50 → fee £0.95 |
| USA/Canada | 2.9% + $0.30 | Order $50 → fee $1.75 |
| International cards | +1.5% | Extra for cards issued in another country |
| Currency conversion | +1% | If card currency ≠ account currency |
💡 Meni does not charge any additional fee on top of Stripe.
9. Refunds#
Full refund#
- Orders → select an order → Refund → Full
- Funds are returned to the guest's card within 5–10 business days
- Stripe returns the fee (in most cases)
Partial refund#
- Orders → order → Refund → Partial
- Enter the amount or select items
- The guest receives a partial refund
Automatic refunds#
Configure rules in Settings → Payments → Refunds:
- Cancel before cooking starts → automatic full refund
- Cancel after cooking starts → requires manager approval
10. Security#
PCI DSS#
- Meni does not store card data — everything is processed by Stripe
- Stripe is certified as PCI Level 1 (highest level)
- Card data is encrypted and tokenized
3D Secure#
- Automatic 3D Secure checks for EU cards (SCA/PSD2)
- Reduces fraud and chargebacks
- For the guest: confirmation in the bank app
Radar (fraud protection)#
Stripe Radar automatically blocks suspicious transactions:
- Unusual purchase patterns
- Cards from blacklists
- Geolocation anomalies
11. Testing#
Before enabling in production, test:
Stripe test cards#
| Card number | Result |
|---|---|
| 4242 4242 4242 4242 | Successful payment |
| 4000 0000 0000 3220 | 3D Secure |
| 4000 0000 0000 9995 | Declined (insufficient funds) |
| 4000 0000 0000 0069 | Card expired |
CVV: any 3 digits. Date: any future date. ZIP: any.
How to test#
- Settings → Payments → Mode: Test
- Use test keys (pk_test_..., sk_test_...)
- Create a test order → pay with a test card
- Check: receipt, order status, analytics
- Switch to Mode: Live when everything works
12. Alternative providers#
For countries without Stripe or as an add-on:
| Provider | Countries | Description |
|---|---|---|
| BOG iPay | 🇬🇪 Georgia | Bank of Georgia, popular in Georgia |
| TBC Pay | 🇬🇪 Georgia | TBC Bank |
| İyzico | 🇹🇷 Turkey | Local payment provider |
| PayTR | 🇹🇷 Turkey | Alternative to İyzico |
| Adyen | EU, global | Enterprise solution |
| Square | US, UK, EU | POS + online |
Connecting any provider: App Store → “Finance” category → the provider's card → “Configure”, or via the familiar path Locations → location card → “Payments” tab.
13. FAQ#
When will I receive the money?#
In 2 business days after payment (T+2). The first payout may take 7–14 days (while Stripe verifies the account).
A guest wants to pay cash — what should I do?#
Meni supports mixed payments. Mark the order as "Cash payment" — a fiscal receipt will be generated, but Stripe won't be involved.
Can I connect both Stripe and BOG iPay?#
Yes. In payment settings you can enable multiple providers. The guest chooses the convenient one at checkout.
Stripe blocked the account — what should I do?#
- Check your email — Stripe sends the reason
- Usually additional verification is required
- Contact Stripe Support: support.stripe.com
- While blocked, you can use an alternative provider
How can I minimize fees?#
- Encourage payments with EU cards (1.5% instead of 2.9%)
- Use SEPA for large amounts (fixed 0.35€)
- With high volume (>100K€/month) — request a custom rate from Stripe
14. Support#
- Stripe: support.stripe.com
- Meni: support@cenaly.ru → subject "Stripe / Payments"
- Stripe Status: status.stripe.com (service status check)