Add the Iframe
Add the iframe using thepayment_token from the create step. Place it near your Stripe Payment Element so customers see both options. If the Quidkey API call fails, keep your page in its default Stripe-only state.
Stripe PaymentIntent
Your existing PaymentIntent creation stays exactly as it is. As long as you already render a single Stripe Payment Element, no backend changes are required.Dynamic Height
The iframe adjusts its height based on available payment methods and open bank lists. Height calculation:- Base:
payment_method_count x 54px(includes 1px border per method) - With drawer open: Additional 263px when bank selection lists are open
- Standard markets: 2 payment methods (108px base)
- Enhanced markets: 3+ payment methods (162px+ base), e.g., Portugal with Multibanco
Handle Bank Selection & Stripe Mutual Exclusion
The key behavior is ensuring only one payment method (Stripe or Quidkey) is active at a time. Listen forpostMessage events from the iframe to track the customer’s bank selection, and collapse the Stripe Payment Element when Quidkey is active.
postMessage Fields
Payment Schemes
The iframe supports multiple payment schemes automatically based on the customer’s country:- SEPA: EU-wide credit transfers
- Faster Payments: UK instant payments
- Multibanco: Portuguese payment method
Route the Purchase Button
When the customer clicks your purchase button, route to either Stripe or Quidkey based on their current selection.Quidkey Initiation Backend
Your backend proxies the payment initiation to Quidkey and returns the bank redirect URL:success_url or failure_url.
Test with Demo Bank
1
Open your checkout page
Load the page in your browser. You should see both the Stripe Payment Element and the Quidkey bank picker. Quidkey will predict and pre-select a demo bank in test mode.
2
Test Quidkey path
Click the Quidkey bank option. The Stripe Payment Element should collapse. Your purchase button should be enabled. Click Purchase, authenticate with any credentials (demo mode), and verify you’re redirected to your success URL.
3
Test Stripe path
Reload and interact with the Stripe Payment Element instead. The Quidkey selection should clear. Confirm the Stripe payment flow works as before.
4
Verify with webhook
Check your webhook endpoint (if configured) for the Quidkey payment confirmation.
Reference Implementation
Live Demo
Try the full Stripe + Quidkey integration with test credentials
API Playground
Test API calls in your browser. No setup required
Next Steps
After Payment
Handle webhooks, verify signatures, and process fees
Create a Payment Request
Payment request creation and updates