Skip to content

Создание вебхука

POST /v1/webhooks

Регистрация URL вебхука для получения POST-запросов при возникновении событий извлечения. Каждый пользователь может иметь до 10 активных вебхуков.

Попробуйте

Протестируйте этот эндпоинт интерактивно в Swagger UI.

Требуется авторизация

Укажите ваш API-ключ в заголовке Authorization.

Запрос

Заголовки

ЗаголовокЗначениеОбязательно
AuthorizationBearer <token>Да
Content-Typeapplication/jsonДа

Тело запроса

ПолеТипОбязательноОписание
urlstringДаHTTPS-эндпоинт, который будет получать POST-запросы вебхука.
eventsstring[]ДаСобытия для подписки. Требуется хотя бы одно. Значения: "extraction.completed", "extraction.failed".

Примеры кода

bash
curl -X POST https://api.docmap.io/v1/webhooks \
  -H "Authorization: Bearer dm_live_abc123def456ghi789jkl012mno345" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.com/webhooks/docmap",
    "events": ["extraction.completed", "extraction.failed"]
  }'
typescript
const apiKey = process.env.DOCMAP_API_KEY

const response = await fetch('https://api.docmap.io/v1/webhooks', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://your-app.com/webhooks/docmap',
    events: ['extraction.completed', 'extraction.failed'],
  }),
})

const { data } = await response.json()

// IMPORTANT: Store the signing secret immediately — it cannot be retrieved later
console.log('Signing Secret:', data.secret)
console.log('Webhook ID:', data.webhook.id)
python
import requests

api_key = "dm_live_abc123def456ghi789jkl012mno345"

response = requests.post(
    "https://api.docmap.io/v1/webhooks",
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    json={
        "url": "https://your-app.com/webhooks/docmap",
        "events": ["extraction.completed", "extraction.failed"],
    },
)

data = response.json()["data"]

# IMPORTANT: Store the signing secret immediately — it cannot be retrieved later
print(f"Signing Secret: {data['secret']}")
print(f"Webhook ID: {data['webhook']['id']}")

Ответ

Статус: 200 OK

Тело ответа обернуто в объект data.

WARNING

Секрет подписи возвращается только в этом ответе. Сохраните его в безопасном месте немедленно -- позже его нельзя будет получить. Он необходим для проверки подписей вебхуков.

Поля

ПолеТипОписание
secretstringСекрет подписи HMAC-SHA256 (64 шестнадцатеричных символа). Показывается только один раз.
webhookobjectОбъект метаданных вебхука (см. ниже).

Объект webhook:

ПолеТипОписание
idstringУникальный идентификатор вебхука.
userIdstringID пользователя, которому принадлежит вебхук.
urlstringЗарегистрированный URL эндпоинта.
eventsstring[]События, на которые подписан вебхук.
activebooleanАктивен ли вебхук. Для вновь созданного вебхука всегда true.
createdAtstringВременная метка ISO 8601 создания вебхука.

Пример

json
{
  "data": {
    "secret": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
    "webhook": {
      "id": "webhook-abc123def456",
      "userId": "uid_a1b2c3d4e5f6",
      "url": "https://your-app.com/webhooks/docmap",
      "events": ["extraction.completed", "extraction.failed"],
      "active": true,
      "createdAt": "2025-01-15T10:00:00.000Z"
    }
  }
}

Ошибки

СтатусКодОписание
400MAX_WEBHOOKS_REACHEDВы достигли максимума в 10 активных вебхуков. Удалите существующий вебхук перед созданием нового.
401UNAUTHORIZEDОтсутствующий, недействительный или просроченный API-ключ / токен.

Документация DocMap API