M cenaly.ru
⚙️ Features

💰 Stripe Payments

Cards, Apple Pay, Google Pay, tips, payouts, refunds

Documentation

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#

  1. Go to stripe.comStart now
  2. Enter your email and create a password
  3. 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#

  1. In the Stripe dashboard: DevelopersAPI keys
  2. 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.

A step-by-step wizard (≈10 minutes) walks you through the whole process, showing where to click in the Stripe dashboard:

  1. Choose the mode — test or live. The mode in Stripe and the “Test / Live” toggle in Meni must match.
  2. Copy your API keysDevelopers → API keys: the Secret key (sk_test_… / sk_live_…) is required, the Publishable key (pk_…) is optional.
  3. Add a webhook endpointDevelopers → 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”.
  4. 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 also checkout.session.async_payment_succeeded and checkout.session.async_payment_failed. Then click “Add endpoint”. Without these events the webhook exists but reports nothing.
  5. Copy the Webhook signing secret (whsec_…) — an optional field, but it enables signature verification of the notifications.
  6. 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#

  1. SettingsPaymentsApple PayEnable
  2. Add and verify your domain in the Stripe Dashboard:
    • SettingsApple PayAdd new domain
    • Upload the verification file
  3. 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 → SettingsPayment methods.


6. Tips#

Setup#

  1. SettingsPaymentsTips
  2. 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#

AnalyticsTips:

  • 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 → SettingsPayouts:

  • 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#

  1. Orders → select an order → RefundFull
  2. Funds are returned to the guest's card within 5–10 business days
  3. Stripe returns the fee (in most cases)

Partial refund#

  1. Orders → order → RefundPartial
  2. Enter the amount or select items
  3. The guest receives a partial refund

Automatic refunds#

Configure rules in SettingsPaymentsRefunds:

  • 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#

  1. SettingsPaymentsMode: Test
  2. Use test keys (pk_test_..., sk_test_...)
  3. Create a test order → pay with a test card
  4. Check: receipt, order status, analytics
  5. 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?#

  1. Check your email — Stripe sends the reason
  2. Usually additional verification is required
  3. Contact Stripe Support: support.stripe.com
  4. 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)