> For the complete documentation index, see [llms.txt](https://docs.flowretail.com/api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flowretail.com/api/webhooks.md).

# Webhooks

Webhooks

## List http transport configurations

> List http transport configurations\
> \
> Required access: Tenant.Admin

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"parameters":{"pageNumberQuery":{"description":"Reference to a specific page in a result set.","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},"pageSizeQuery":{"description":"The number of items per page in a result set.","in":"query","name":"pageSize","required":false,"schema":{"type":"integer"}},"sortByQuery":{"description":"Defines which field the resource list is sorted by.","in":"query","name":"sortBy","required":false,"schema":{"type":"string"}},"sortDirectionQuery":{"description":"Reference to a sort direction","explode":false,"in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/SortDirectionENUM"},"style":"form"}},"schemas":{"SortDirectionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| ASC | Sort in ascending order|\n| DESC | Sort in descending order|\n","enum":["ASC","DESC"],"title":"SortDirectionENUM","type":"string"},"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"Paging":{"description":"totalCount The total number of items in the result set.\n\npageSize The number of items per page.\n\npageNumber The current page in the result set.","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["totalCount","pageSize","pageNumber"],"title":"Paging","type":"object"}},"responses":{"TransportListResponse":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/HttpTransportResponseSchema"},"type":"array"},"paging":{"$ref":"#/components/schemas/Paging"}},"required":["items","paging"],"type":"object"}}},"description":"Transport List response"}}},"paths":{"/tenants/{tenantUid}/httptransports":{"get":{"description":"List http transport configurations\n\nRequired access: Tenant.Admin","operationId":"get-tenants-httptransports","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"}],"responses":{"200":{"$ref":"#/components/responses/TransportListResponse"}},"summary":"List http transport configurations","tags":["Webhooks"]}}}}
```

## Create new http transport configuration on a tenant

> Add http transport configuration to tenant\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"requestBodies":{"TransportCreateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransportCreateRequestSchema"}}},"description":"Transport create Request"}},"schemas":{"TransportCreateRequestSchema":{"allOf":[{"$ref":"#/components/schemas/TransportUpdateRequestSchema"},{"properties":{"httpTransportUid":{"$ref":"#/components/schemas/UID"}},"type":"object"}],"title":"TransportCreateRequestSchema"},"TransportUpdateRequestSchema":{"description":"Transport Request Schema","title":"TransportUpdateRequestSchema","type":"object","properties":{"headers":{"type":"array","items":{"$ref":"#/components/schemas/TransportHeaderSchema"}},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"url":{"type":"string"},"username":{"type":"string"}},"required":["name","securityType","url"]},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"}},"responses":{"TransportResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpTransportResponseSchema"}}},"description":"Transport response"}}},"paths":{"/tenants/{tenantUid}/httptransports":{"post":{"description":"Add http transport configuration to tenant\n\nRequired permissions: WEBHOOK","operationId":"post-tenants-httptransports","requestBody":{"$ref":"#/components/requestBodies/TransportCreateRequest"},"responses":{"200":{"$ref":"#/components/responses/TransportResponse"}},"summary":"Create new http transport configuration on a tenant","tags":["Webhooks"]}}}}
```

## Get http transport configuration details

> Get details for a http transport configuration.\
> \
> Required access: Tenant.Admin

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"TransportResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpTransportResponseSchema"}}},"description":"Transport response"}},"schemas":{"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"}}},"paths":{"/tenants/{tenantUid}/httptransports/{httpTransportUid}":{"get":{"description":"Get details for a http transport configuration.\n\nRequired access: Tenant.Admin","operationId":"get-tenants-httptransports-details","responses":{"200":{"$ref":"#/components/responses/TransportResponse"}},"summary":"Get http transport configuration details","tags":["Webhooks"]}}}}
```

## Update tenant http transport configuration

> Update http transport configuration for a tenant\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"requestBodies":{"TransportUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransportUpdateRequestSchema"}}},"description":"Transport Update Request"}},"schemas":{"TransportUpdateRequestSchema":{"description":"Transport Request Schema","title":"TransportUpdateRequestSchema","type":"object","properties":{"headers":{"type":"array","items":{"$ref":"#/components/schemas/TransportHeaderSchema"}},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"url":{"type":"string"},"username":{"type":"string"}},"required":["name","securityType","url"]},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"},"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"}},"responses":{"TransportResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpTransportResponseSchema"}}},"description":"Transport response"}}},"paths":{"/tenants/{tenantUid}/httptransports/{httpTransportUid}":{"put":{"description":"Update http transport configuration for a tenant\n\nRequired permissions: WEBHOOK","operationId":"put-tenants-httptransports-details","requestBody":{"$ref":"#/components/requestBodies/TransportUpdateRequest"},"responses":{"200":{"$ref":"#/components/responses/TransportResponse"}},"summary":"Update tenant http transport configuration","tags":["Webhooks"]}}}}
```

