Aller au contenu principal

Exports de données

Base URL : /api/v1/admin/org

Exports de masse au format CSV ou XLSX. Chaque endpoint renvoie un fichier téléchargeable (pas de JSON), avec un en-tête Content-Disposition: attachment.

AspectDétail
Format par défautCSV (text/csv; charset=utf-8)
Format alternatifXLSX via ?format=xlsx
Limite10 000 lignes maximum par export
GET /api/v1/admin/org/cards/export?format=xlsx
Authorization: Bearer ...

GET /admin/org/cardholders/export​

Export des porteurs.

Permissions : cardholder.export, cardholder.manage ou export.manage

ParamDescription
searchRecherche (code, nom, prénom)
statusStatut
holder_typeType de porteur
is_activeActif/inactif

Colonnes : code, first_name, last_name, establishment, holder_type, email, phone


GET /admin/org/cards/export​

Export des cartes.

Permissions : card.export, card.manage ou export.manage

ParamDescription
searchRecherche (code, numéro, porteur)
statusactive, unassigned, deactivated, lost

Colonnes : code, card_number, status, balance_cents, daily_limit_cents, activated_at, titulaire, telephone, email


GET /admin/org/products/export​

Export des produits.

Permissions : product.export, product.manage ou export.manage

ParamDescription
searchRecherche (nom, code)
category_idCatégorie
is_activeActif/inactif

Colonnes : code, name, meal_type, price_cents, stock_quantity, is_active, reservation_deadline_days_before, reservation_deadline_time


GET /admin/org/transactions/export​

Export des transactions.

Permissions : transaction.export, transaction.manage ou export.manage

ParamDescription
date_from / date_toPlage de dates
typeType de transaction
site_idSite
searchRecherche (code carte, porteur)

Colonnes : date_heure, type, code_carte, titulaire, operateur, articles, montant_cents, solde_avant_cents, solde_apres_cents

Colonne articles

Pour les ventes (debit_purchase), la colonne articles agrège les lignes sous la forme "{nom} *{qté} @ {prix} = {total}", jointes par " | ".


GET /admin/org/reservations/export​

Export des réservations (une ligne par réservation).

Permissions : reservation.export ou reservation.manage

ParamDescription
dateJour précis (prime sur la plage)
date_from / date_toPlage (défaut : 30 derniers jours)
site_idSite
statusStatut

Colonnes : id, for_date, status, total_price_cents, created_at, holder_first_name, holder_last_name, holder_code, holder_type, card_code, card_number, articles, site_name, menu_name, performed_by_name, notes, refund_reason, group_id


GET /admin/org/stock/export​

Export des mouvements de stock.

Permissions : stock.export, stock.manage ou export.manage

ParamDescription
date_from / date_toPlage
product_idProduit
movement_typeType de mouvement

Colonnes : id, product_id, movement_type, delta, reason, performed_by, created_at


GET /admin/org/roles/export​

Export de la matrice rôles × permissions.

Permissions : role.export, role.manage ou export.manage

Structure : les permissions sont en lignes, les rôles en colonnes. Chaque cellule contient "Oui" (ou vide).

Role1Role2
card.readOuiOui
card.createOui
remarque

Portée tenant : inclut les rôles globaux (organization_id IS NULL) et ceux de l'organisation. Les rôles de même nom sont dédupliqués. Feuille XLSX : Rôles & Permissions.


GET /admin/org/anomalies/export​

Export des anomalies.

Permissions : anomaly.export, anomaly.manage ou export.manage

Colonnes : id, kind, message, severity, detected_at


GET /admin/org/audit-logs/export​

Export du journal d'audit.

Permissions : log.export, log.manage ou export.manage

ParamDescription
date_from / date_toPlage
Portée

Portée tenant : si les claims portent un organization_id, l'export est filtré sur cette organisation ; sinon, l'export couvre toutes les organisations.

Colonnes : id, organization_id, action, target_type, target_id, actor_id, occurred_at


Permissions​

PermissionDescription
*.exportExport spécifique au domaine (ex: card.export)
*.manageSuper-permission du domaine
export.manageSuper-permission couvrant tous les exports