API REST & Intégrations
Intégrez AVIA ERP via l'API REST du portail, les endpoints publics et la synchronisation avec le site marketing.
Architecture
L'API métier est exposée par avcore sur le portail portal.aviaerp.com. Le site marketing aviaerp.com proxie les routes publiques /api/v1/public/* vers le portail pour éviter les problèmes CORS côté navigateur.
Portail ERP (API principale) : https://portal.aviaerp.com/api/v1/
Landing (proxy public) : https://aviaerp.com/api/v1/public/
Landing (routes internes) : https://aviaerp.com/api/erp-sync
https://aviaerp.com/api/stripe/webhookAuthentification
Les appels authentifiés utilisent un JWT obtenu via POST /api/v1/auth/login (e-mail + mot de passe ou SSO selon tenant). Incluez le token dans l'en-tête :
Authorization: Bearer <access_token>
X-Tenant: erppro
Content-Type: application/jsonLes intégrations serveur-à-serveur (sync landing, clés internes SaaS) utilisent X-API-Key avec la clé partagée SAAS_INTERNAL_API_KEY / LANDING_SYNC_API_KEY configurée des deux côtés.
Endpoints publics
Exemples d'endpoints accessibles sans session utilisateur (selon déploiement) :
| Route | Usage |
|---|---|
GET /api/v1/public/plans | Plans tarifaires affichés sur /tarifs |
POST /api/contact | Formulaire contact (landing Next.js) |
POST /api/demo | Demande de démonstration |
Synchronisation ERP → landing
Le portail pousse périodiquement tenant, plans et métadonnées vers POST /api/erp-sync sur le landing. Configurez l'URL dans Paramètres → Accès portail :
URL sync (prod) : https://aviaerp.com/api/erp-sync
URL sync (local) : http://localhost:3030/api/erp-sync
Health check : GET .../api/erp-sync/healthLa clé LANDING_SYNC_API_KEY doit être identique sur le portail et dans .env.production du landing.
Webhooks
Stripe — configurez le webhook vers https://aviaerp.com/api/stripe/webhook pour les événements checkout et abonnements.
Événements métier — les webhooks temps réel (création OF, changement statut) peuvent être branchés via les connecteurs avcore selon votre contrat d'intégration.