Rapports fiscaux (X / Z / A)

Consultation, clôture journalière et rapports périodiques par NIM

Les rapports agrègent les certifications d'un NIM captées par la plateforme. Trois types, tous scopés par votre clé API sur le NIM de l'URL :

  • X — consultation de la période courante (depuis la dernière clôture Z), sans rien clôturer. Rejouable à volonté.
  • Zclôture journalière : fige la période, attribue un numéro de clôture séquentiel par NIM, et lit un instantané des compteurs de la machine.
  • A — rapport périodique sur une plage de dates (agrégat + liste des clôtures Z).

Cohérence. Une certification est propagée dans l'agrégat de façon asynchrone (~2–3 s après la réponse). Sans impact pour un Z de fin de journée ; si vous lisez un rapport juste après une certification, laissez quelques secondes.

Rapport X — consultation

GET/v1/mcf/{nim}/reports/x

Total de la période ouverte (depuis la dernière clôture Z, ou depuis la première certification si aucun Z). Ne clôture rien. Idéal pour un point de contrôle en journée.

Champs : certs_count, total_ttc/ht/tva, ventilation by_group (par groupe de taxe) et by_type (par type de facture), plage de compteurs fvc_start/fvc_end.

Requête
curl "https://api.mcf.avepay.net/v1/mcf/EL02000015-1/reports/x" \
  -H "Authorization: Bearer $AVEPAY_API_KEY"
Réponse 200
{
  "kind": "X",
  "nim": "EL02000015-1",
  "period_start": "2026-07-02T02:15:00Z",
  "period_end": "2026-07-02T03:20:00Z",
  "certs_count": 2,
  "total_ttc": 1500,
  "total_ht": 1347,
  "total_tva": 153,
  "by_group": [
    { "group": "A", "ht": 500, "tva": 0,   "ttc": 500 },
    { "group": "B", "ht": 847, "tva": 153, "ttc": 1000 }
  ],
  "by_type": [
    { "invoice_type": "FV", "count": 2, "total_ttc": 1500 }
  ],
  "fvc_start": 623,
  "fvc_end": 624
}

Clôture Z — génération

POST/v1/mcf/{nim}/reports/z

Clôture la période ouverte : renvoie un z_number séquentiel (par NIM, non rejouable), la ventilation figée, et un instantané des compteurs de la machine (mcf_counters, lu en direct via le bridge). Le corps de la requête peut être vide ({}).

Conservez le report_id et le z_number de votre côté : ce sont les clés de votre clôture. Après un Z, un GET reports/x repart d'une période vide.

Requête
curl -X POST "https://api.mcf.avepay.net/v1/mcf/EL02000015-1/reports/z" \
  -H "Authorization: Bearer $AVEPAY_API_KEY" \
  -H "Content-Type: application/json" -d '{}'
Réponse 201
{
  "kind": "Z",
  "nim": "EL02000015-1",
  "z_number": 4,
  "report_id": "1c722789-19a9-4258-a248-79503ed9c9f7",
  "created_at": "2026-07-02T03:20:11Z",
  "period_start": "2026-07-02T02:15:00Z",
  "period_end": "2026-07-02T03:20:11Z",
  "certs_count": 2,
  "total_ttc": 1500,
  "total_ht": 1347,
  "total_tva": 153,
  "by_group": [
    { "group": "A", "ht": 500, "tva": 0,   "ttc": 500 },
    { "group": "B", "ht": 847, "tva": 153, "ttc": 1000 }
  ],
  "by_type": [ { "invoice_type": "FV", "count": 2, "total_ttc": 1500 } ],
  "fvc_start": 623,
  "fvc_end": 624,
  "mcf_counters": { "tc": 840, "fvc": 624, "frc": 125 }
}

Rapport A — périodique

GET/v1/mcf/{nim}/reports/a?from={date}&to={date}

Agrège les certifications sur une plage et liste les clôtures Z de cette période. from / to acceptent une date YYYY-MM-DD ou un timestamp RFC 3339. Par défaut : 31 derniers jours.

Requête
curl "https://api.mcf.avepay.net/v1/mcf/EL02000015-1/reports/a?from=2026-07-01&to=2026-07-31" \
  -H "Authorization: Bearer $AVEPAY_API_KEY"
Réponse 200 (extrait)
{
  "kind": "A",
  "nim": "EL02000015-1",
  "certs_count": 42,
  "total_ttc": 152000,
  "by_group": [ /* … */ ],
  "closures": [
    { "z_number": 1, "period_start": "…", "period_end": "…", "total_ttc": 3200, "certs_count": 5 },
    { "z_number": 2, "period_start": "…", "period_end": "…", "total_ttc": 4800, "certs_count": 7 }
  ]
}

Historique des clôtures

GET/v1/mcf/{nim}/reports?from={date}&to={date}

Liste brute des clôtures Z persistées sur la plage — pour réimporter l'historique dans votre système.

Réponse 200
{
  "nim": "EL02000015-1",
  "count": 2,
  "reports": [
    { "id": "…", "kind": "Z", "z_number": 1, "period_start": "…", "period_end": "…",
      "certs_count": 5, "total_ttc": 3200, "mcf_counters_end": { "tc": 810, "fvc": 600, "frc": 120 } }
  ]
}

Multi-tenant. Chaque entité = un NIM = une clé API scopée. Les rapports sont donc naturellement isolés par tenant. La plateforme conserve la copie autoritative de chaque clôture ; stockez la vôtre à réception de la réponse.

© 2026 AvePay — AvePlus. Tous droits réservés.