Payment-method icon

Specifying invoice lines and discounts

Include information about purchased items in your API requests and apply discounts.

When making Klarna payments, you need to specify price and product information when:

Make a payment request

For any payment request, include price and product information in lineItems.

When adding price and product information, note that:

  • Klarna will only approve the payment if the total amount specified in lineItems matches the amount.value.
  • productUrl and imageUrl are optional fields.

Make a partial capture request

For a partial capture request, include the price and product information in additionalData.openinvoicedata .

Although the field names are different, the information in additionalData.openinvoicedata is the same as what you provided in lineItems when making a payment request. The following table shows the corresponding fields.

openinvoicedata lineItems Required Description
itemAmount amountExcludingTax -white_check_mark- The price for one item, without the tax, in minor units.
itemVatPercentage taxPercentage -white_check_mark- The tax percentage, in minor units.
itemVatAmount taxAmount The tax amount for one item, in minor units.

For Klarna to approve a partial capture, the value specified in the modificationAmount has to match the total amount calculated from the invoice lines.

Below is an example of how you can make a partial capture if the shopper only kept one pair of socks from the two included in the original payment request.

You will receive a response containing a pspReference. Once we have processed your request, you will also receive a CAPTURE webhook.

Make a partial refund request

For a partial refund request, include the price and product information in additionalData.openinvoicedata .

Although the field names are different, the information in additionalData.openinvoicedata is the same as what you provided in lineItems when making a payment request. The following table shows the corresponding fields.

openinvoicedata lineItems Required Description
itemAmount amountExcludingTax -white_check_mark- The price for one item, without the tax, in minor units.
itemVatPercentage taxPercentage -white_check_mark- The tax percentage, in minor units.
itemVatAmount taxAmount The tax amount for one item, in minor units.

Below is an example of how you can partially refund a pair of socks from the original payment request.

You will receive a response containing a pspReference. Once we have processed your request, you will also receive a REFUND webhook.

Apply a discount

There are several ways to apply a discount to the invoice:

The examples below apply a 30% discount to the shopper's basket, which contains:

  • One pair of shoes, original price EUR 12.00 including 20% VAT
  • Two pairs of socks, original price EUR 4.50 including 20% VAT

Apply a discount to individual line items

With this method of applying a discount, you reduce the cost of the applicable line items instead of discounting the basket as a whole. To apply a discount to individual line items:

  1. Calculate the reduced amount of each line item you want to discount.
  2. Send a payment request in which each line item specifies the discounted amounts:
    • amountExcludingTax
    • taxAmount
    • amountIncludingTax
Sample basket with discounts applied to individual items
Product Quantity Item Price (EUR) VAT (EUR) Total price (EUR)
Shoes (with 30% discount) 1 7,00 1,40 8,40
Socks (with 30% discount) 2 2,63 0,52 6,30
Purchase amount 12,26
VAT 2,44
TOTAL 14,70

Apply a discount to the whole purchase

With this method of applying a discount, you specify the line items with their original price and then apply a discount to the basket as a whole by adding a discount line.

To apply a discount to the entire basket:

  1. Calculate the discount to the product total and the VAT.
  2. In your payments request, send each fully priced line item, plus a line Item to specify the discount with the following parameters:
    • id: Discount
    • description: Discount
    • amountExcludingTax: The discount amount, preceded by a minus sign
    • taxAmount: The discount amount, preceded by a minus sign
    • amountIncludingTax: The discount amount, preceded by a minus sign
Sample basket with a discount applied to the entire basket
Product Quantity Item Price (EUR) VAT (EUR) Total price (EUR)
Shoes 1 10,00 2,00 12,00
Socks 2 3,75 0,75 9,00
Total before discount 21,00
Product discount 5,25
VAT discount 1,05
Total discount (30%) 6,30
TOTAL 14,70

Let Adyen add a discount line for you

With this method of applying a discount, Adyen calculates that amount.value is less than the total value of the line items, so a discount must have been applied. In this case, Adyen adds a line item for the discount before sending to Klarna.

Adjust an authorization

If you want to adjust an authorized payment that has not yet been fully captured, your API request must specify all captured and refunded lineItems. (See Adjust an authorization for detailed instructions.) Below are two examples of adjusting an authorized payment:

These examples are based on the following order:

Cancel part of the authorization before capture

If you want to cancel or adjust the authorization before capturing, you can declare the new amount and associated lineitems.

The following example removes Item #2 from the above order by declaring the new basket composition and amount.

Add a product from a partially captured order

If you want to add products to a partially captured or refunded order, you must include the already captured or refunded lineItems in the update request, in addition to the new order content.

In the following example, Item #1 from the above order is captured, and we add a third item to the order: