ERP получает временную URL и загружает xlsx/csv напрямую в защищённое хранилище PROMANTA.
Зачем нужен метод
ERP получает временную URL и загружает xlsx/csv напрямую в защищённое хранилище PROMANTA. Снижает нагрузку на API и подходит для файлов до 50 МБ.
Когда использовать
Сразу после incoming/create, перед import. Один incomingId — один файл.
Эндпоинт
POST /v1/supplier/incoming/upload-url
Аутентификация: API-ключ в заголовке X-Api-Key (префикс bk_sup_). projectId и actor id в body не передаются — берутся из ключа.
Scope: supplier:incoming:write
Пример запроса
{
"meta": { "requestId": "optional-uuid" },
"data": { "incomingId": "f47ac10b-…", "fileName": "Промокоды_Промомед_июль.xlsx", "fileSizeBytes": 245760, "contentType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }
}
Пример ответа
{
"success": true,
"data": {
"incomingId": "f47ac10b-…",
"uploadUrl": "https://supabase.promanta.ru/storage/v1/object/upload/sign/…",
"uploadMethod": "PUT",
"expiresAt": "2026-07-13T10:15:00Z",
"maxFileSizeBytes": 52428800
}
}
Ошибки
UNAUTHORIZED/ACCESS_DENIED— нет доступаVALIDATION_ERROR— некорректное телоNOT_FOUND— сущность не найденаRATE_LIMIT_EXCEEDED(429) — превышен лимит
cURL
curl -X POST "https://api-external.promanta.ru/v1/supplier/incoming/upload-url" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{"data": { "incomingId": "f47ac10b-…", "fileName": "Промокоды_Промомед_июль.xlsx", "fileSizeBytes": 245760, "contentType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }}'