Skip to content

Endpoint : Voyage Webhook

Ce endpoint permet de recevoir un objet reprĂ©sentant un voyage client, contenant les informations personnelles, les dates, le nombre d’accompagnants et les lieux Ă  visiter.


🔗 URL

POST /api/webhook_voyage/

🔐 Authentication & Permissions

  • Pas d’authentification (anonymous).
  • Restriction par IP uniquement.

đŸ“€ Identifiants des activitĂ©s

Activité Identifiant (id)
Paris: Orsay Museum Entry Ticket 305
Paris: Rodin Museum skip the line Ticket - Getyourguide 306
Paris: Rodin Museum skip the line Ticket - Viator 330
Paris Orsay Museum and Rodin Museum Combo Ticket 307

đŸ“€ RequĂȘte – Payload attendu

JSON Schema

{
  "fullName": "string",
  "email": "string (email)",
  "phoneNumber": "string",
  "startDate": "string (format ISO 8601)",
  "externalReference": "string",
  "tariffs": [
    {
      "type": "string DEFAULT, CHILD or SENIOR",
      "numberOfUnits": "integer"
    }
  ],
  "activityId": "integer (voir tableau 'identifiants des activitées')"
}

Exemple de requĂȘte

{
  "fullName": "Alice DUPONT",
  "email": "alice@example.com",
  "phoneNumber": "+33123456789",
  "startDate": "2025-06-15T10:00:00Z",
  "externalReference": "REF-9876",
  "tariffs": [
    {
      "type": "DEFAULT",
      "numberOfUnits": 2
    },
    {
      "type": "CHILD",
      "numberOfUnits": 1
    }
  ],
  "activityId": 305
}

✅ RĂ©ponse en cas de succĂšs

{
  "status": "ok"
}

HTTP Status: 200 OK


❌ RĂ©ponses en cas d’erreur

400 – Payload invalide

{
  "error": "Payload invalide : 'client' is a required property"
}

400 – Mauvais format de date

{
  "error": "Le champ 'startDate' doit ĂȘtre au format ISO date-time."
}

500 – Erreur interne

{
  "error": "Erreur interne : <message>"
}

📡 Exemple cURL

curl -X POST https://backend.paris.stowa.dev/api/webhook_voyage/ \
  -H "Content-Type: application/json" \
  -d '{
    "fullName": "Alice DUPONT",
    "email": "alice@example.com",
    "phoneNumber": "+33123456789",
    "startDate": "2025-06-15T10:00:00Z",
    "externalReference": "REF-9876",
    "tariffs": [
      {
        "type": "DEFAULT",
        "numberOfUnits": 2
      },
      {
        "type": "CHILD",
        "numberOfUnits": 1
      }
    ],
    "activityId": 305
  }'