Skip to content

Factures

Endpoints de gestion des factures.

GET /:opcoId/factures/etats

Liste paginee des etats de toutes les factures du CFA. Tous les filtres sont optionnels.

Auth : X-API-KEY obligatoire.

Parametres de requete

ParametreTypeDescription
anneeFacturestringAnnee de la date de facture (ex: 2024)
numeroInterneDossierstringNumero de dossier interne
numeroExterneDossierstringNumero de dossier externe
referenceFactureCFAstringReference facture du CFA
referenceVirementstringReference du numero de virement OPCO
dateModificationstringDate a partir de laquelle restituer (YYYY-MM-DD)
numeroPagestringNumero de page

Reponse 200

json
{
  "status": "success",
  "total": 42,
  "count": 20,
  "page": 1,
  "factures": [
    {
      "numeroInterneFacture": "FACT-001",
      "referenceFactureCFA": "REF-CFA-001",
      "organismeFormation": {
        "siret": "98765432101234",
        "IBAN": "FR7630006000011234567890189"
      },
      "montantFacture": 5000.00,
      "etatFacture": "REGLE",
      "referenceVirement": "VIR-001",
      "dateReglement": "2024-06-15",
      "commentaire": null,
      "dossiers": [
        {
          "numeroInterneDossier": "INT-001",
          "numeroExterneDossier": "EXT-001",
          "montant": 5000.00
        }
      ]
    }
  ]
}

Etats possibles : TRANSMIS, EN_COURS_REGLEMENT, REGLE, BLOQUE, REFUSE, ANNULE, RELANCE.

Erreurs

Code HTTPCode erreurDescription
403HTTP_ERRORX-API-KEY manquant
501NOT_SUPPORTEDEndpoint non supporte par cet OPCO

Exemple curl

bash
curl -H "X-API-KEY: votre-cle" \
  "https://api.opcovia.com/opco-ep/factures/etats?anneeFacture=2024"

POST /:opcoId/factures

Depot d'une facture. Traitement asynchrone via file d'attente.

Auth : X-API-KEY obligatoire.

Body (JSON)

json
{
  "montantTotal": 5000.00,
  "numero": "FACT-2024-001",
  "dateEmission": "2024-06-01",
  "ibanEmetteur": "FR7630006000011234567890189",
  "siretEmetteur": "98765432101234",
  "estCertificatRealisation": false,
  "lignes": [
    {
      "montant": 5000.00,
      "natureLigne": "PEDAGOGIE",
      "quantite": 1,
      "numeroEcheance": 1,
      "numeroDossier": "INT-001"
    }
  ],
  "_files": { "facture": "base64..." }
}

Champs du body

ChampTypeRequisDescription
montantTotalnumberOuiMontant total TTC
numerostringOuiNumero de facture CFA
dateEmissionstringOuiDate d'emission (YYYY-MM-DD)
ibanEmetteurstringOuiIBAN de l'emetteur
siretEmetteurstringOuiSIRET de l'emetteur
estCertificatRealisationbooleanNonIndique si c'est un certificat
lignesarrayOuiAu moins 1 ligne de facture
_filesobjectNonFichiers joints en base64

Champs d'une ligne de facture

ChampTypeRequisDescription
montantnumberOuiMontant de la ligne
natureLigneenumOuiNature (PEDAGOGIE, MOBILITE, HEBERGEMENT, RESTAURATION, PREMIEREQUIPEMENT, MAJORATION_RQTH)
quantitenumberNonQuantite
numeroEcheancenumberNonNumero d'echeance
codificationEcheancenumberNonCodification de l'echeance
numeroDecastringNonNumero DECA
numeroDossierstringOuiNumero interne du dossier

Reponse 202

json
{
  "jobId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "pending",
  "statusUrl": "/opco-ep/jobs/550e8400-e29b-41d4-a716-446655440000"
}

Headers optionnels

HeaderDescription
Idempotency-KeyCle d'idempotence. Si deja vue, retourne 200 + duplicate.

Suivez le job via GET /:opcoId/jobs/:jobId.

Exemple curl

bash
curl -X POST -H "X-API-KEY: votre-cle" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: facture-2024-001" \
  -d '{"montantTotal": 5000, "numero": "FACT-001", ...}' \
  "https://api.opcovia.com/opco-ep/factures"