Skip to content

Integration API

Integration API — стабильный REST-фасад для ERP, CRM, BI и middleware. Он работает через API keys и не открывает внутренние endpoints интерфейса.

Короткий ответ

Integration API даёт внешним системам безопасный REST-доступ к объектам закупочного процесса: внутренним заявкам, PR, поставщикам, номенклатуре, складам, прайс-листам, счетам и связям с внешними ID.

Базовый URL

text
/api/v1/integration-api

Аутентификация

Передавайте API key одним из способов:

http
X-API-Key: spk_...
Authorization: Bearer spk_...

Ключи с write/delete scopes выполняют действия от имени пользователя, который создал ключ. Ключи без пользователя-создателя могут выполнять только чтение.

Meta

http
GET /api/v1/integration-api/meta

Возвращает доступные ресурсы, операции, события и scopes текущего ключа.

Ресурсы

Поддерживаемые ресурсы v1:

ResourceНазначение
internal-purchase-requestsВнутренние заявки
purchase-requisitionsЗаявки PR
catalog-itemsНоменклатура
counterpartiesКонтрагенты
warehousesСклады
price-listsПрайс-листы
invoicesВходящие счета

Legacy-ключи procurement-requests и procurements принимаются как alias для старых интеграций.

Общие операции:

http
GET    /api/v1/integration-api/:resource
POST   /api/v1/integration-api/:resource
GET    /api/v1/integration-api/:resource/:id
PATCH  /api/v1/integration-api/:resource/:id
DELETE /api/v1/integration-api/:resource/:id
POST   /api/v1/integration-api/:resource/:id/operations/change-status

DELETE в v1 архивирует ресурс, если доменная сущность поддерживает архивирование.

Связи помогают сопоставлять внешний ID с внутренней сущностью SNABZHENETS+.

http
GET /api/v1/integration-api/links?externalSource=erp&externalId=1001&entityType=catalog_item
http
PUT /api/v1/integration-api/links
Content-Type: application/json

{
  "externalSource": "erp",
  "externalId": "1001",
  "entityType": "catalog_item",
  "entityId": "uuid",
  "idempotencyKey": "erp-1001-v4"
}

Пример

http
POST /api/v1/integration-api/catalog-items
Authorization: Bearer spk_...
Content-Type: application/json

{
  "sku": "PUMP-100",
  "name": "Насос циркуляционный",
  "brand": "Grundfos",
  "externalSource": "erp",
  "externalId": "1001",
  "idempotencyKey": "erp-catalog-1001"
}

Scopes

Можно выдать общий scope integration_api.read/write/delete или доменные scopes:

  • internal_purchase_requests.read/write/delete
  • purchase_requisitions.read/write/delete
  • counterparties.read/write/delete
  • suppliers.read/write/delete
  • catalog.read/write/delete
  • warehouses.read/write/delete
  • price_lists.read/write/delete
  • finance.read/write/delete
  • supplier_documents.read/write/delete
  • customer_documents.read/write/delete
  • settings.read/write/delete
  • webhooks.read/write/delete

Для Variable API дополнительно нужен variables.read. Legacy scopes procurement_requests.* и procurements.* принимаются как alias для старых интеграций.

Связанные страницы

Документация платформы SNABZHENETS+.