# Webhooks (Admin)

To start receiving commerce service webhooks in your application, you must first create some webhook configuration inside your company.

Basically, that configurations defines what is the endpoint that commerce service should call when some event happens and it defines also the signature key that the endpoint should use to validate the request.

{% hint style="info" %}
To understand how to verify webhook signatures and what are the available webhook events, please visit [Webhooks Page](/w3block-eng/dev-docs/api/commerce-api-services/webhooks.md).
{% endhint %}

<details>

<summary>Webhook Configuration Model (Example)</summary>

```json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "createdAt": "2022-11-04T13:36:47.665Z",
  "updatedAt": "2022-11-04T13:36:47.665Z",
  "companyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "company": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "createdAt": "2022-11-04T13:36:47.665Z",
    "updatedAt": "2022-11-04T13:36:47.665Z",
    "name": "string"
  },
  "webhookUrl": "https://mydomain.hook.me",
  "signatureKey": "string",
  "maxRetries": 5,
  "disabled": false
}
```

</details>

## Service Methods

### Creates a new Webhook Configuration inside a company

{% hint style="info" %}
The signature key could not be changed and is automatically generated. Each configuration has it owns signature key. To be safe, you must ensure that your endpoint will accept request only from our service by checking the signature.
{% endhint %}

Rest API reference:

{% openapi src="<https://commerce.pixway.io/sdk-json>" path="/admin/companies/{companyId}/webhooks-configurations" method="post" %}
<https://commerce.pixway.io/sdk-json>
{% endopenapi %}

### Lists all webhook configurations from some company

Rest API reference:

{% openapi src="<https://commerce.pixway.io/sdk-json>" path="/admin/companies/{companyId}/webhooks-configurations" method="get" %}
<https://commerce.pixway.io/sdk-json>
{% endopenapi %}

### Gets some webhook configuration of a company by ID

Rest API reference:

{% openapi src="<https://commerce.pixway.io/sdk-json>" path="/admin/companies/{companyId}/webhooks-configurations/{configurationId}" method="get" %}
<https://commerce.pixway.io/sdk-json>
{% endopenapi %}

### Updates some company webhook configuration

Rest API reference:

{% openapi src="<https://commerce.pixway.io/sdk-json>" path="/admin/companies/{companyId}/webhooks-configurations/{configurationId}" method="patch" %}
<https://commerce.pixway.io/sdk-json>
{% endopenapi %}

### Enables some disabled company webhook configuration

Rest API reference:

{% openapi src="<https://commerce.pixway.io/sdk-json>" path="/admin/companies/{companyId}/webhooks-configurations/{configurationId}/enable" method="patch" %}
<https://commerce.pixway.io/sdk-json>
{% endopenapi %}

### Disabled some enabled company webhook configuration

Rest API reference:

{% openapi src="<https://commerce.pixway.io/sdk-json>" path="/admin/companies/{companyId}/webhooks-configurations/{configurationId}/disable" method="patch" %}
<https://commerce.pixway.io/sdk-json>
{% endopenapi %}

### Lists all events sent by some webhook configuration

{% hint style="info" %}
With that sent webhook event entity, you can also know the result of the request and the last result that your configured endpoint returned to the commerce service.
{% endhint %}

Rest API reference:

{% openapi src="<https://commerce.pixway.io/sdk-json>" path="/admin/companies/{companyId}/webhooks-configurations/{configurationId}/webhooks" method="get" %}
<https://commerce.pixway.io/sdk-json>
{% endopenapi %}

### Gets some webhook event sent by some webhook configuration by ID

Rest API reference:

{% openapi src="<https://commerce.pixway.io/sdk-json>" path="/admin/companies/{companyId}/webhooks-configurations/{configurationId}/webhooks/{webhookId}" method="get" %}
<https://commerce.pixway.io/sdk-json>
{% endopenapi %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://w3block.gitbook.io/w3block-eng/dev-docs/api/commerce-api-services/company-administration/webhooks-admin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
