# Collect payment details without an initial payment session To support advanced payment scenarios, you can render Flow components and collect payment details without an initial payment session. For example, if you need to create the session later after additional validations or user actions have taken place. You can integrate this payment flow with the following payment methods: - AlipayCN - AlipayHK - Alma - Bancontact - Benefit Payment Gateway - Dana - Electronic Payment Standard (EPS) - GCash - iDEAL - KakaoPay - Klarna - KNET - MB WAY - Multibanco - Octopus - Przelewy24 - QPay - SEPA - Swish - Touch 'n Go - TrueMoney --- ## Payment process 1. The customer lands on the checkout page. 1. You initialize and mount the individual Flow components for each payment method you want to display. 1. Flow displays the payment methods to the customer. If the customer's chosen payment method requires additional customer data, Flow captures this from them. 1. Optionally, you capture additional order details from the customer during checkout. 1. When the customer clicks the _Pay_ option, you submit their chosen payment method. 1. You perform a server-side request to complete the checkout and include the payment details you received from Flow. 1. After you create the order on your server, you request a payment session. 1. You return the payment session response to the client side and use it to handle the submission callback. Flow handles any additional actions required – For example, a third-party payment page redirect. 1. If the customer selected the option to save their card for faster checkout, we create a [Remember Me](https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/extend-your-flow-integration/enable-remember-me.md) profile for them and save their card to it. The customer can reuse their saved cards in future transactions. 1. The customer is redirected to the success or failure URL you specified in the payment session and you receive a webhook notifying you of the payment status. --- ## Before you start Make sure you have a [test account](https://www.checkout.com/get-test-account) with Checkout.com. Create a [public key and a secret key](https://www.checkout.com/docs/resources/api-authentication/api-keys.md) from the [Dashboard](https://dashboard.checkout.com), with the following key scopes: - Public key – `payment-sessions:pay` and `vault-tokenization` - Secret key – `payment-sessions` To receive webhooks for the [payment events](https://www.checkout.com/docs/developer-resources/event-notifications/event-types.md#Gateway), [configure your webhook server](https://www.checkout.com/docs/developer-resources/event-notifications/receive-webhooks/configure-your-webhook-server.md). --- ## Initialize and mount Flow `Client side` You can install the `@checkout.com/checkout-web-components` package via npm: ```bash npm install @checkout.com/checkout-web-components --save ``` Alternatively, you can load the package directly via a script: ```html