## Delete a http transport configuration from a tenant

> Deletes a http transport configuration completely from a tenant.\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}}},"paths":{"/tenants/{tenantUid}/httptransports/{httpTransportUid}":{"delete":{"description":"Deletes a http transport configuration completely from a tenant.\n\nRequired permissions: WEBHOOK","operationId":"delete-tenants-httptransports-details","responses":{"204":{"description":"No Content"}},"summary":"Delete a http transport configuration from a tenant","tags":["Webhooks"]}}}}
```

## List all webhooks

> List all webhooks.\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"parameters":{"pageNumberQuery":{"description":"Reference to a specific page in a result set.","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},"pageSizeQuery":{"description":"The number of items per page in a result set.","in":"query","name":"pageSize","required":false,"schema":{"type":"integer"}},"sortByQuery":{"description":"Defines which field the resource list is sorted by.","in":"query","name":"sortBy","required":false,"schema":{"type":"string"}},"sortDirectionQuery":{"description":"Reference to a sort direction","explode":false,"in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/SortDirectionENUM"},"style":"form"},"httpTransportUidQuery":{"description":"Http Transport uid","in":"query","name":"httpTransportUid","required":false,"schema":{"$ref":"#/components/schemas/UID"}}},"schemas":{"SortDirectionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| ASC | Sort in ascending order|\n| DESC | Sort in descending order|\n","enum":["ASC","DESC"],"title":"SortDirectionENUM","type":"string"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"WebhookResponseSchema":{"properties":{"action":{"$ref":"#/components/schemas/WebhookActionENUM"},"httpTransport":{"$ref":"#/components/schemas/HttpTransportResponseSchema"},"webhookUid":{"$ref":"#/components/schemas/UID"}},"required":["action","webhookUid","httpTransport"],"description":"Webhook Response","title":"WebhookResponseSchema","type":"object"},"WebhookActionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| PRODUCT_CREATE | Create new product |\n| PRODUCT_UPDATE | Update existing product |\n| PRODUCT_DELETE | Product deleted |\n| CUSTOMER_CREATE | Create new customer|\n| CUSTOMER_UPDATE | Update existing customer|\n| CUSTOMER_DELETE | Customer deleted|\n| ORDER_SETTLED | New order. Order status is SETTLED|\n| ORDER_STATE_CHANGE | Order changes state|\n| ORDER_RECEIPT_SETTLED | A receipt is SETTLED |\n| ORDER_DELIVERED | Existing order. Order status DELIVERED|\n| ORDER_LINE_DELIVERED | An order line has been delivered |\n| ORDER_HANDLING_STATE_CHANGED | An order handling state changed (notably when set to NOT_STARTED, IN_PROGRESS, ON_HOLD, or COMPLETE) |\n| TILL_CLOSED | Till has been counted and closed.|\n| TILL_OPEN | Till has been opened.|\n| PRICE_CREATE | Create new price.|\n| PRICE_UPDATE | Update Price.|\n| PRICE_DELETE | Price deleted |\n| STOCK_CHANGE | Stock for a warehouseUid and productUid has changed.|\n| PRODUCT_MEDIA_CHANGE | Product media has changed (create/update/delete).|\n| PURCHASE_RECEIVED | Purchase order fully received |\n| ORDER_LINE_RESERVATION_CHANGE | Order line reservation changed |","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","CUSTOMER_CREATE","CUSTOMER_UPDATE","CUSTOMER_DELETE","ORDER_SETTLED","ORDER_DELIVERED","ORDER_STATE_CHANGE","ORDER_LINE_DELIVERED","TILL_CLOSED","TILL_OPEN","PRICE_CREATE","PRICE_UPDATE","PRICE_DELETE","STOCK_CHANGE","PRODUCT_MEDIA_CHANGE","PURCHASE_RECEIVED","ORDER_HANDLING_STATE_CHANGED","ORDER_RECEIPT_SETTLED","ORDER_LINE_RESERVATION_CHANGE"],"title":"WebhookActionENUM","type":"string"},"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"},"Paging":{"description":"totalCount The total number of items in the result set.\n\npageSize The number of items per page.\n\npageNumber The current page in the result set.","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["totalCount","pageSize","pageNumber"],"title":"Paging","type":"object"}},"responses":{"WebhookListResponse":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WebhookResponseSchema"},"type":"array"},"paging":{"$ref":"#/components/schemas/Paging"}},"required":["items","paging"],"type":"object"}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/webhooks":{"get":{"description":"List all webhooks.\n\nRequired permissions: WEBHOOK","operationId":"get-tenants-webhooks","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"},{"$ref":"#/components/parameters/httpTransportUidQuery"}],"responses":{"200":{"$ref":"#/components/responses/WebhookListResponse"}},"summary":"List all webhooks","tags":["Webhooks"]}}}}
```

