Version: 1.0 • Généré pour l’API Symfony Digiresa
Cette API expose les endpoints nécessaires à une intégration Google Reserve: feeds (merchant/services/availability), recherche de disponibilités, création/modification/annulation de réservations et lecture de statut/détails.
Authorization: Basic <base64(user:pass)> — identifiants issus de GOOGLE_BASIC_USER / GOOGLE_BASIC_PASS (rotation semestrielle recommandée)./v3/** et /google/** (sauf /google/health) sont protégées.| HTTP | code | Description |
|---|---|---|
| 400 | INVALID_ARGUMENT | Payload ou paramètres invalides/manquants |
| 404 | NOT_FOUND | Ressource inconnue (merchant/service/booking) |
| 409 | SLOT_UNAVAILABLE | Créneau indisponible / capacité insuffisante |
| 5xx | ERROR | Erreur interne |
GET /google/feed/merchant/{guid}
Champs: id, name, phone (E.164), email, website_url, address, currency, timezone, open_hours[], location, place_id.
GET /google/feed/services/{guid}
Retourne une liste de services actifs (mono-service respecté si configuré).
GET /google/feed/availability/{guid}?start=YYYY-MM-DD&end=YYYY-MM-DD
today_booking_*_max_hour, fallback form_closed_* (HH:mm ou fermeture).POST /v3/BatchAvailabilityLookup
Authorization: Basic <base64>
Content-Type: application/json
{
"merchant_id": "1234",
"slot_time": [
{
"service_id": "5678",
"start_sec": "1606467600",
"duration_sec": "1800",
"resource_ids": { "party_size": 2 }
},
...
]
}
Réponse: { "slot_time_availability": [ { slot_time, available }, ... ] }
POST /v3/CreateBooking
Authorization: Basic <base64>
Content-Type: application/json
{
"idempotency_token": "rng-1234",
"slot": {
"merchant_id": "1234",
"service_id": "5678",
"start_sec": "1606467600",
"duration_sec": "1800",
"resources": { "party_size": 2 },
"confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"
},
"payment_information": { "prepayment_status": "PREPAYMENT_NOT_PROVIDED" },
"user_information": {
"given_name": "John",
"family_name": "Smith",
"email": "[email protected]",
"telephone": "+12091111111",
"user_id": "1111111111111111111"
}
}
POST /v3/UpdateBooking
Authorization: Basic <base64>
Content-Type: application/json
{
"idempotency_token": "rng-5678",
"booking": {
"booking_id": "890",
"slot": {
"start_sec": "1606473000",
"duration_sec": "1800"
}
}
}
Pour une annulation, la spec Google passe également par /v3/UpdateBooking avec l’action adéquate dans le payload.
GET /google/get-booking-status?merchant_id=...&booking_id=...
GET /google/get-booking-details?merchant_id=...&booking_id=...
Authorization: Basic obligatoire.X-Idempotency-Key (create/update/cancel).X-Request-Id (corrélation).| Nom | Description |
|---|---|
GOOGLE_BASIC_USER | Identifiant Basic Auth |
GOOGLE_BASIC_PASS | Mot de passe Basic Auth |
APP_TIMEZONE | Fuseau (Europe/Paris) |
DATABASE_URL | Connexion DB |
Script SQL: sql/migration_001_google_reserve.sql
idempotency_keys pour idempotence persistée (+ purge TTL à prévoir)booking.service_id, status, cancellation_reason et index utilesbooking_events (audit)GOOGLE_RTU_*Ouvrir / pour tester feeds et réservations. Renseigner vos identifiants Basic avant de lancer les appels.