Une infrastructure pensée pour la distribution aérienne
Plateforme B2BAPI de distributionConçue pour l'Afrique

Une API de distribution pour vos plateformes

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.

Principes

REST versionnée

Toutes les routes sont publiées sous /api/v1. Les évolutions restent rétrocompatibles ; une rupture passerait par une nouvelle version.

Spécification OpenAPI

Description complète des requêtes, réponses, statuts et erreurs, avec console interactive pour vos développeurs.

Identité machine

Chaque partenaire dispose de sa propre identité, authentifiée par OAuth 2.0 (identifiants client), distincte de tout compte humain.

Droits par compagnie

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.

Bac à sable

Identifiants de test séparés de la production, avec billets et paiements simulés clairement signalés.

Traçabilité

Chaque requête reçoit un identifiant de corrélation renvoyé dans les réponses et les erreurs, pour un support efficace.

Opérations disponibles

Exposées seulement si la compagnie les autorise et si son système les prend en charge.

OpérationPoint d’accèsDroit requis
Obtenir un jetonPOST /partner/oauth/token—
Compagnies, capacités et droitsGET /partner/airlines—
Rechercher des vols (aller simple ou aller-retour)POST /partner/flights/searchflights:search
Revalider une offre / combiner aller et retourPOST /partner/offers/{id}/revalidate, /partner/offers/combineoffers:read
Créer une réservationPOST /partner/bookingsbookings:create
Consulter une réservationGET /partner/bookings/{ref}bookings:read
Confirmer après paiementPOST /partner/bookings/{ref}/confirmbookings:confirm
Émettre les billetsPOST /partner/bookings/{ref}/tickettickets:issue
Consulter un billet, reçu-itinéraire PDFGET /partner/tickets/{n}, /partner/bookings/{ref}/documents/itinerary.pdftickets:read
Changer de volPOST /partner/bookings/{ref}/exchange/quote, /exchangetickets:issue
Plan de cabine et choix des siègesGET / PUT /partner/bookings/{ref}/seatsbookings:read / bookings:create
Enregistrement en ligne, carte d’embarquementPOST /partner/bookings/{ref}/checkincheckin:perform
Annuler ou demander l’annulationPOST /partner/bookings/{ref}/canceltickets:cancel
S’abonner aux événements (webhooks)POST /partner/webhooks, /partner/webhooks/{id}/test—

Règles d’intégration

Ce qui garantit une intégration sans doublon ni erreur de caisse.

  • ✓Envoyez un en-tête Idempotency-Key sur les créations : une requête rejouée renvoie la même réponse, sans nouvelle réservation.
  • ✓Après un délai dépassé, interrogez l’état de la réservation au lieu de renvoyer l’opération.
  • ✓Une référence de réservation ne vaut pas billet : vérifiez le statut de billetterie et chaque billet.
  • ✓Les montants sont des chaînes décimales (« 125.50 ») et les dates sont en temps universel.
  • ✓Si le prix a changé, l’API renvoie la nouvelle offre : présentez-la au voyageur avant de poursuivre.
  • ✓Limite de 120 requêtes par minute et par partenaire ; au-delà, l’API répond 429.

Webhooks : soyez prévenus en temps réel

Abonnez une adresse de votre plateforme aux événements de vos réservations : plus besoin d’interroger l’API en boucle.

ÉvénementDéclenché quand
booking.held, booking.confirmedSièges retenus, paiement confirmé
booking.expired, booking.cancelledDélai de paiement dépassé, réservation annulée
ticket.issued, ticket.reissued, ticket.issuance_failedBillets émis, réémis après échange, émission en échec
flight.delayed, flight.cancelledRetard ou annulation d’un vol de la réservation
checkin.completedPassager enregistré
refund.decided, cancellation.decided, payment.failedDécisions de la compagnie, paiement non abouti
  • ✓Gestion en libre-service par l’API : jusqu’à 5 adresses, choix des événements, événement de test, rotation du secret.
  • ✓Chaque envoi porte un en-tête X-CConnect-Signature (HMAC-SHA256 du corps et d’un horodatage) à vérifier avec votre secret.
  • ✓Événements enregistrés dans la même transaction que le changement d’état : aucun événement perdu.
  • ✓Nouvelles tentatives automatiques pendant plusieurs heures, historique des livraisons et relivraison manuelle.
  • ✓Aucune donnée de contact du voyageur dans les événements : référence, statuts, billets et segments uniquement.

Exemple : rechercher puis réserver

requête partenaire
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": { … } }

Questions fréquentes

Comment obtenir des identifiants ?

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.

Qui encaisse le voyageur ?

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.

Toutes les compagnies proposent-elles l’émission ?

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.

Existe-t-il des notifications vers notre plateforme ?

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.

Connecter votre plateforme

Nous vous ouvrons un accès de test et accompagnons votre intégration.