Ouvrir la plateforme à l'écosystème externe afin de permettre :
À l'issue du Sprint 14 :
Ce sprint transforme la plateforme en véritable plateforme ouverte.
PublicApiModule PartnerModule WebhookModule ApiKeysModule MarketplaceModule DeveloperPortalModule
Partenaires ↓ API Gateway ↓ Public API ├── Reservations ├── Properties ├── Customers ├── Contracts ├── Payments └── Reporting ↓ Webhooks ↓ Applications tierces
En tant qu'administrateur
Je souhaite créer une clé API
Afin d'autoriser un partenaire à accéder aux données.
POST /api-keys
Nom Description Scopes Date expiration
pk_live_xxxxxxxxxxxxxxxxxxxx
DELETE /api-keys/{id}
GET /api-keys
Nom Scopes Dernière utilisation Expiration Statut
POST /partners
Nom Type Contact Site web
CHANNEL_MANAGER OTA ERP CRM COMPTABILITÉ AUTRE
READ_PROPERTIES READ_RESERVATIONS READ_CUSTOMERS READ_PAYMENTS READ_REPORTING
GET /public-api/properties
Ville Capacité Prix Disponibilité
GET /public-api/reservations
POST /public-api/reservations
Site partenaire ↓ Création réservation ↓ Synchronisation plateforme
GET /public-api/availability
GET /public-api/rates
API Key OAuth2 Client Credentials
Authorization: Bearer {token}
POST /webhooks
URL Événements Secret
ReservationCreated ReservationUpdated ReservationCancelled ContractSigned PaymentSucceeded InvoiceGenerated
{
"event": "ReservationCreated",
"timestamp": "2028-01-01T10:00:00Z",
"data": {}
}
POST /webhooks/{id}/replay
GET /webhooks/{id}/deliveries
Date Payload Réponse HTTP Tentatives
GET /marketplace/connectors
Stripe MangoPay Yousign DocuSign SendGrid Twilio Slack Google Calendar
Marketplace ↓ Installation ↓ Configuration ↓ Activation
OpenAPI Guides SDK Exemples
/developers
TypeScript Java C# PHP Python
100 requêtes/minute par clé API
429 Too Many Requests
Clé API Endpoint Temps réponse IP Résultat
model ApiKey {
id String @id @default(uuid())
tenantId String
name String
keyHash String
scopes String[]
expiresAt DateTime?
active Boolean
}
model Partner {
id String @id @default(uuid())
name String
partnerType String
active Boolean
}
model Webhook {
id String @id @default(uuid())
tenantId String
endpointUrl String
secret String
active Boolean
}
model WebhookDelivery {
id String @id @default(uuid())
webhookId String
eventType String
statusCode Int?
deliveredAt DateTime?
}
model Connector {
id String @id @default(uuid())
code String
name String
category String
active Boolean
}
src/modules/ecosystem ├── public-api │ ├── api-keys │ ├── partners │ ├── webhooks │ ├── marketplace │ └── developers
ApiKeyService PartnerService WebhookService MarketplaceService DeveloperPortalService
ApiKeyCreated
WebhookDelivered
ConnectorInstalled
Deux niveaux :
Swagger Interne Swagger Public
PublicAPI Partners ApiKeys Webhooks Marketplace
Environ :
45 endpoints
/developers /developers/api-keys /developers/webhooks /developers/marketplace /developers/sdk
ApiKeyTable WebhookMonitor ConnectorMarketplace SdkGenerator DeveloperConsole
Appels API Erreurs Temps réponse Webhooks Connecteurs actifs
ApiKeyService WebhookService PartnerService MarketplaceService
API Key ↓ Appel API ↓ Webhook ↓ Synchronisation
Création clé API ↓ Création réservation externe ↓ Webhook envoyé ↓ Réception partenaire ↓ Historisation
Le Sprint 14 est terminé lorsque :
À l'issue du Sprint 14 :
La solution devient une véritable plateforme ouverte capable de s'intégrer à l'écosystème numérique des agences immobilières et de location.
Objectif :
Permettre l'exploitation de plusieurs agences, marques et sites web depuis une plateforme unique.
Modules concernés :
MultiSiteModule WhiteLabelModule BrandingModule AgencyNetworkModule DomainManagementModule
Fonctionnalités :
À l'issue du Sprint 15, la plateforme pourra être commercialisée à grande échelle auprès de réseaux d'agences et de franchises.