If you sell to Portuguese customers and you don't accept Multibanco, you're leaving roughly a third of your potential orders on the table. Multibanco is not "a payment method"; in Portugal it is the payment method — more widely used than cards for online purchases under €100.
The good news: enabling Multibanco on a modern store is a single toggle on the Stripe Payment Element. The bad news: most Shopify/WooCommerce templates and many DIY stores don't surface it correctly, which is functionally the same as not offering it. Here's the full playbook.
Why Multibanco matters in Portugal
In case you're not local:
- Multibanco is one of the most-used online payment methods in Portugal — a meaningful share of consumer online payments, especially for purchases under €100.
- For small online purchases it's often preferred over cards, particularly by older and higher-trust demographics.
- It's a trusted brand — Multibanco machines are everywhere, the SIBS network runs the rails, and customers have been using it for 40 years.
- It generates a payment reference that the customer pays via ATM, home-banking app, or in-app — no card needed.
If you target Portuguese consumers and your only payment option is cards, you're filtering out the customers who specifically prefer not to use cards online. Many of them are your highest-AOV demographic (older, higher-trust, less price-sensitive).
How Multibanco actually works as a buyer
The flow from the customer's side:
- They reach checkout.
- They choose "Multibanco" as the payment method.
- The store generates a payment reference (entity code + reference number + amount).
- The customer leaves the checkout page with the reference. They can also receive it by email.
- Within typically 1–7 days, they pay the reference via their banking app, home-banking site, or any ATM.
- The store receives confirmation via webhook and marks the order paid.
The asynchronous part is what trips up store owners new to Multibanco — there's a delay between checkout and payment confirmation. That's normal. Customers expect it.
How to accept Multibanco — the modern way
The cleanest path in 2026 is Stripe Payment Element with Multibanco enabled. Stripe handles the SIBS integration, the reference generation, the webhook on confirmation, and the reconciliation.
Step 1 — Enable Multibanco in Stripe. Stripe Dashboard → Settings → Payment methods → Multibanco → toggle on for the relevant Stripe account/region. Stripe will request a few business details for compliance.
Step 2 — Add Multibanco to your Payment Element. If you're using payment_method_types: ['card', 'multibanco'] on the PaymentIntent (or automatic_payment_methods: { enabled: true }), Stripe surfaces Multibanco automatically for PT customers detected by browser locale / IP.
Step 3 — Handle the asynchronous flow. Multibanco is not an instant payment. After the PaymentIntent succeeds at the requires_action step, the customer leaves with a payment reference but the order is pending until the bank confirms (usually within 1–3 days for active customers; up to 7 days max before Stripe expires the reference).
You need:
- An order status of
awaiting_payment(notpaid). - A webhook handler for
payment_intent.succeededthat flips the order topaidand triggers fulfillment. - A customer email with the reference at the moment of checkout, not after.
- A reminder email at 3 days unpaid (optional but materially increases conversion).
Step 4 — Display the reference correctly on the success page. The success page after checkout should show:
- Entity code (5 digits)
- Reference number (9 digits)
- Amount in EUR
- Expiry date
In that order, large, easy to read. Plus a "Send to email" or "Copy to clipboard" button. Customers will write these down or photograph them. Make it easy.
What Multibanco costs you
Stripe charges a fee per successful Multibanco payment that varies by account region and plan — check Stripe's pricing page for the current number in your country. There are no additional fixed monthly fees on standard Stripe accounts.
In practice, Multibanco fees are competitive with card processing fees, sometimes lower for small-ticket items. Run your own numbers against your card rates before relying on this as a cost-saving — the headline number is similar to cards, the difference is mostly per-order economics.
For your overall payment-fee planning across an EU store, see the cost lens in the platform comparison →.
Common mistakes I see on Portuguese stores
After auditing several PT e-commerce stores, the recurring problems:
1. Multibanco is buried in a "more payment methods" dropdown. Customers see only cards and don't realise Multibanco is available. Surface it as a top-level option for PT visitors.
2. The reference email arrives 10 minutes after checkout. Customers want it at the moment of payment selection. Send it via Stripe's payment_intent.requires_action event, not via a delayed marketing automation.
3. No reminder for unpaid references. A simple email at 72 hours saying "Your payment reference expires in 4 days" recovers 15–25% of otherwise-lost orders.
4. The order status confuses the customer. "Pending" sounds like something is wrong. Use language like "Awaiting payment — please pay the reference within 5 days" with the reference visible in the customer account.
5. Inventory is held for too long or too little time. Multibanco orders should reserve stock for the duration of the reference validity (default 5–7 days). If you release stock immediately, oversells happen.
Multibanco + ad attribution
This is the bit specifically relevant if you run paid ads to PT customers:
A Multibanco purchase is two events separated by days — the checkout (initiated) and the payment (completed). Most ad pixels fire on a thank-you page. If you fire Purchase on the checkout success page (before payment is confirmed), Meta sees orders that may never get paid (15–25% never pay) — your reported ROAS is inflated.
The correct pattern:
- Fire
InitiateCheckoutclient-side at checkout success page. - Fire
Purchaseserver-side from your webhook handler when Stripe confirms the payment, with the sameevent_idso deduplication works.
This is exactly the pattern in the server-side tracking guide →. Multibanco is a perfect example of why pixel-only tracking is wrong in 2026.
Other PT payment methods worth adding
Multibanco is the priority, but for completeness on a PT-focused store:
- MB WAY — instant mobile payment, growing fast. Stripe supports it.
- SEPA Direct Debit — for subscription products and B2B.
- Cards (Visa/Mastercard) — table stakes, but probably already on.
- Apple Pay / Google Pay — high conversion lift on mobile.
- Klarna — popular in PT for higher-AOV fashion / lifestyle.
- PayPal — still used by ~10–15% of PT online buyers, often for trust reasons.
A well-configured Stripe Payment Element surfaces the right subset of these automatically per locale. You don't need to choose one — let Stripe match to the customer.
FAQ
Can I accept Multibanco on Shopify? Yes — via Shopify Payments where available (limited country support), via Stripe app (works but adds an app dependency), or via dedicated SIBS gateway apps. The Stripe path is cleanest.
Can I accept Multibanco on WooCommerce? Yes via the Stripe plugin, or via Portuguese-specific gateway plugins (IfthenPay, EuPago). Stripe is usually the right choice unless you have a SIBS-direct contract.
What about MBNet / virtual cards from Multibanco? MBNet is a separate product (single-use virtual card numbers). It works automatically as a card on Stripe — no special integration. You don't need to do anything to accept it.
Does Multibanco work for non-Portuguese customers? Multibanco references can only be paid at Portuguese banking endpoints. Non-PT customers cannot use it. Surface it conditionally — geo-detect or browser-locale check.
How long until Stripe confirms payment after the customer pays at the ATM? Usually under 30 minutes. The webhook fires when SIBS notifies Stripe, which is near real-time.
Next steps
If you're launching a store for the Portuguese market or expanding an existing store into PT, Multibanco is in the online-store baseline → at the €2,000 floor — not an add-on. The €2,000 base also includes the rest of the Stripe Payment Element (cards, Klarna, Apple/Google Pay, SEPA, Multibanco), PayPal, and bank transfer.
For an ads + tracking setup targeted at PT customers specifically, see /services/online-ads.