# 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 has changed |\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 has changed |\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 has changed |\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 has changed |\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 has changed |\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"}}}}}}
```