## List all webhooks for a httpTransport

> List all webhooks for a http transport.\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"parameters":{"pageNumberQuery":{"description":"Reference to a specific page in a result set.","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},"pageSizeQuery":{"description":"The number of items per page in a result set.","in":"query","name":"pageSize","required":false,"schema":{"type":"integer"}},"sortByQuery":{"description":"Defines which field the resource list is sorted by.","in":"query","name":"sortBy","required":false,"schema":{"type":"string"}},"sortDirectionQuery":{"description":"Reference to a sort direction","explode":false,"in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/SortDirectionENUM"},"style":"form"}},"schemas":{"SortDirectionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| ASC | Sort in ascending order|\n| DESC | Sort in descending order|\n","enum":["ASC","DESC"],"title":"SortDirectionENUM","type":"string"},"WebhookResponseSchema":{"properties":{"action":{"$ref":"#/components/schemas/WebhookActionENUM"},"httpTransport":{"$ref":"#/components/schemas/HttpTransportResponseSchema"},"webhookUid":{"$ref":"#/components/schemas/UID"}},"required":["action","webhookUid","httpTransport"],"description":"Webhook Response","title":"WebhookResponseSchema","type":"object"},"WebhookActionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| PRODUCT_CREATE | Create new product |\n| PRODUCT_UPDATE | Update existing product |\n| PRODUCT_DELETE | Product deleted |\n| CUSTOMER_CREATE | Create new customer|\n| CUSTOMER_UPDATE | Update existing customer|\n| CUSTOMER_DELETE | Customer deleted|\n| ORDER_SETTLED | New order. Order status is SETTLED|\n| ORDER_STATE_CHANGE | Order changes state|\n| ORDER_RECEIPT_SETTLED | A receipt is SETTLED |\n| ORDER_DELIVERED | Existing order. Order status DELIVERED|\n| ORDER_LINE_DELIVERED | An order line has been delivered |\n| ORDER_HANDLING_STATE_CHANGED | An order handling state changed (notably when set to NOT_STARTED, IN_PROGRESS, ON_HOLD, or COMPLETE) |\n| TILL_CLOSED | Till has been counted and closed.|\n| TILL_OPEN | Till has been opened.|\n| PRICE_CREATE | Create new price.|\n| PRICE_UPDATE | Update Price.|\n| PRICE_DELETE | Price deleted |\n| STOCK_CHANGE | Stock for a warehouseUid and productUid has changed.|\n| PRODUCT_MEDIA_CHANGE | Product media has changed (create/update/delete).|\n| PURCHASE_RECEIVED | Purchase order fully received |\n| ORDER_LINE_RESERVATION_CHANGE | Order line reservation changed |","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","CUSTOMER_CREATE","CUSTOMER_UPDATE","CUSTOMER_DELETE","ORDER_SETTLED","ORDER_DELIVERED","ORDER_STATE_CHANGE","ORDER_LINE_DELIVERED","TILL_CLOSED","TILL_OPEN","PRICE_CREATE","PRICE_UPDATE","PRICE_DELETE","STOCK_CHANGE","PRODUCT_MEDIA_CHANGE","PURCHASE_RECEIVED","ORDER_HANDLING_STATE_CHANGED","ORDER_RECEIPT_SETTLED","ORDER_LINE_RESERVATION_CHANGE"],"title":"WebhookActionENUM","type":"string"},"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"Paging":{"description":"totalCount The total number of items in the result set.\n\npageSize The number of items per page.\n\npageNumber The current page in the result set.","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["totalCount","pageSize","pageNumber"],"title":"Paging","type":"object"}},"responses":{"WebhookListResponse":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WebhookResponseSchema"},"type":"array"},"paging":{"$ref":"#/components/schemas/Paging"}},"required":["items","paging"],"type":"object"}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/httptransports/{httpTransportUid}/webhooks":{"get":{"description":"List all webhooks for a http transport.\n\nRequired permissions: WEBHOOK","operationId":"get-tenants-httptransports-webhooks","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"}],"responses":{"200":{"$ref":"#/components/responses/WebhookListResponse"}},"summary":"List all webhooks for a httpTransport","tags":["Webhooks"]}}}}
```

## Create new webhook on a httpTransport

> Add webhook on a httpTransport\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"requestBodies":{"WebhookCreateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreateRequestSchema"}}},"description":"Webhook Create Request"}},"schemas":{"WebhookCreateRequestSchema":{"allOf":[{"$ref":"#/components/schemas/WebhookUpdateRequestSchema"},{"properties":{"webhookUid":{"$ref":"#/components/schemas/UID"}}}],"type":"object","title":"WebhookCreateRequestSchema","description":"Webhook Create Request Schema"},"WebhookUpdateRequestSchema":{"description":"Webhook Update Request Schema","title":"WebhookUpdateRequestSchema","type":"object","properties":{"action":{"$ref":"#/components/schemas/WebhookActionENUM"}},"required":["action"]},"WebhookActionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| PRODUCT_CREATE | Create new product |\n| PRODUCT_UPDATE | Update existing product |\n| PRODUCT_DELETE | Product deleted |\n| CUSTOMER_CREATE | Create new customer|\n| CUSTOMER_UPDATE | Update existing customer|\n| CUSTOMER_DELETE | Customer deleted|\n| ORDER_SETTLED | New order. Order status is SETTLED|\n| ORDER_STATE_CHANGE | Order changes state|\n| ORDER_RECEIPT_SETTLED | A receipt is SETTLED |\n| ORDER_DELIVERED | Existing order. Order status DELIVERED|\n| ORDER_LINE_DELIVERED | An order line has been delivered |\n| ORDER_HANDLING_STATE_CHANGED | An order handling state changed (notably when set to NOT_STARTED, IN_PROGRESS, ON_HOLD, or COMPLETE) |\n| TILL_CLOSED | Till has been counted and closed.|\n| TILL_OPEN | Till has been opened.|\n| PRICE_CREATE | Create new price.|\n| PRICE_UPDATE | Update Price.|\n| PRICE_DELETE | Price deleted |\n| STOCK_CHANGE | Stock for a warehouseUid and productUid has changed.|\n| PRODUCT_MEDIA_CHANGE | Product media has changed (create/update/delete).|\n| PURCHASE_RECEIVED | Purchase order fully received |\n| ORDER_LINE_RESERVATION_CHANGE | Order line reservation changed |","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","CUSTOMER_CREATE","CUSTOMER_UPDATE","CUSTOMER_DELETE","ORDER_SETTLED","ORDER_DELIVERED","ORDER_STATE_CHANGE","ORDER_LINE_DELIVERED","TILL_CLOSED","TILL_OPEN","PRICE_CREATE","PRICE_UPDATE","PRICE_DELETE","STOCK_CHANGE","PRODUCT_MEDIA_CHANGE","PURCHASE_RECEIVED","ORDER_HANDLING_STATE_CHANGED","ORDER_RECEIPT_SETTLED","ORDER_LINE_RESERVATION_CHANGE"],"title":"WebhookActionENUM","type":"string"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"WebhookResponseSchema":{"properties":{"action":{"$ref":"#/components/schemas/WebhookActionENUM"},"httpTransport":{"$ref":"#/components/schemas/HttpTransportResponseSchema"},"webhookUid":{"$ref":"#/components/schemas/UID"}},"required":["action","webhookUid","httpTransport"],"description":"Webhook Response","title":"WebhookResponseSchema","type":"object"},"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"}},"responses":{"WebhookResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookResponseSchema"}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/httptransports/{httpTransportUid}/webhooks":{"post":{"description":"Add webhook on a httpTransport\n\nRequired permissions: WEBHOOK","operationId":"post-tenants-httptransports-webhooks","requestBody":{"$ref":"#/components/requestBodies/WebhookCreateRequest"},"responses":{"200":{"$ref":"#/components/responses/WebhookResponse"}},"summary":"Create new webhook on a httpTransport","tags":["Webhooks"]}}}}
```

## Get webhook details

> Get details for a webhook.\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"WebhookResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookResponseSchema"}}},"description":"Example response"}},"schemas":{"WebhookResponseSchema":{"properties":{"action":{"$ref":"#/components/schemas/WebhookActionENUM"},"httpTransport":{"$ref":"#/components/schemas/HttpTransportResponseSchema"},"webhookUid":{"$ref":"#/components/schemas/UID"}},"required":["action","webhookUid","httpTransport"],"description":"Webhook Response","title":"WebhookResponseSchema","type":"object"},"WebhookActionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| PRODUCT_CREATE | Create new product |\n| PRODUCT_UPDATE | Update existing product |\n| PRODUCT_DELETE | Product deleted |\n| CUSTOMER_CREATE | Create new customer|\n| CUSTOMER_UPDATE | Update existing customer|\n| CUSTOMER_DELETE | Customer deleted|\n| ORDER_SETTLED | New order. Order status is SETTLED|\n| ORDER_STATE_CHANGE | Order changes state|\n| ORDER_RECEIPT_SETTLED | A receipt is SETTLED |\n| ORDER_DELIVERED | Existing order. Order status DELIVERED|\n| ORDER_LINE_DELIVERED | An order line has been delivered |\n| ORDER_HANDLING_STATE_CHANGED | An order handling state changed (notably when set to NOT_STARTED, IN_PROGRESS, ON_HOLD, or COMPLETE) |\n| TILL_CLOSED | Till has been counted and closed.|\n| TILL_OPEN | Till has been opened.|\n| PRICE_CREATE | Create new price.|\n| PRICE_UPDATE | Update Price.|\n| PRICE_DELETE | Price deleted |\n| STOCK_CHANGE | Stock for a warehouseUid and productUid has changed.|\n| PRODUCT_MEDIA_CHANGE | Product media has changed (create/update/delete).|\n| PURCHASE_RECEIVED | Purchase order fully received |\n| ORDER_LINE_RESERVATION_CHANGE | Order line reservation changed |","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","CUSTOMER_CREATE","CUSTOMER_UPDATE","CUSTOMER_DELETE","ORDER_SETTLED","ORDER_DELIVERED","ORDER_STATE_CHANGE","ORDER_LINE_DELIVERED","TILL_CLOSED","TILL_OPEN","PRICE_CREATE","PRICE_UPDATE","PRICE_DELETE","STOCK_CHANGE","PRODUCT_MEDIA_CHANGE","PURCHASE_RECEIVED","ORDER_HANDLING_STATE_CHANGED","ORDER_RECEIPT_SETTLED","ORDER_LINE_RESERVATION_CHANGE"],"title":"WebhookActionENUM","type":"string"},"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"}}},"paths":{"/tenants/{tenantUid}/httptransports/{httpTransportUid}/webhooks/{webhookUid}":{"get":{"description":"Get details for a webhook.\n\nRequired permissions: WEBHOOK","operationId":"get-tenants-httptransports-webhooks-details","responses":{"200":{"$ref":"#/components/responses/WebhookResponse"}},"summary":"Get webhook details","tags":["Webhooks"]}}}}
```

## Update tenant webhook

> Update webhook for a tenant\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"requestBodies":{"WebhookUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdateRequestSchema"}}},"description":"Webhook Update Request"}},"schemas":{"WebhookUpdateRequestSchema":{"description":"Webhook Update Request Schema","title":"WebhookUpdateRequestSchema","type":"object","properties":{"action":{"$ref":"#/components/schemas/WebhookActionENUM"}},"required":["action"]},"WebhookActionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| PRODUCT_CREATE | Create new product |\n| PRODUCT_UPDATE | Update existing product |\n| PRODUCT_DELETE | Product deleted |\n| CUSTOMER_CREATE | Create new customer|\n| CUSTOMER_UPDATE | Update existing customer|\n| CUSTOMER_DELETE | Customer deleted|\n| ORDER_SETTLED | New order. Order status is SETTLED|\n| ORDER_STATE_CHANGE | Order changes state|\n| ORDER_RECEIPT_SETTLED | A receipt is SETTLED |\n| ORDER_DELIVERED | Existing order. Order status DELIVERED|\n| ORDER_LINE_DELIVERED | An order line has been delivered |\n| ORDER_HANDLING_STATE_CHANGED | An order handling state changed (notably when set to NOT_STARTED, IN_PROGRESS, ON_HOLD, or COMPLETE) |\n| TILL_CLOSED | Till has been counted and closed.|\n| TILL_OPEN | Till has been opened.|\n| PRICE_CREATE | Create new price.|\n| PRICE_UPDATE | Update Price.|\n| PRICE_DELETE | Price deleted |\n| STOCK_CHANGE | Stock for a warehouseUid and productUid has changed.|\n| PRODUCT_MEDIA_CHANGE | Product media has changed (create/update/delete).|\n| PURCHASE_RECEIVED | Purchase order fully received |\n| ORDER_LINE_RESERVATION_CHANGE | Order line reservation changed |","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","CUSTOMER_CREATE","CUSTOMER_UPDATE","CUSTOMER_DELETE","ORDER_SETTLED","ORDER_DELIVERED","ORDER_STATE_CHANGE","ORDER_LINE_DELIVERED","TILL_CLOSED","TILL_OPEN","PRICE_CREATE","PRICE_UPDATE","PRICE_DELETE","STOCK_CHANGE","PRODUCT_MEDIA_CHANGE","PURCHASE_RECEIVED","ORDER_HANDLING_STATE_CHANGED","ORDER_RECEIPT_SETTLED","ORDER_LINE_RESERVATION_CHANGE"],"title":"WebhookActionENUM","type":"string"},"WebhookResponseSchema":{"properties":{"action":{"$ref":"#/components/schemas/WebhookActionENUM"},"httpTransport":{"$ref":"#/components/schemas/HttpTransportResponseSchema"},"webhookUid":{"$ref":"#/components/schemas/UID"}},"required":["action","webhookUid","httpTransport"],"description":"Webhook Response","title":"WebhookResponseSchema","type":"object"},"HttpTransportResponseSchema":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/TransportHeaderSchema"},"type":"array"},"name":{"type":"string"},"password":{"type":"string"},"securityType":{"enum":["NONE","BASIC_AUTH","BEARER_TOKEN"],"type":"string"},"token":{"type":"string"},"httpTransportUid":{"$ref":"#/components/schemas/UID"},"url":{"type":"string"},"username":{"type":"string"}},"required":["httpTransportUid","name","url","securityType","username","password","token","headers"],"description":"Transport Response Schema","title":"HttpTransportResponseSchema","type":"object"},"TransportHeaderSchema":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"description":"Transport Header Schema","title":"TransportHeaderSchema","type":"object"},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"}},"responses":{"WebhookResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookResponseSchema"}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/httptransports/{httpTransportUid}/webhooks/{webhookUid}":{"put":{"description":"Update webhook for a tenant\n\nRequired permissions: WEBHOOK","operationId":"put-tenants-httptransports-webhooks-details","requestBody":{"$ref":"#/components/requestBodies/WebhookUpdateRequest"},"responses":{"200":{"$ref":"#/components/responses/WebhookResponse"}},"summary":"Update tenant webhook","tags":["Webhooks"]}}}}
```

