Vergabeautomatisierung
End-to-End-API für Abgabe und Rückzug von Angeboten auf 5 Vergabeportalen. Verschlüsselung, Datei-Upload und Schritt-für-Schritt-Logging — alles über eine einheitliche REST-API. Aktuell im Beta-Test — für Zugang bitte kontaktieren Sie uns.
Unterstützte Portale
/api/v2/procurement/portalsNEN (nen.nipez.cz), E-ZAK (Instanz-URL), TenderArena, Eveza (Instanz-URL), E-zakazky.cz (Instanz-URL). E-ZAK, Eveza und E-zakazky benötigen portalUrl — die URL der konkreten Instanz.
Angebot abgeben
/api/v2/procurement/bidsBody-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| portal* | string | NEN | EZAK | TENDERARENA | EVEZA | EZAKAZKY |
| tenderId* | string | Auftrags-ID auf dem Portal |
| credentialId | string | Gespeicherte Credential-ID (oder credentials) |
| credentials | object | {username, password, portalUrl?} — Alternative zu credentialId |
| files | array | [{name, url, size}] — Angebotsdateien |
| criteria | array | [{name, value}] — Bewertungskriterien |
| tenderTitle | string | Auftragstitel (für die Übersicht) |
| dryRun | boolean | true = Test ohne finale Abgabe |
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": "angebot.pdf", "url": "https://..."}],
"criteria": [{"name": "Angebotspreis", "value": "1500000"}]
}'{
"jobId": "clx1abc...",
"status": "PENDING",
"message": "Job created — will be processed by cron"
}Job-Status
/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}
]
}Angebotsliste
/api/v2/procurement/bidsAngebot zurückziehen
/api/v2/procurement/bids/:jobIdBody-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| reason | string | Grund für den Rückzug (optional) |
KI-Analyse
/api/v2/procurement/analyze| Parameter | Typ | Beschreibung |
|---|---|---|
| tenderId* | string | Auftrags-ID in der RWX-Datenbank |
Liefert strukturiertes JSON mit über 50 Feldern: Titel, Wert, Kriterien, Qualifikationen, Risiken, KI-Empfehlungen, Schätzung der Gewinnchance.
Portal-Zugänge
Portal-Zugänge verwalten Sie im Dashboard unter /dashboard/procurement/credentials. Passwörter werden mit AES-256-GCM verschlüsselt und nie im Klartext gespeichert.
Credit-Kosten
| Parameter | Typ | Beschreibung |
|---|---|---|
| Angebot abgeben | POST bids | 50 Credits |
| Angebot zurückziehen | DELETE bids/:id | 20 Credits |
| KI-Analyse | POST analyze | 10 Credits |
| Lesen (Liste, Detail) | GET | 1 Credit |
| Portale auflisten | GET portals | 0 Credits |
Workflow
Typischer Ablauf: 1) Credentials im Dashboard speichern → 2) Login testen → 3) Auftrag finden (GET tenders) → 4) Dokumentation analysieren (POST analyze) → 5) Angebot abgeben (POST bids) → 6) Status verfolgen (GET bids/:jobId)