{
  "openapi": "3.0.1",
  "info": {
    "title": "Документация по SelSup API",
    "description": "API SelSup — программный интерфейс для работы с сервисом SelSup. Даёт возможность работать со всеми функциями SelSup из вашей системы. Для использования API добавьте новый токен на странице:https://selsup.ru/application/integration/api. Добавленный токен необходимо передавать во всех запросах к API SelSup, в заголовке Authorization.",
    "contact": {
      "name": "Support Team",
      "email": "admin@selsup.ru"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "https://selsup.ru/dogovor-offerta/"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.selsup.ru/",
      "description": "Production server"
    }
  ],
  "tags": [
    {
      "name": "Вебхуки",
      "description": "Подписка на получение уведомлений от SelSup на различные события в сервисе. Вы создаете подписку на события и при возникновении события отправляется запрос на ваш сервис по HTTP с телом изменившейся сущности, чтобы вы могли сразу обработать запрос"
    }
  ],
  "paths": {
    "/api/webhook/": {
      "get": {
        "tags": [
          "Вебхуки"
        ],
        "summary": "Список Webhookок",
        "description": "Возвращает список всех вебхуков, которые созданы в аккаунте клиента",
        "operationId": "list",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/hal+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Webhook"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Вебхуки"
        ],
        "summary": "Создать Webhook",
        "description": "Создает новую подписку на события. В настоящий момент можно получать следующие события: CREATE_ORDER, ORDER, ORDER_STATUS, CREATE_PRODUCT,которые передаются в параметре types: [\"CREATE_ORDER\"]",
        "operationId": "create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Webhook"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/hal+json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            }
          }
        }
      }
    },
    "/api/webhook/{webhookId}": {
      "delete": {
        "tags": [
          "Вебхуки"
        ],
        "summary": "Удалить Webhook",
        "description": "Позволяет удалить подписку на события, чтобы отменить получение уведомлений",
        "operationId": "delete",
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Webhook": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Идентификатор вебхука, отдается после создания",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Название вебхука"
          },
          "url": {
            "type": "string",
            "description": "Адрес сайта, куда будет отправляться запрос"
          },
          "clientId": {
            "type": "integer",
            "format": "int64"
          },
          "organizationId": {
            "type": "integer",
            "description": "Организация для которой создается webhook",
            "format": "int64"
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "name": "Authorization",
        "in": "header"
      }
    }
  }
}