Integration API
Integration API — стабильный REST-фасад для ERP, CRM, BI и middleware. Он работает через API keys и не открывает внутренние endpoints интерфейса.
Короткий ответ
Integration API даёт внешним системам безопасный REST-доступ к объектам закупочного процесса: внутренним заявкам, PR, поставщикам, номенклатуре, складам, прайс-листам, счетам и связям с внешними ID.
Базовый URL
/api/v1/integration-apiАутентификация
Передавайте API key одним из способов:
X-API-Key: spk_...
Authorization: Bearer spk_...Ключи с write/delete scopes выполняют действия от имени пользователя, который создал ключ. Ключи без пользователя-создателя могут выполнять только чтение.
Meta
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 для старых интеграций.
Общие операции:
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-statusDELETE в v1 архивирует ресурс, если доменная сущность поддерживает архивирование.
External Links
Связи помогают сопоставлять внешний ID с внутренней сущностью SNABZHENETS+.
GET /api/v1/integration-api/links?externalSource=erp&externalId=1001&entityType=catalog_itemPUT /api/v1/integration-api/links
Content-Type: application/json
{
"externalSource": "erp",
"externalId": "1001",
"entityType": "catalog_item",
"entityId": "uuid",
"idempotencyKey": "erp-1001-v4"
}Пример
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/deletepurchase_requisitions.read/write/deletecounterparties.read/write/deletesuppliers.read/write/deletecatalog.read/write/deletewarehouses.read/write/deleteprice_lists.read/write/deletefinance.read/write/deletesupplier_documents.read/write/deletecustomer_documents.read/write/deletesettings.read/write/deletewebhooks.read/write/delete
Для Variable API дополнительно нужен variables.read. Legacy scopes procurement_requests.* и procurements.* принимаются как alias для старых интеграций.