Gestion des marchés
API de bout en bout pour soumettre et télécharger des offres sur 5 portails d'appels d'offres publics. Chiffrement, téléversement de fichiers et journalisation étape par étape — le tout via une API REST unifiée. Actuellement en phase de test bêta — pour y accéder, contactez-nous.
Portails pris en charge
/api/v2/procurement/portalsNEN (nen.nipez.cz), E-ZAK (URL d'instance), TenderArena, Eveza (URL d'instance), E-zakazky.cz (URL d'instance). Les portails E-ZAK, Eveza et E-zakazky requièrent portalUrl — l'URL de l'instance spécifique.
Soumettre une offre
/api/v2/procurement/bidsParamètres body
| Paramètre | Type | Description |
|---|---|---|
| portal* | string | NEN | EZAK | TENDERARENA | EVEZA | EZAKAZKY |
| tenderId* | string | ID du marché sur le portail |
| credentialId | string | ID de l'accès enregistré (ou credentials) |
| credentials | object | Objet avec les champs username, password et (optionnellement) portalUrl — alternative à credentialId |
| files | array | Tableau d'objets (name, url, size) — fichiers de l'offre |
| criteria | array | Tableau d'objets (name, value) — critères d'évaluation |
| tenderTitle | string | Nom du marché (pour la vue d'ensemble) |
| dryRun | boolean | true = test sans envoi final |
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": "offre.pdf", "url": "https://..."}],
"criteria": [{"name": "Prix de l'offre", "value": "1500000"}]
}'{
"jobId": "clx1abc...",
"status": "PENDING",
"message": "Job created — will be processed by cron"
}Statut du job
/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}
]
}Liste des offres
/api/v2/procurement/bidsTélécharger une offre
/api/v2/procurement/bids/:jobIdParamètres body
| Paramètre | Type | Description |
|---|---|---|
| reason | string | Motif du retrait (facultatif) |
Analyse IA
/api/v2/procurement/analyze| Paramètre | Type | Description |
|---|---|---|
| tenderId* | string | ID du marché dans la base de données RWX |
Retourne un JSON structuré avec plus de 50 champs : intitulé, valeur, critères, qualifications, risques, recommandations IA, estimation des chances de succès.
Accès aux portails
Vous gérez les accès aux portails dans le tableau de bord sur /dashboard/procurement/credentials. Les mots de passe sont chiffrés en AES-256-GCM et ne sont jamais stockés en texte clair.
Coûts en crédits
| Paramètre | Type | Description |
|---|---|---|
| Soumission d'une offre | POST bids | 50 crédits |
| Retrait d'une offre | DELETE bids/:id | 20 crédits |
| Analyse IA | POST analyze | 10 crédits |
| Lecture (liste, détail) | GET | 1 crédit |
| Liste des portails | GET portals | 0 crédit |
Workflow
Procédure type : 1) Enregistrer les identifiants dans le tableau de bord → 2) Tester la connexion → 3) Rechercher un marché (GET tenders) → 4) Analyser la documentation (POST analyze) → 5) Soumettre une offre (POST bids) → 6) Suivre l'état (GET bids/:jobId)