Setup
Follow the Stripe setup instructions before configuring Klarna. After setting up your Stripe account, make sure Klarna is enabled as a payment method in Stripe. For shared APM credentials and payment IDs, see Stripe APM credentials.Features
Stripe Klarna payments support the following features:- Payment method tokenization - Store Klarna tokens for recurring transactions
- Delayed capture - Authorize a payment and capture it at a later time
- Partial capture - Capture a portion of the authorized amount
- Refunds - Refund transactions in full or in part
- Partial refunds - Issue multiple partial refunds up to the captured amount
- Zero auth - Verify a payment method without capturing funds
- Webhook integration - Receive asynchronous payment updates
- Redirect checkout - Redirect buyers to approve the payment
Supported countries
Stripe supports transactions from buyers inCA, GB, US.
Supported currencies
Stripe supports processing payments inCAD, GBP, USD.
Limitations
The following features are not supported by this connector:- Over-capture - Capturing more than the authorized amount is not supported
- Void - Canceling an authorization is not available
- Transaction sync - Automated status synchronization is not available
- Settlement reporting - Settlement reporting is not available
- Deep linking - Direct app linking is not supported
- Partial authorization - Authorizing only a portion of the requested amount is not supported
Webhooks
Klarna payments and refunds can be completed asynchronously, so webhooks must be configured to update the status of transactions. Webhooks are configured in the Stripe Dashboard within Developer Settings under Webhooks. The Klarna connector relies on the following Stripe webhooks:charge.expiredcharge.refund.updatedcharge.refundedpayment_intent.succeededpayment_intent.amount_capturable_updatedpayment_intent.payment_failedpayment_intent.partially_fundedpayment_intent.canceledcheckout.session.async_payment_succeeded
Integration
The default integration for Klarna via Stripe uses a redirect to a payments page hosted by Gr4vy.Redirect integration
Start by creating a new transaction with the following required fields.payment_method.approval_url and the status is set to buyer_approval_pending.
approval_url (open in a browser or Webview), where they can complete the payment. Once the buyer completes the payment, the transaction progresses to an authorization_succeeded or capture_succeeded state.
Direct integration
If you intend to use your own hosted page, you can include anintegration_client parameter set to web, ios or android when creating a new transaction.
session_token. You use this token with the session endpoint to retrieve the session data for the transaction and build a custom page.
Mobile redirect integration completion
On mobile integrations you should send a GET request to thedefault_completion_url provided in the session response.
Payment IDs
When creating the transaction, thepayment_service_transaction_id is the client secret, and in the extra_xids field you can find the payment intent ID as payment_id.
After the transaction is approved by the user, the payment_service_transaction_id is updated to the payment intent ID.