Skip to content

API Opcovia -- Vue d'ensemble

Opcovia est un proxy intelligent entre les logiciels CFA et les APIs OPCO (API Convergence). Il normalise les requetes/reponses, gere le cache, le rate limiting et le suivi asynchrone des jobs.

Base URL

https://api.opcovia.com

Authentification

Toutes les routes (sauf /health et /doc) requierent le header :

HeaderDescription
X-API-KEYCle API attribuee au CFA par l'OPCO. Identifie le tenant.

Le Bearer token OAuth2 (authentification editeur aupres de l'OPCO) est gere automatiquement cote serveur via le Token Manager. Le CFA n'a pas a le fournir.

Headers communs

HeaderDirectionDescription
X-API-KEYRequestObligatoire. Cle API du CFA.
X-Request-IDRequest/ResponseOptionnel en request (UUID genere sinon). Retourne dans la reponse.
Idempotency-KeyRequestOptionnel sur les POST. Evite les doublons (retourne 200 + duplicate).
Content-TypeRequestapplication/json pour tous les POST.

Format de reponse

Succes (GET synchrones)

json
{
  "status": "success",
  "comment": null,
  ...donnees
}

Succes (POST asynchrones -- 202)

json
{
  "jobId": "uuid",
  "status": "pending",
  "statusUrl": "/{opcoId}/jobs/{jobId}"
}

Erreur

json
{
  "status": "error",
  "code": "VALIDATION_ERROR",
  "description": "Message d'erreur lisible",
  "errors": ["champ1: message", "champ2: message"]
}

Voir errors.md pour la liste complete des codes.

Pagination

Les endpoints listes (/dossiers/etats, /factures/etats) retournent :

json
{
  "total": 150,
  "count": 50,
  "page": 1,
  ...donnees
}

Le parametre numeroPage controle la page courante.

Table des endpoints

Routes OPCO (prefixees par /:opcoId)

MethodePathDescriptionMode
GET/:opcoId/dossiersLecture d'un dossierSynchrone
GET/:opcoId/dossiers/etatsListe des etats de dossiersSynchrone
GET/:opcoId/dossiers/listeRecuperation batch (max 50)Synchrone
POST/:opcoId/dossiersTransmission d'un contratAsynchrone (202)
GET/:opcoId/factures/etatsListe des etats de facturesSynchrone
POST/:opcoId/facturesDepot d'une factureAsynchrone (202)
POST/:opcoId/conventionsDepot d'une conventionAsynchrone (202)
POST/:opcoId/certificatsDepot d'un certificatAsynchrone (202)
POST/:opcoId/documentsDepot d'un documentAsynchrone (202)
GET/:opcoId/jobs/:jobIdSuivi d'un job asynchroneSynchrone
GET/:opcoId/cfakeyinfoValidite de la cle APISynchrone
GET/:opcoId/statusStatut de l'API OPCOSynchrone

Routes globales

MethodePathDescriptionMode
GET/healthHealth check (sans auth)Synchrone
GET/docDocumentation OpenAPI JSON (sans auth)Synchrone
POST/webhooksEnregistrer un webhookSynchrone
GET/webhooksLister ses webhooksSynchrone
PATCH/webhooks/:idModifier un webhookSynchrone
DELETE/webhooks/:idSupprimer un webhookSynchrone
GET/webhooks/:id/logsHistorique des deliveriesSynchrone
POST/sync/dossiersLancer un bulk syncAsynchrone (202)
GET/sync/:syncIdStatut d'un bulk syncSynchrone
DELETE/sync/:syncIdAnnuler un bulk syncSynchrone
POST/poller/registerEnregistrer un pollerSynchrone
GET/pollerLister ses pollersSynchrone
DELETE/poller/:opcoIdDesactiver un pollerSynchrone