# Payment mode Charge in Klarna Checkout

**URL:** <https://forum.litium.com/t/payment-mode-charge-in-klarna-checkout/1004>\
**Category:** Questions\
**Tags:** klarna\
**Created:** [July 31, 2019, 1:31pm UTC](https://forum.litium.com/t/payment-mode-charge-in-klarna-checkout/1004 "2019-07-31T13:31:48Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jonas.olsson](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/jonas.olsson/32/177_2.png) [@jonas.olsson](https://forum.litium.com/u/jonas.olsson)\
**Post date:** [July 31, 2019, 1:31pm UTC](https://forum.litium.com/t/payment-mode-charge-in-klarna-checkout/1004/1 "2019-07-31T13:31:48Z")

</div>

Hi!

I would like to set payment mode to charge in Klarna Checkout, to charge money when order is placed. I did this in `KlarnaPaymentWidgetController.cs` by setting  
`checkoutFlowInfo.ExecutePaymentMode = ExecutePaymentMode.Charge;`

The version of add-on I was using before, Litium.AddOns.Klarna 4.7.102, had a bug: `KlarnaPaymentArgsCreator.CreatePaymentArgs` would always set klarnaPaymentArgs.PaymentMode to Reserve. To avoid this I updated to latest version of add-on 4.7.103, and then I also had to make some changes in `KlarnaPaymentWidgetConfigV3.cs`, to use CheckoutOrder instead of CheckoutOrderData.  
(Couldn’t find this in any accelerator, but I might be wrong, does latest version of Klarna Checkout work with any version of MVC Accelerator?)

Now klarnaPaymentArgs.PaymentMode is Charge when i debug but the payment in Litium is still Reserved and in Klarna it is Uncaptured.  
Can you help me out? Should I look for something in the logs?

Litium version: 5.6.6

---

<div class="post-metadata">

**Author:** ![patric.forsgard](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/patric.forsgard/32/10_2.png) [@patric.forsgard](https://forum.litium.com/u/patric.forsgard)\
**Post date:** [July 31, 2019, 3:19pm UTC](https://forum.litium.com/t/payment-mode-charge-in-klarna-checkout/1004/2 "2019-07-31T15:19:02Z")

</div>

Accelerator is not updated in the release package to use the latest version of Klarna Payment Add-On and you have upgrade instructions [here](https://docs.litium.com/documentation/add-ons/payments/klarna/upgrade).

Klarna Checkout is only supporting reservation mode so it is not possible to change to get the money captured directly when order is placed.

---

<div class="post-metadata">

**Author:** ![jonas.olsson](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/jonas.olsson/32/177_2.png) [@jonas.olsson](https://forum.litium.com/u/jonas.olsson)\
**Post date:** [August 1, 2019, 6:59am UTC](https://forum.litium.com/t/payment-mode-charge-in-klarna-checkout/1004/3 "2019-08-01T06:59:03Z")

</div>

Ok, thanks. Do you have any example of how to charge from code in Klarna v3?  
I found this question about Klarna v2 but no answer:

> [@Reserved to paid in Klarna checkout](https://forum.litium.com/t/reserved-to-paid-in-klarna-checkout/851):
>
> Is it possible to debit a klarna checkout payment via code? Basicly i want to click this button, but do it by code.(Klarna v2) Litium version: 6

---

<div class="post-metadata">

**Author:** ![NilsN](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/nilsn/32/302_2.png) [@NilsN](https://forum.litium.com/u/NilsN)\
**Post date:** [August 1, 2019, 7:24am UTC](https://forum.litium.com/t/payment-mode-charge-in-klarna-checkout/1004/4 "2019-08-01T07:24:24Z")

</div>

There’s an example in the PaymentService from the Headless API add-on.  
[https://docs.litium.com/add-ons/connectors/litium-headless-api-v7-2-100-for-litium-7](https://docs.litium.com/add-ons/connectors/litium-headless-api-v7-2-100-for-litium-7)

```cs
public PaymentInfoResult Capture(string externalOrderId, string paymentReferenceId)
{          
	var order = ModuleECommerce.Instance.Orders[externalOrderId, _adminToken];
	if (order == null)
		throw new DoesNotExistException($"order {externalOrderId} not found.");

	var payment = order.PaymentInfo.FirstOrDefault(x => x.ReferenceID == paymentReferenceId);
	if (payment == null)
		throw new DoesNotExistException($"Payment {paymentReferenceId} is not found in order {externalOrderId}.");

	var existingMessage = payment.ExternalMessage;
	var paymentResult = payment.PaymentProvider.CompletePayment(new CapturePaymentArgs(), _adminToken);

	var result = new PaymentInfoResult(externalOrderId, paymentReferenceId, paymentResult?.Success ?? false);
	payment.PopulatePaymentInfoResult(result, existingMessage);

	return result;
}

```

---

<div class="post-metadata">

**Author:** ![jonas.olsson](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/jonas.olsson/32/177_2.png) [@jonas.olsson](https://forum.litium.com/u/jonas.olsson)\
**Post date:** [August 1, 2019, 7:28am UTC](https://forum.litium.com/t/payment-mode-charge-in-klarna-checkout/1004/5 "2019-08-01T07:28:13Z")

</div>

Ok, I will look into it, thanks!

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/litium/original/1X/12eddac3b8b661de1db86af10ac8151b571e6fb9.png) [@system](https://forum.litium.com/u/system)\
**Post date:** [August 29, 2019, 7:28am UTC](https://forum.litium.com/t/payment-mode-charge-in-klarna-checkout/1004/6 "2019-08-29T07:28:21Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