## Delete a webhook from a tenant

> Deletes a webhook from a tenant.\
> \
> Required permissions: WEBHOOK

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}}},"paths":{"/tenants/{tenantUid}/httptransports/{httpTransportUid}/webhooks/{webhookUid}":{"delete":{"description":"Deletes a webhook from a tenant.\n\nRequired permissions: WEBHOOK","operationId":"delete-tenants-httptransports-webhooks-details","responses":{"204":{"description":"No Content"}},"summary":"Delete a webhook from a tenant","tags":["Webhooks"]}}}}
```

## Postmark Webhook

> Receives webhook callbacks from Postmark for email delivery, bounces, and spam complaints

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Webhooks","description":"Webhooks"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"paths":{"/callbacks/postmark":{"post":{"summary":"Postmark Webhook","tags":["Webhooks"],"responses":{"200":{"description":"Webhook received successfully"}},"operationId":"post-callbacks-postmark","description":"Receives webhook callbacks from Postmark for email delivery, bounces, and spam complaints","requestBody":{"$ref":"#/components/requestBodies/PostmarkWebhookRequest"}}}},"components":{"requestBodies":{"PostmarkWebhookRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostmarkWebhookSchema"}}}}},"schemas":{"PostmarkWebhookSchema":{"title":"PostmarkWebhookSchema","type":"object","description":"Minimal schema for identifying Postmark webhook type","required":["RecordType"],"properties":{"RecordType":{"type":"string","description":"The type of webhook event","enum":["Delivery","Bounce","SpamComplaint","Open","Click","SubscriptionChange"]},"Metadata":{"type":"object","description":"Optional metadata associated with the webhook","additionalProperties":{"type":"string"}},"Details":{"type":"string","description":"Optional details about the webhook event"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://docs.flowretail.com/api/webhooks.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.
