Pending orders

The functionality for pending orders is used to delay the shipping of orders that are suspected for fraud until the order has been reviewed. Currently this functionality is only applicable for merchants in US & UK regions. Note that the pending functionality is not enabled by default and must be activated for each account.

The pending process begins when an order is identified as potentially fraudulent, the status is set to pending, Klarna reviews the order manually, and then the status is sent to the merchant. Merchants must be able to check the status of the orders in order to appropriately respond to the status set by Klarna (accepted or rejected).

In review

After the customer has completed the order in the checkout the order can have the fraud_status PENDING showing that the order is being reviewed for fraud. When an order is assigned the PENDING fraud status it should not be processed for shipping, but instead be put on hold until it has been reviewed. During this step the customer should be made aware that the order is in progress and will not be shipped immediately. The ability for a merchant to hold pended orders until Klarna completes the fraud checks is a critical step.

After review

After the order has been reviewed it will either be approved and be assigned the fraud_status ACCEPTED, or the order will be rejected and assigned the fraud_status REJECTED. The review process is generally completed within 4 - 8 business hours, and can last a maximum of 24 hours.

Events

The events sent to merchant notification URL are as follows:

  • FRAUD_RISK_ACCEPTED - An order was accepted, possibly after review
  • FRAUD_RISK_REJECTED - An order was rejected after review
  • FRAUD_RISK_STOPPED - An order was stopped for some reason

When the order has been reviewed and assigned a new status a post request will be sent to the URL specified as the notification url when the order was created. The body of the post request will be an event of the types ORDER_ACCEPTED or ORDER_REJECTED together with the order_id for the order which the notification concerns.

Notifications

With pending enabled, there are two possible initial values of fraud_status. It can set to either ACCEPTED and PENDING. ACCEPTED means we accepted the fraud risk automatically when the order was created. PENDING means that we are waiting for the order to be reviewed.

The merchant will only get the push notification when the fraud_status transitions from PENDING to ACCEPTED or REJECTED.

Having pending enabled does not mean stop requests will not be sent anymore. There will be orders that were not pended on creation that the fraud agents found to be fraudulent for some other reason, in that case they will send stop requests.

Example notification:

1
2
3
4
{
  "order_id": "de305d54-75b4-431b-adb2-eb6b9e546014",
  "event_type": "ORDER_ACCEPTED"
}

Overriding the fraud decision

The result of the fraud review process can be overridden by the merchant if needed.

To reject an order that Klarna has approved you simply cancel the order using a regular cancel API call through the order management API.

To accept an order that has been rejected by Klarna you must capture it within 4 hours of receiving the notification POST request. The capture is done as usual with the order management API. Accepting a rejected order by capturing it will transfer the risk of the order to the merchant. If the order is not captured within 4 hours the order will be cancelled.