---
updatedAt: 2025-07-30T16:15:25.000Z
agentTools:
  projectIndex: https://docs.supplierxm.salsify.com/llms.txt
---

# Update Webhook

All the available webhook's event are listed in [List Webhook Event](https://docs.supplierxm.salsify.com/reference/list-webhook-event).

When `signature_token` is given you can use the webhook header `webhook-signature` to check the integrity of the request. If the raw body hashed in sha256 with your `signature_token` as key is different of `webhook-signature` header, the request is corrupted.

Code exemple :

```python
import hmac
import hashlib

header['webhook-signature'] == hmac.new(signature_token, raw_body, hashlib.sha256).digest()
```

## List of errors

All errors will follow this pattern :

```json
{
    "message": "You don't have the permission to perform this action",
    "status": 403,
    "data": {
        ...
    }
}
```

You will often find more details in the `data` object and when there are several errors on a bulk update, you will find the list of errors in the `errors` array.

<HTMLBlock>{`
<table class="errors-table">
    <thead>
        <tr>
            <th>Status</th>
            <th>Message</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td rowspan=1>403</td>
            <td>You don't have the permission to perform this action</td>
        </tr>
        <tr>
            <td rowspan=2>404</td>
            <td>webhook event(s) not found</td>
        </tr>
        <tr>
            <td>webhook not found</td>
        </tr>
        <tr>
            <td rowspan=1>409</td>
            <td>A webhook with this url already exist</td>
        </tr>
        <tr>
            <td rowspan=1>500</td>
            <td>Internal server error</td>
        </tr>
    </tbody>
</table>

<style>
	.errors-table td {
    text-align: center;
  }
  .errors-table td:last-of-type {
    text-align: left;
  }
</style>
`}</HTMLBlock>

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "tenders-public-retailer",
    "version": "2.1"
  },
  "servers": [
    {
      "url": "https://apis.supplierxm.salsify.com/rfp/public/"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "in": "header",
        "x-default": "SALSIFY_TOKEN",
        "name": "Authorization",
        "x-bearer-format": "bearer"
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/v1/webhook": {
      "put": {
        "summary": "Update Webhook",
        "description": "",
        "operationId": "update-webhook",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "webhook": {
                    "properties": {
                      "uuid": {
                        "type": "string",
                        "description": "The uuid of the webhook"
                      },
                      "url": {
                        "type": "string",
                        "description": "URL of your webhook, must be https"
                      },
                      "signature_token": {
                        "type": "string"
                      },
                      "registered_events": {
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the event you want to register"
                          },
                          "version": {
                            "type": "integer",
                            "description": "Version of the event you want to register",
                            "format": "int32"
                          }
                        },
                        "required": [],
                        "type": "object"
                      }
                    },
                    "required": [
                      "uuid"
                    ],
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"webhook\": {\n  \t\"uuid\": \"WEBHOOK_UUID\",\n    \"url\": \"https://webhook_url.com\",\n    \"last_success_at\": null,\n    \"is_broken\": false,\n    \"last_failure_at\": null,\n    \"signature_token\": null,\n    \"registered_events\": [\n      {\n        \"name\": \"BU_CHASED\",\n        \"version\": 1\n      },\n      {\n        \"name\": \"EVENT_CREATED\",\n        \"version\": 1\n      },\n      {\n        \"name\": \"EVENT_UPDATED\",\n        \"version\": 1\n      },\n      {\n        \"name\": \"EVENT_DELETED\",\n        \"version\": 1\n      },\n      {\n        \"name\": \"ANSWER_STATUS_UPDATED\",\n        \"version\": 1\n      },\n      {\n        \"name\": \"NEW_CHAT_MESSAGE\",\n        \"version\": 1\n      }\n    ],\n  }\n}"
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --request POST \\\n     --url https://apis.supplierxm.salsify.com/rfp/public/v1/business_units \\\n     --header 'Accept: application/json' \\\n     --header 'Authorization: Bearer SALSIFY_TOKEN' \\\n     --header 'Content-Type: application/json' \\\n     --data '\n        {\n            \"webhook\": {\n\t  \t\t\t\t\t\t\"uuid\": \"WEBHOOK_UUID\",\n                \"url\": \"https://webhook_url.com\",\n                \"signature_token\": \"TOKEN\",\n                \"registered_events\": [\n                    {\n                        \"name\": \"BU_CHASED\",\n                        \"version\": 1\n                    },\n                    {\n                        \"name\": \"EVENT_CREATED\",\n                        \"version\": 1\n                    },\n                    {\n                        \"name\": \"EVENT_UPDATED\",\n                        \"version\": 1\n                    },\n                    {\n                        \"name\": \"EVENT_DELETED\",\n                        \"version\": 1\n                    },\n                    {\n                        \"name\": \"ANSWER_STATUS_UPDATED\",\n                        \"version\": 1\n                    },\n                    {\n                        \"name\": \"NEW_CHAT_MESSAGE\",\n                        \"version\": 1\n                    }\n                ]\n            }\n        }\n     '"
            }
          ],
          "samples-languages": [
            "curl"
          ]
        }
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```