Vérifier le statut d'un trajet envoyé

GET /journeys/{operator_journey_id}

Lors de l'envoi d'un trajet, un code 201 et un payload avec le operator_journey_id et la date de création vous sont renvoyés. Le trajet est alors enregistré dans notre base. Le processus de validation par lequel vont passer les données est complexe, asynchrone et dépend de différents services ayant de temps de réponse variables. Les trajets ne seront visibles dans l'interface utilisateurs que 24 heures après leur envoi.

Il est possible de vérifier le statut d'un trajet envoyé directement pour s'assurer qu'il n'y pas pas eu d'erreur de format ou de traitement.

Dans le cadre de la fraude inter opérateurs, les opérateurs sont tenus de vérifier le statut du trajet au plus tôt 24h après la réalisation de celui-ci. Un trajet detecté sera retourné avec un champ status à fraud_error. Le statut ne peut plus changer 48h après la date de fin du trajet. En cas d'indisponibilité du service, le trajet est considéré comme ok après les 48h L'algorithme de détection de fraude inter opérateurs est appliqué sur tous les trajets envoyés.

Path parameters

Responses

  • 200 application/json

    OK Le trajet a été trouvé et son statut est retourné. Attention, le trajet peut être en erreur malgré le code 200, vérifiez le statut retourné.

    Hide response attributes Show response attributes object
    • status string Required

      Statut du trajet tel que :

      • validation_error : les données envoyées ne sont pas valides
      • anomaly_error : le trajet est incohérent ou physiquement impossible
      • acquisition_error : le trajet n'a pas du tout été enregistré
      • normalization_error : le trajet a été enregistré mais les données envoyées n'ont pas pu être standardisée.
      • fraud_error : le trajet a été enregistré et standardisé mais il a été considéré comme frauduleux
      • ok : le trajet a correctement été traité
      • pending : le trajet a été enregistré mais n'a pas encore été traité
      • canceled : le trajet a été annulé par l'opérateur
      • unknown : une erreur inconnue a affecté le trajet
      • terms_violation_error : le trajet ne respecte pas les conditions générales d'utilisation

      Values are fraud_error, anomaly_error, validation_error, acquisition_error, normalization_error, ok, canceled, pending, unknown, or terms_violation_error.

    • operator_journey_id string Required

      Identifiant généré par l'opérateur. Doit être unique par couple conducteur/passager

    • created_at string(date-time) Required

      la date d'enregistrement du trajet ou à défaut d'enregistrement, la date de l'erreur d'enregistrement

    • fraud_error_labels array[string]

      Etiquette possible pour un cas de fraude détectée :

      • interoperator_fraud : le trajet a été déclaré chez un autre opérateur pour les mêmes personnes et avec des bornes temporelles qui se chevauchent

      Value is interoperator_fraud.

    • Liste des raisons ayant abouti au rejet du trajet. vide si pas d'anomalie détectée

      Hide anomaly_error_details attributes Show anomaly_error_details attributes object
      • label string

        Etiquette possible pour une anomalie détectée

        • temporal_overlap_anomaly : 2 trajets ont été déclarés pour un même opérateur et un même passager sur des bornes temporelles qui se chevauchent à au moins 70%
        • distance_duration_anomaly: 1 trajet a été enregistré avec une durée et/ou une distance incohérente

        Règles utilisées pour detecter les anomalies de type distance_duration_anomaly

        • distance estimée par osrm ou transmises inférieure à 300m. Le trajet est beaucoup trop court en termes de distance.
        • durée estimée par osrm ou transmise inférieure à 1 minute. Le trajet est beaucoup trop court en termes de durée
        • durée estimée par osrm supérieure à 2.5 fois le temps transmis. Exemple: temps estimé 25 minutes pour temps transmis de 10 minutes Le temps de trajet est trop faible par rapport au plus court chemin determiné par OSRM, le trajet est considéré comme physiquement impossible
        • distance estimée par osrm supérieure à 2.5 fois la distance transmise. Exemple: distance 10 km sur une distance estimée 25 km La distance du trajet est trop faible par rapport au plus court chemin determiné par OSRM, le trajet est considéré comme physiquement impossible
        • distance transmise supérieure à 4 fois la distance estimée osrm. Exemple: 10 km estimé pour 40 km transmis La distance transmise est très largement supérieure à l'estimation. Le seuil est élevé pour prendre en compte d'éventuels détours par rapport au plus court chemin
        • durée transmise supérieure à 7 fois la durée estimée. Exemple : 1h estimé vs 7h transmis La durée transmise est très largement supérieure par rapport à l'estimation. Le seuil est élevé pour prendre en compte d'éventuels embouteillage

        Values are temporal_overlap_anomaly or distance_duration_anomaly.

      • metas object

        Additional properties are allowed.

        Hide metas attributes Show metas attributes object
        • l'operator_journey_id en conflict avec le trajet rejeté. Le trajet correspondant à ce journey_id ne sera pas retenu en statut anomaly_error.

        • ratio de temps de chevauchement entre les 2 trajets allant de 0 à 1. 1 désigne un chevauchement de temps total

    • Etiquette possible pour un cas de non respect des CGU :

      • distance_too_short : le trajet a une distance trop faible (<2 km)
      • too_many_trips_by_day : le participant (driver_identity_key ou passenger_identity_key) a fait plus de 4 trajets dans la même journée (4 operator_trip_id maximum par usager et par jour sur la même date de départ)
      • too_close_trips : le trajet est trop rapproché d'un trajet précédent ou suivant réalisé avec la même personne (Délai minimum de 30mn entre 2 trajets (operator_trip_id différent) impliquant un même usager (driver_identity_key ou passenger_identity_key). Sont pris en compte les trajets finissant moins de 30 min avant le départ du trajet soumis ou démarrant moins de 30 min après la fin du trajet soumis.
      • expired : le trajet a dépassé la date limite d'envoi de 24h après la date de début du trajet. Cf: engagement de délais d'envoi par les opérateurs

      Values are distance_too_short, too_many_trips_by_day, too_close_trips, or expired.

  • 401 application/json

    Non authentifié. Le token applicatif est manquant ou invalide

  • 403 application/json

    Accès refusé Les permissions de votre token applicatif ne vous permettent pas de créer une attestation. Vous pouvez générer un nouveau token et réessayer. Si le problème persiste, contactez notre équipe.

  • 404 application/json

    Le trajet n'a pas été trouvé

GET /journeys/{operator_journey_id}
curl \
 -X GET http://api.example.com/journeys/{operator_journey_id} \
 -H "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "status": "fraud_error",
  "operator_journey_id": "string",
  "created_at": "2024-05-04T09:42:00+00:00",
  "fraud_error_labels": [
    "interoperator_fraud"
  ],
  "anomaly_error_details": [
    {
      "label": "temporal_overlap_anomaly",
      "metas": {
        "conflicting_journey_id": "string",
        "temporal_overlap_duration_ratio": 42.0
      }
    }
  ],
  "terms_violation_details": [
    "distance_too_short"
  ]
}
Response examples (401)
{
  "code": 401,
  "error": "Unauthorized"
}
Response examples (403)
{
  "code": 403,
  "error": "Forbidden"
}
Response examples (404)
{
  "code": 404,
  "error": "Not found"
}