Automatyzacja zamówień
Kompleksowe API do składania i wycofywania ofert na 5 portalach zamówień publicznych. Szyfrowanie, przesyłanie plików i rejestrowanie kroków — wszystko przez jedno REST API. Aktualnie w wersji beta — aby uzyskać dostęp, skontaktuj się z nami.
Obsługiwane portale
/api/v2/procurement/portalsNEN (nen.nipez.cz), E-ZAK (adres URL instancji), TenderArena, Eveza (adres URL instancji), E-zakazky.cz (adres URL instancji). E-ZAK, Eveza i E-zakazky wymagają portalUrl — adresu URL konkretnej instancji.
Składanie oferty
/api/v2/procurement/bidsParametry treści żądania
| Parametr | Typ | Opis |
|---|---|---|
| portal* | string | NEN | EZAK | TENDERARENA | EVEZA | EZAKAZKY |
| tenderId* | string | Identyfikator postępowania na portalu |
| credentialId | string | Identyfikator zapisanych danych uwierzytelniających (lub podaj dane bezpośrednio) |
| credentials | object | {username, password, portalUrl?} — alternatywa dla credentialId |
| files | array | [{name, url, size}] — pliki oferty |
| criteria | array | [{name, value}] — kryteria oceny |
| tenderTitle | string | Tytuł postępowania (do podglądu) |
| dryRun | boolean | true = test bez finalnego złożenia oferty |
curl -X POST https://veritra.io/api/v2/procurement/bids \
-H "X-API-Key: mrw_procurement_..." \
-H "Content-Type: application/json" \
-d '{
"portal": "NEN",
"tenderId": "N006-24-V00012345",
"credentialId": "clx1abc...",
"files": [{"name": "oferta.pdf", "url": "https://..."}],
"criteria": [{"name": "Cena oferty", "value": "1500000"}]
}'{
"jobId": "clx1abc...",
"status": "PENDING",
"message": "Job created — will be processed by cron"
}Status zadania
/api/v2/procurement/bids/:jobId{
"id": "clx1abc...",
"type": "SUBMIT_BID",
"status": "COMPLETED",
"portal": "NEN",
"steps": [
{"step": 1, "action": "login", "status": "ok", "durationMs": 1240},
{"step": 2, "action": "load_tender", "status": "ok", "durationMs": 890},
{"step": 3, "action": "encrypt", "status": "ok", "durationMs": 320},
{"step": 4, "action": "upload_file", "status": "ok", "durationMs": 2100},
{"step": 5, "action": "submit", "status": "ok", "durationMs": 1560}
]
}Lista ofert
/api/v2/procurement/bidsWycofanie oferty
/api/v2/procurement/bids/:jobIdParametry treści żądania
| Parametr | Typ | Opis |
|---|---|---|
| reason | string | Powód wycofania (opcjonalnie) |
Analiza AI
/api/v2/procurement/analyze| Parametr | Typ | Opis |
|---|---|---|
| tenderId* | string | ID przetargu w bazie danych RWX |
Zwraca ustrukturyzowany JSON z ponad 50 polami: tytuł, wartość, kryteria, kwalifikacje, ryzyka, rekomendacje AI, szacowane prawdopodobieństwo wygranej.
Dane logowania do portalu
Zarządzaj danymi logowania do portalu w panelu pod adresem /dashboard/procurement/credentials. Hasła są szyfrowane algorytmem AES-256-GCM i nigdy nie są przechowywane w postaci jawnej.
Koszty kredytów
| Parametr | Typ | Opis |
|---|---|---|
| Złóż ofertę | POST bids | 50 kredytów |
| Wycofaj ofertę | DELETE bids/:id | 20 kredytów |
| Analiza AI | POST analyze | 10 kredytów |
| Odczyt (lista, szczegóły) | GET | 1 kredyt |
| Lista portali | GET portals | 0 kredytów |
Przepływ pracy
Typowy przepływ: 1) Zapisz dane logowania w panelu → 2) Przetestuj logowanie → 3) Znajdź przetarg (GET tenders) → 4) Przeanalizuj dokumentację (POST analyze) → 5) Złóż ofertę (POST bids) → 6) Śledź status (GET bids/:jobId)