Klarna Docs - Capture part of the order amount

Capture part of the order amount

Use the Order management API to partially capture an order.

When you partially fulfill the order (for example, you have sent some of the products to the customer but not all of them), you need to capture the amount for the sent items through this API call.

You can use the same endpoint for making full and partial captures. For a full capture, you send the total order amount. For a partial capture, you only send the order amount corresponding to the items you sent.

To capture a part of the order amount, send a POST  request to the {apiUrl}/ordermanagement/v1/orders/{order_id}/captures endpoint.

Include the following in your request:

Header

  • Klarna-Idempotency-Key : This header will guarantee the idempotency of the operation. The key should be unique and is recommended to be a UUID version 4. Retries of requests are safe to be applied in case of errors such as network errors, socket errors and timeouts.

Body

  • captured_amount (required): the partial order amount to be captured. It must be less than the total order_amount
  • reference (optional): Internal reference to the capture. This will be included in the settlement files.
  • description  (optional): Description of the capture shown to the customer.
  • order_lines  (optional): list of details associated with this capture
  • shipping_info (optional): shipping details such as company and tracking number. If you're shipping physical goods, you need to have shipping information available at this point. For more information, see the Add shipping information section.
JSON
{
  "captured_amount": 6000,
  "reference": "2027d87e-c394-4b22-9cfd-f51f79482793",
  "description": "Shipped the full order",
  "order_lines": [
    {
      "type": "physical",
      "reference": "123050",
      "name": "Tomatoes",
      "quantity": 10,

Sample of a request to partially capture an order.

If the request is successful, you'll receive a 201 Created response including capture_id and location as HTTP response headers.

Error response

If your request contains errors, you'll receive an error response. Make sure the order_id is correct.

You can use the correlation_id and the order_id values to troubleshoot the call in the Merchant portal logs section.

JSON
{
  "correlation_id": "66782175-ae05-44fc-9eb3-eeceadbad271",
  "error_code": "NO_SUCH_ORDER",
  "error_messages": [
    "string"
  ]
}

Sample of an error response to partially capture an order.

Ready to send this request? See the API reference of this call.