REST versionnée
Toutes les routes sont publiées sous /api/v1. Les évolutions restent rétrocompatibles ; une rupture passerait par une nouvelle version.
Les plateformes de voyage, comme MODJA, et les partenaires techniques accèdent à l’inventaire des compagnies par une API REST documentée, avec des droits accordés compagnie par compagnie.
Toutes les routes sont publiées sous /api/v1. Les évolutions restent rétrocompatibles ; une rupture passerait par une nouvelle version.
Description complète des requêtes, réponses, statuts et erreurs, avec console interactive pour vos développeurs.
Chaque partenaire dispose de sa propre identité, authentifiée par OAuth 2.0 (identifiants client), distincte de tout compte humain.
Chaque compagnie accorde à chaque partenaire des droits précis ; une requête ne peut jamais atteindre les données d’une compagnie non autorisée.
Identifiants de test séparés de la production, avec billets et paiements simulés clairement signalés.
Chaque requête reçoit un identifiant de corrélation renvoyé dans les réponses et les erreurs, pour un support efficace.
Exposées seulement si la compagnie les autorise et si son système les prend en charge.
| Opération | Point d’accès | Droit requis |
|---|---|---|
| Obtenir un jeton | POST /partner/oauth/token | — |
| Compagnies, capacités et droits | GET /partner/airlines | — |
| Rechercher des vols (aller simple ou aller-retour) | POST /partner/flights/search | flights:search |
| Revalider une offre / combiner aller et retour | POST /partner/offers/{id}/revalidate, /partner/offers/combine | offers:read |
| Créer une réservation | POST /partner/bookings | bookings:create |
| Consulter une réservation | GET /partner/bookings/{ref} | bookings:read |
| Confirmer après paiement | POST /partner/bookings/{ref}/confirm | bookings:confirm |
| Émettre les billets | POST /partner/bookings/{ref}/ticket | tickets:issue |
| Consulter un billet, reçu-itinéraire PDF | GET /partner/tickets/{n}, /partner/bookings/{ref}/documents/itinerary.pdf | tickets:read |
| Changer de vol | POST /partner/bookings/{ref}/exchange/quote, /exchange | tickets:issue |
| Plan de cabine et choix des sièges | GET / PUT /partner/bookings/{ref}/seats | bookings:read / bookings:create |
| Enregistrement en ligne, carte d’embarquement | POST /partner/bookings/{ref}/checkin | checkin:perform |
| Annuler ou demander l’annulation | POST /partner/bookings/{ref}/cancel | tickets:cancel |
| S’abonner aux événements (webhooks) | POST /partner/webhooks, /partner/webhooks/{id}/test | — |
Ce qui garantit une intégration sans doublon ni erreur de caisse.
Idempotency-Key sur les créations : une requête rejouée renvoie la même réponse, sans nouvelle réservation.Abonnez une adresse de votre plateforme aux événements de vos réservations : plus besoin d’interroger l’API en boucle.
| Événement | Déclenché quand |
|---|---|
booking.held, booking.confirmed | Sièges retenus, paiement confirmé |
booking.expired, booking.cancelled | Délai de paiement dépassé, réservation annulée |
ticket.issued, ticket.reissued, ticket.issuance_failed | Billets émis, réémis après échange, émission en échec |
flight.delayed, flight.cancelled | Retard ou annulation d’un vol de la réservation |
checkin.completed | Passager enregistré |
refund.decided, cancellation.decided, payment.failed | Décisions de la compagnie, paiement non abouti |
X-CConnect-Signature (HMAC-SHA256 du corps et d’un horodatage) à vérifier avec votre secret.POST /api/v1/partner/flights/search
Authorization: Bearer <jeton>
{ "origin": "FIH", "destination": "FBM",
"departureDate": "2026-11-20", "returnDate": "2026-11-24",
"passengers": { "ADT": 2, "CHD": 0, "INF": 0 } }
POST /api/v1/partner/bookings
Idempotency-Key: 6f1c-…-a91e
{ "offerId": "<offre combinée>",
"passengers": [ … ], "contact": { … } }Après échange avec notre équipe, la plateforme crée votre identité de partenaire et vous transmet un identifiant et un secret de test. Le secret n’est affiché qu’une fois et n’est conservé que sous forme protégée.
Dans l’intégration MODJA, la plateforme partenaire encaisse le voyageur et confirme la réservation avec sa référence de paiement ; le règlement avec la compagnie est suivi séparément.
Non. Chaque compagnie déclare ses capacités réelles ; l’API indique pour chacune ce qui est disponible et refuse les opérations non prises en charge.
Oui. Abonnez-vous aux événements de vos réservations par webhooks (voir ci-dessus) : chaque envoi est signé et renvoyé automatiquement en cas d’échec.
Nous vous ouvrons un accès de test et accompagnons votre intégration.