Browser multipart upload to storage; status becomes file_uploaded.
Why this method exists
Browser multipart upload to storage; status becomes file_uploaded.
When to use
Used by web app drag-and-drop in incoming drawer.
Endpoint
POST /v1/internal/promo-code-incoming/upload
Authentication: JWT via Authorization: Bearer <token>. User must have project access and inventory_promo_codes permission.
Permission: inventory_promo_codes.import
Request example
(multipart/form-data: file, projectId, incomingId)
Response example
{
"success": true,
"data": {
"incomingId": "f47ac10b-…",
"status": "file_uploaded",
"fileName": "Промокоды_июль.xlsx",
"fileSizeBytes": 245760,
"fileHash": "sha256:…"
}
}
Errors
UNAUTHORIZED/ACCESS_DENIED— access deniedVALIDATION_ERROR— invalid bodyNOT_FOUND— resource not foundRATE_LIMIT_EXCEEDED(429) — rate limit
cURL
curl -X POST "https://api-external.promanta.ru/v1/internal/promo-code-incoming/upload" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT" \
-d '(see multipart fields)'