---
title: "Resources feedback"

doc_type: openapi
doc_category: openapi
doc_version: v20270301
source_url:
  html: 'https://developer.shopline.com/docs/admin-rest-api/sales-channels/resources-feedback'
  md: 'https://developer.shopline.com/docs/admin-rest-api/sales-channels/resources-feedback.md'
---
# Resources feedback

- **Base URL:** `https://{handle}.myshopline.com/admin/openapi`
- **Required Scopes:** `write_products`
- **API Version:** v20270301
- **API Type:** Admin
- **API Protocol:** RESTful

## Endpoint

```http
POST /products/:product_id/resource_feedback.json
```

## Base URL

* `https://{handle}.myshopline.com/admin/openapi`

  * `{handle}`: `handle` : The store's unique identifier, which is the prefix of the store's domain name. For example, if a store's domain name is `open001.myshopline.com` , the store handle is `open001` .

## Required Permissions

* `write_products`

## Request

### Path Parameters

* `product_id`

  string (required)

  Product ID

### Request Headers

* `Content-Type`

  string (required)

  The field must be set to the fixed value `application/json; charset=utf-8`.

* `Authorization`

  string (required)

   The access token for the API resource. Refer to [App authorization](https://developer.shopline.com/docs/apps/api-instructions-for-use/app-authorization.md?lang=en) to obtain the access token, and then pass the obtained token in the Bearer format. 

### Request Body

* `resource_feedback`

  object

  Resources feedback content

  * `messages`

    array<string>

    Feedback information , only state=require_actions effective

  * `resource_updated_at`

    string

    Equivalent to updated_at time stamp .updated_at time stamp changes based on merchant operations .When needed , use it with feedback_generated_at to help determine whether the incoming feedback is obsolete or not compared with the feedback that has been received , and whether it should be ignored when it arrives

  * `state`

    string

    Feedback status : require_actions , success

  * `feedback_generated_at`

    string

    Time to build effective load . used to help determine whether incoming feedback is obsolete or not , and whether it should be ignored when it arrives

## Response

### Status Codes

* `200`

  For the complete list of codes and messages, see [Http status code](https://developer.shopline.com/docs/apps/api-instructions-for-use/http-status-code.md?lang=en).

* `401`

  

* `429`

  

### Response Headers

* `traceId`

  A globally unique identifier for the request. It is used to track the request flow throughout the system, allowing for easy location and debugging when issues arise.

### Response Body

#### 200

* `resource_feedback`

  object

  Resources feedback content

  * `messages`

    array<string>

    Feedback information

  * `resource_id`

    string

    Product ID

  * `resource_type`

    string

    Fixing : Product

  * `resource_updated_at`

    string

    The feedback update time generated by the sl system automatically is equivalent to updated_at

  * `state`

    string

    Feedback status : require_actions , success

  * `updated_at`

    string

    Feedback update time automatically generated by sl system

  * `created_at`

    string

    Created time after sl system received feedback

  * `feedback_generated_at`

    string

    Time to build effective load . used to help determine whether incoming feedback is obsolete or not , and whether it should be ignored when it arrives


#### 401

* `errors`

  string

  Error message. 


#### 429

* `errors`

  string

  Error message. 


## OpenAPI Definition

```json
{
  "externalDocs": {
    "description": "Permission point used by the interface is `write_products` , For more information about the use of permission points, see",
    "url": "ec20/3cv5d7wpfgr6a8z5/xabczf5442284vkq?lang=en",
    "errorTableDescription": ""
  },
  "operationId": "dHWK4nNN",
  "parameters": [
    {
      "name": "product_id",
      "in": "path",
      "description": "Product ID",
      "required": true,
      "style": "simple",
      "schema": {
        "name": "product_id",
        "description": "Product ID",
        "type": "string",
        "example": "16057476865495856634490282"
      },
      "example": "16057476865495856634490282",
      "examples": {
        "Resolve feedback": {
          "value": "16060878916899800731963144"
        },
        "Initiate feedback": {
          "value": "16060878916899800731963144"
        }
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "description": "The field must be set to the fixed value `application/json; charset=utf-8`.",
      "required": true,
      "style": "string",
      "schema": {
        "name": "Content-Type",
        "type": "string",
        "example": "application/json; charset=utf-8"
      }
    },
    {
      "name": "Authorization",
      "in": "header",
      "description": " The access token for the API resource. Refer to [App authorization](https://developer.shopline.com/docs/apps/api-instructions-for-use/app-authorization.md?lang=en) to obtain the access token, and then pass the obtained token in the Bearer format. ",
      "required": true,
      "style": "string",
      "schema": {
        "name": "Authorization",
        "description": " The access token for the API. Please refer to [App authorization](https://developer.shopline.com/docs/apps/api-instructions-for-use/app-authorization.md?lang=en) to obtain the access token, and then put the obtained access token into the API request header in Bearer Token.",
        "type": "string",
        "example": "Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MCwiYXBwS2V5IjoiNzU2ZjI1NWE2NjdlZTcwNTk1MzM0ZjVjYzk4NzU5MzBmN2E3NGZjMSIsImV4cCI6MTg3OTQ4MjA3NiwiaXNzIjoieXNvdWwiLCJzZWxsZXJJZCI6IjIwMDAyMzQ4ODAiLCJzdG9yZUlkIjoiMTY3MjM2OTcyOTYwNiIsInRpbWVzdGFtcCI6MTc4NDc4NzY3NjY2MSwidmVyc2lvbiI6IlYyIn0.3ZzbGAH4cLU1QR2VPEvMOQInUDvus-C4amkINSQIPuNVlXsFKj0sAt1c0KnUy9MWUOFV9cHlkf7J90r2y1FzpA"
      },
      "example": "Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MCwiYXBwS2V5IjoiNzU2ZjI1NWE2NjdlZTcwNTk1MzM0ZjVjYzk4NzU5MzBmN2E3NGZjMSIsImV4cCI6MTg3OTQ4MjA3NiwiaXNzIjoieXNvdWwiLCJzZWxsZXJJZCI6IjIwMDAyMzQ4ODAiLCJzdG9yZUlkIjoiMTY3MjM2OTcyOTYwNiIsInRpbWVzdGFtcCI6MTc4NDc4NzY3NjY2MSwidmVyc2lvbiI6IlYyIn0.3ZzbGAH4cLU1QR2VPEvMOQInUDvus-C4amkINSQIPuNVlXsFKj0sAt1c0KnUy9MWUOFV9cHlkf7J90r2y1FzpA"
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "resource_feedback": {
              "name": "resource_feedback",
              "description": "Resources feedback content",
              "type": "object",
              "properties": {
                "messages": {
                  "name": "messages",
                  "description": "Feedback information , only state=require_actions effective",
                  "type": "array",
                  "items": {
                    "name": "messages",
                    "description": "Feedback information , only state=require_actions effective",
                    "type": "string",
                    "example": "[This is a question]"
                  },
                  "example": [
                    "[This is a question]"
                  ]
                },
                "resource_updated_at": {
                  "name": "resource_updated_at",
                  "description": "Equivalent to updated_at time stamp .updated_at time stamp changes based on merchant operations .When needed , use it with feedback_generated_at to help determine whether the incoming feedback is obsolete or not compared with the feedback that has been received , and whether it should be ignored when it arrives",
                  "type": "string",
                  "example": "2023-01-12T15:20:08+08:00"
                },
                "state": {
                  "name": "state",
                  "description": "Feedback status : require_actions , success",
                  "type": "string",
                  "example": "require_actions"
                },
                "feedback_generated_at": {
                  "name": "feedback_generated_at",
                  "description": "Time to build effective load . used to help determine whether incoming feedback is obsolete or not , and whether it should be ignored when it arrives",
                  "type": "string",
                  "example": "2023-01-12T15:20:08+08:00"
                }
              },
              "required": [
                "feedback_generated_at",
                "state"
              ],
              "example": {
                "messages": [
                  "[This is a question]"
                ],
                "resource_updated_at": "2023-01-12T15:20:08+08:00",
                "state": "require_actions",
                "feedback_generated_at": "2023-01-12T15:20:08+08:00"
              }
            }
          },
          "required": [
            "resource_feedback"
          ],
          "example": {
            "resource_feedback": {
              "state": "require_actions",
              "feedback_generated_at": "2023-01-12T15:20:08+08:00",
              "messages": [
                "[This is a question]"
              ],
              "resource_updated_at": "2023-01-12T15:20:08+08:00"
            }
          }
        },
        "examples": {
          "Initiate feedback": {
            "value": {
              "resource_feedback": {
                "messages": [
                  "This is a question"
                ],
                "resource_updated_at": "2023-08-29T15:20:08+08:00",
                "state": "requires_action",
                "feedback_generated_at": "2023-08-29T15:20:08+08:00"
              }
            }
          },
          "Resolve feedback": {
            "value": {
              "resource_feedback": {
                "feedback_generated_at": "2023-08-29T16:25:08+08:00",
                "resource_updated_at": "2023-08-29T16:46:08+08:00",
                "state": "success"
              }
            }
          }
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "For the complete list of codes and messages, see [Http status code](https://developer.shopline.com/docs/apps/api-instructions-for-use/http-status-code.md?lang=en).",
      "headers": {
        "traceId": {
          "description": "A globally unique identifier for the request. It is used to track the request flow throughout the system, allowing for easy location and debugging when issues arise."
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "resource_feedback": {
                "name": "resource_feedback",
                "description": "Resources feedback content",
                "type": "object",
                "properties": {
                  "messages": {
                    "name": "messages",
                    "description": "Feedback information",
                    "type": "array",
                    "items": {
                      "name": "messages",
                      "description": "Feedback information",
                      "type": "string",
                      "example": "[This is a question]"
                    },
                    "example": [
                      "[This is a question]"
                    ]
                  },
                  "resource_id": {
                    "name": "resource_id",
                    "description": "Product ID",
                    "type": "string",
                    "example": "16057476865495856634490282"
                  },
                  "resource_type": {
                    "name": "resource_type",
                    "description": "Fixing : Product",
                    "type": "string",
                    "example": "Product"
                  },
                  "resource_updated_at": {
                    "name": "resource_updated_at",
                    "description": "The feedback update time generated by the sl system automatically is equivalent to updated_at",
                    "type": "string",
                    "example": "2023-01-12T15:20:08+08:00"
                  },
                  "state": {
                    "name": "state",
                    "description": "Feedback status : require_actions , success",
                    "type": "string",
                    "example": "require_actions"
                  },
                  "updated_at": {
                    "name": "updated_at",
                    "description": "Feedback update time automatically generated by sl system",
                    "type": "string",
                    "example": "2023-01-12T15:20:08+08:00"
                  },
                  "created_at": {
                    "name": "created_at",
                    "description": "Created time after sl system received feedback",
                    "type": "string",
                    "example": "2023-01-12T15:20:08+08:00"
                  },
                  "feedback_generated_at": {
                    "name": "feedback_generated_at",
                    "description": "Time to build effective load . used to help determine whether incoming feedback is obsolete or not , and whether it should be ignored when it arrives",
                    "type": "string",
                    "example": "2023-01-12T15:20:08+08:00"
                  }
                },
                "example": {
                  "resource_updated_at": "2023-01-12T15:20:08+08:00",
                  "state": "require_actions",
                  "updated_at": "2023-01-12T15:20:08+08:00",
                  "created_at": "2023-01-12T15:20:08+08:00",
                  "feedback_generated_at": "2023-01-12T15:20:08+08:00",
                  "messages": [
                    "[This is a question]"
                  ],
                  "resource_id": "16057476865495856634490282",
                  "resource_type": "Product"
                }
              }
            },
            "example": {
              "resource_feedback": {
                "resource_updated_at": "2023-01-12T15:20:08+08:00",
                "state": "require_actions",
                "updated_at": "2023-01-12T15:20:08+08:00",
                "created_at": "2023-01-12T15:20:08+08:00",
                "feedback_generated_at": "2023-01-12T15:20:08+08:00",
                "messages": [
                  "[This is a question]"
                ],
                "resource_id": "16057476865495856634490282",
                "resource_type": "Product"
              }
            }
          },
          "examples": {
            "Initiate feedback": {
              "value": {
                "resource_feedback": {
                  "updated_at": "2023-08-29T16:32:13+08:00",
                  "created_at": "2023-08-29T16:32:13+08:00",
                  "feedback_generated_at": "2023-08-29T15:20:08+08:00",
                  "messages": [
                    "This is a question"
                  ],
                  "resource_id": "16060878916899800731963144",
                  "resource_type": "Product",
                  "resource_updated_at": "2023-08-29T16:32:13+08:00",
                  "state": "requires_action"
                }
              }
            },
            "Resolve feedback": {
              "value": {
                "resource_feedback": {
                  "feedback_generated_at": "2023-08-29T15:20:08+08:00",
                  "messages": [
                    "This is a question"
                  ],
                  "resource_id": "16060878916899800731963144",
                  "resource_type": "Product",
                  "resource_updated_at": "2023-08-29T16:46:40+08:00",
                  "state": "success",
                  "updated_at": "2023-08-29T16:46:40+08:00",
                  "created_at": "2023-08-29T16:32:13+08:00"
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "headers": {
        "traceId": {
          "description": "A globally unique identifier for the request. It is used to track the request flow throughout the system, allowing for easy location and debugging when issues arise."
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "errors": {
                "description": "Error message. ",
                "type": "string"
              }
            },
            "required": [
              "errors"
            ]
          }
        }
      }
    },
    "429": {
      "headers": {
        "traceId": {
          "description": "A globally unique identifier for the request. It is used to track the request flow throughout the system, allowing for easy location and debugging when issues arise."
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "errors": {
                "description": "Error message. ",
                "type": "string"
              }
            },
            "required": [
              "errors"
            ]
          }
        }
      }
    }
  },
  "security": [
    {
      "oauth2": []
    }
  ],
  "method": "post",
  "path": "/products/:product_id/resource_feedback.json",
  "servers": [
    {
      "url": "https://{handle}.myshopline.com/admin/openapi",
      "variables": {
        "handle": {
          "default": "openapiceshidianpu",
          "description": "`handle` : The store's unique identifier, which is the prefix of the store's domain name. For example, if a store's domain name is `open001.myshopline.com` , the store handle is `open001` ."
        }
      }
    }
  ],
  "info": {
    "title": "Resources feedback",
    "version": "v20270301"
  },
  "authIndexes": [
    "write_products"
  ]
}
```