Klarna Direct

Auto-capture

Capture a Payment Transaction at authorization time by setting capture to NOW. Useful for intangible goods or services that are provisioned immediately.

Overview

Auto-capture allows Partners to capture a Payment Transaction at the moment of authorization, in a single API call, instead of capturing it later when goods are shipped or services delivered. It is the recommended pattern when fulfillment is instantaneous (for example, digital goods, downloads, top-ups, or any transaction where the customer receives value immediately).
To enable it, set request_payment_transaction.capture = "NOW" when calling authorizePaymentAPI. Klarna creates the Payment Transaction in COMPLETED state and returns the resulting payment_capture_id in the response, allowing the capture to be referenced in subsequent operations (refunds, reconciliation, settlement reports).
When capture is omitted or set to LATER, the Payment Transaction is created in AUTHORIZED state and capturePaymentTransactionAPI must be called later. See Capture a Payment Transaction.

Request

Add "capture": "NOW" inside request_payment_transaction when calling authorizePaymentAPI:
SHELL
1 2 3 4 5 6 7 8 9 10
curl https://api-global.test.klarna.com/v2/payment/authorize \ -H 'Authorization: Basic <API key>' \ -H 'Content-Type: application/json' \ -H 'Klarna-Network-Session-Token: krn:network:us1:test:session-token:eyJhbGciOiJIU...' \ -d '{ "currency": "USD", "request_payment_transaction": { "amount": 11800, "payment_transaction_reference": "partner-transaction-reference-1234", "capture": "NOW"

Response

The response includes a payment_captures array containing the auto-capture. The payment_capture_id should be stored for future reference (for example, when issuing a refund against a specific capture).
JSON
1 2 3 4 5 6 7 8 9 10
{ "payment_transaction_response": { "result": "APPROVED", "payment_transaction": { "payment_transaction_id": "krn:payment:eu1:transaction:6debe89e-98c0-[...]", "payment_transaction_reference": "partner-transaction-reference-1234", "amount": 11800, "currency": "USD", "state": "COMPLETED", "payment_funding": {...},

Webhooks

Every successful capture (auto-capture or manual) emits a payment.transaction.captured webhook. Subscribe via the Webhooks registration guide to keep Partners' records in sync with Klarna.
Event nameWhen
payment.transaction.capturedSent on every successful capture, whether triggered by auto-capture or by a separate capturePaymentTransactionAPI call.
Related articles
Capture a Payment Transaction
Set up your webhooks