The Order Risk resource allows you to create, retrieve, update, and delete order risks. Order risks represent the results of fraud checks that have been completed for an order.
Usage notes
This resource is deprecated in version 2024-04. Please refer to the GraphQL api for
Order#field-order-risk
When determining an order's risk level, Shopify takes into account only those order risks that have the display property set to true. Orders with a display set to false will not be returned through the Order Risk resource. It's not advised to create order risks with a display set to false. This property might be removed in future API versions.
Risk assessments will favor the most severe risk recommendation for an order. Keep this in mind when creating new order risks.
## Resource Properties
### Order Risk
* cause_cancel: Whether this order risk is severe enough to force the cancellation of the order. If true, then this order risk is included in the Order canceled message that's shown on the details page of the canceled order.
Note: Setting this property to true does not cancel the order. Use this property only if your app automatically cancels the order using the Order resource. If your app doesn't automatically cancel orders based on order risks, then leave this property set to false.
* Type: x-string
* Example: false
* checkout_id: The ID of the checkout that the order risk belongs to.
* Type: x-string
* Example: 901414060
* display: Whether the order risk is displayed on the order details page in the Shopify admin. If false, then this order risk is ignored when Shopify determines your app's overall risk level for the order.
It's not advised to create order risks with a display set to false.
* Type: x-string
* Example: true
* id: A unique numeric identifier for the order risk.
* Type: x-string
* Example: 284138680
* merchant_message: The message that's displayed to the merchant to indicate the results of the fraud check. The message is displayed only if display is set totrue.
* Type: x-string
* Example: "This order came from an anonymous proxy."
* message: The message that's displayed to the merchant to indicate the results of the fraud check. The message is displayed only if display is set totrue.
* Type: x-string
* Example: "This order came from an anonymous proxy."
* order_id: The ID of the order that the order risk belongs to.
* Type: x-string
* Example: 450789469
* recommendation: The recommended action given to the merchant. Valid values:
cancel: There is a high level of risk that this order is fraudulent. The merchant should cancel the order.
investigate: There is a medium level of risk that this order is fraudulent. The merchant should investigate the order.
accept: There is a low level of risk that this order is fraudulent. The order risk found no indication of fraud.
* Type: x-string
* Example: "cancel"
* score: For internal use only. A number between 0 and 1 that's assigned to the order.
The closer the score is to 1, the more likely it is that the order is fraudulent.
* Type: string
* Example: "1.0"
* source: The source of the order risk.
* Type: x-string
* Example: "External"
## Creates an order risk for an order
Creates an order risk for an order
### Endpoint
/admin/api/#{api_version}/orders/{order_id}/risks.json (POST)
### Parameters
* api_version (required):
* order_id (required):
### Responses
#### 201
Creates an order risk for an order
Examples:
##### Create an order risk showing a fraud risk for proxy detection
Request:
```
POST /admin/api/unstable/orders/450789469/risks.json
{"risk":{"message":"This order came from an anonymous proxy","recommendation":"cancel","score":"1.0","source":"External","cause_cancel":true,"display":true}}
```
Response:
```
HTTP/1.1 201 Created
{"risk":{"id":1029151490,"order_id":450789469,"checkout_id":901414060,"source":"External","score":"1.0","recommendation":"cancel","display":true,"cause_cancel":true,"message":"This order came from an anonymous proxy","merchant_message":"This order came from an anonymous proxy"}}
```
## Retrieves a list of all order risks for an order
Retrieves a list of all order risks for an order. Note: This endpoint implements pagination by using links that are provided in the response header. To learn more, refer to Make paginated requests to the REST Admin API.
### Endpoint
/admin/api/#{api_version}/orders/{order_id}/risks.json (GET)
### Parameters
* api_version (required):
* order_id (required):
### Responses
#### 200
Retrieves a list of all order risks for an order
Examples:
##### Retrieve all order risks for an order
Request:
```
GET /admin/api/unstable/orders/450789469/risks.json
```
Response:
```
HTTP/1.1 200 OK
{"risks":[{"id":284138680,"order_id":450789469,"checkout_id":null,"source":"External","score":"1.0","recommendation":"cancel","display":true,"cause_cancel":true,"message":"This order was placed from a proxy IP","merchant_message":"This order was placed from a proxy IP"},{"id":1029151489,"order_id":450789469,"checkout_id":901414060,"source":"External","score":"1.0","recommendation":"cancel","display":true,"cause_cancel":true,"message":"This order came from an anonymous proxy","merchant_message":"This order came from an anonymous proxy"}]}
```
## Retrieves a single order risk by its ID
Retrieves a single order risk by its ID
### Endpoint
/admin/api/#{api_version}/orders/{order_id}/risks/{risk_id}.json (GET)
### Parameters
* api_version (required):
* order_id (required):
* risk_id (required):
### Responses
#### 200
Retrieves a single order risk by its ID
Examples:
##### Retrieve a single order risk
Request:
```
GET /admin/api/unstable/orders/450789469/risks/284138680.json
```
Response:
```
HTTP/1.1 200 OK
{"risk":{"id":284138680,"order_id":450789469,"checkout_id":null,"source":"External","score":"1.0","recommendation":"cancel","display":true,"cause_cancel":true,"message":"This order was placed from a proxy IP","merchant_message":"This order was placed from a proxy IP"}}
```
## Updates an order risk
Updates an order risk
### Endpoint
/admin/api/#{api_version}/orders/{order_id}/risks/{risk_id}.json (PUT)
### Parameters
* api_version (required):
* order_id (required):
* risk_id (required):
### Responses
#### 200
Updates an order risk
Examples:
##### Update an existing order risk for an order
Request:
```
PUT /admin/api/unstable/orders/450789469/risks/284138680.json
{"risk":{"id":284138680,"message":"After further review, this is a legitimate order","recommendation":"accept","source":"External","cause_cancel":false,"score":"0.0"}}
```
Response:
```
HTTP/1.1 200 OK
{"risk":{"order_id":450789469,"cause_cancel":false,"message":"After further review, this is a legitimate order","recommendation":"accept","score":"0.0","source":"External","id":284138680,"checkout_id":null,"display":true,"merchant_message":"After further review, this is a legitimate order"}}
```
## Deletes an order risk for an order
Deletes an order risk for an order
### Endpoint
/admin/api/#{api_version}/orders/{order_id}/risks/{risk_id}.json (DELETE)
### Parameters
* api_version (required):
* order_id (required):
* risk_id (required):
### Responses
#### 200
Deletes an order risk for an order
Examples:
##### Delete an order risk for an order
Request:
```
DELETE /admin/api/unstable/orders/450789469/risks/284138680.json
```
Response:
```
HTTP/1.1 200 OK
{}
```