Créer un certificat

POST /certificates

Configuration de la requête

  1. La requête est authentifiée avec un token applicatif à ajouter à l'entête de la requête : Authorization: Bearer <token>
  2. Le fuseau horaire est requis
  3. L'identité est requise
  4. Le filtrage géographique est optionnel
  5. Les dates de début et de fin sont optionnelles
  6. La date de fin la plus récente possible est J-6
  7. La date de début la plus ancienne est le 1er janvier de l'année précédente

Voir la création avancée pour le détail des options

Création simple

Les données requises pour la création ne concernent que l'identité de la personne et le fuseau horaire.

Par défaut, l'attestation sera générée pour l'année précédente sans restrictions géographiques.

Chaque appel, même si les paramètres sont les mêmes, entraine la création d'une attestation unique.

Les attestations ne peuvent être supprimées. Contactez notre équipe au besoin.

Astuce

Vous pouvez récupérer le fuseau horaire de l'utilisateur en Javascript.

const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
application/json

Body Required

  • identity object Required

    L'identité peut être passée de 3 manières différentes :

    1. phone : le numéro de téléphone complet au format ISO
    2. phone_trunc + operator_user_id : le numéro de téléphone tronqué plus votre identifiant utilisateur
    3. operator_user_id : votre identifiant utilisateur uniquement (valable uniquement si vous avez transmis des trajets avec le couple phone_trunc + operator_user_id)

    Additional properties are NOT allowed.

    Hide identity attributes Show identity attributes object
    • phone string

      Numéro au format ITU E.164

    • Numéro au format ITU E.164 tronqué des 2 derniers chiffres. Obligatoire si phone n'est pas renseigné.

    • Identifiant de l'utilisateur chez l'opérateur. Obligatoire.

  • tz string Required

    fuseau horaire

  • start_at string(date-time)

    Date de début au format ISO. Sélectionne les trajet >= date

  • end_at string(date-time)

    Date de fin au format ISO nécessairement supérieur à start_at. Sélectionne les trajets < date

  • positions array[object]

    Pour sélectionner des trajets en fonction de leur point de départ et d'arrivée, il est possible de les préciser avec la clé positions. Tous les trajets ayant un départ et une arrivée dans un rayon de 1km autour des points donnés seront inclus à l'attestation.

    At least 2 elements.

    Hide positions attributes Show positions attributes object
    • lat number Required

      Latitude comprise entre 90deg et -90deg décimaux en datum WSG-84

    • lon number Required

      Longitude comprise entre 180deg et -180deg décimaux en datum WSG-84

Responses

  • 201 application/json

    OK

    Hide response attributes Show response attributes object
    • uuid string(uuid)
    • created_at string(date-time)
    • meta object

      Additional properties are allowed.

      Hide meta attributes Show meta attributes object
      • tz string
      • positions array[object]
        Hide positions attributes Show positions attributes object
        • lat number Required

          Latitude comprise entre 90deg et -90deg décimaux en datum WSG-84

        • lon number Required

          Longitude comprise entre 180deg et -180deg décimaux en datum WSG-84

      • driver object

        Additional properties are NOT allowed.

        Hide driver attributes Show driver attributes object
        • total object

          Additional properties are allowed.

          Hide total attributes Show total attributes object
        • trips array[object]
          Hide trips attributes Show trips attributes object
          • type string

            Values are driver or passenger.

          • datetime string(date-time)
          • trips integer
          • distance number

            Distance exprimée en mètre

            Minimum value is 0, maximum value is 1000000.

          • amount number

            montant en centimes d'euros

      • Additional properties are NOT allowed.

        Hide passenger attributes Show passenger attributes object
        • total object

          Additional properties are allowed.

          Hide total attributes Show total attributes object
        • trips array[object]
          Hide trips attributes Show trips attributes object
          • type string

            Values are driver or passenger.

          • datetime string(date-time)
          • trips integer
          • distance number

            Distance exprimée en mètre

            Minimum value is 0, maximum value is 1000000.

          • amount number

            montant en centimes d'euros

  • 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

    L'identité n'a pu être trouvée. Vérifiez les identifiants envoyés.

POST /certificates
curl \
 -X POST http://api.example.com/certificates \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"identity":{"phone":"+33601020304, +590690101010","phone_trunc":"+336010203, +5906901010","operator_user_id":"d2e8a6c4-9e3a-4b6f-8e8d-9f7a6b5c4d3e"},"tz":"Europe/Paris","start_at":"2021-01-01T00:00:00+01:00","end_at":"2021-07-01T00:00:00+02:00","positions":[{"lat":47.682821,"lon":-0.557483}]}'
Request examples
{
  "identity": {
    "phone": "+33601020304, +590690101010",
    "phone_trunc": "+336010203, +5906901010",
    "operator_user_id": "d2e8a6c4-9e3a-4b6f-8e8d-9f7a6b5c4d3e"
  },
  "tz": "Europe/Paris",
  "start_at": "2021-01-01T00:00:00+01:00",
  "end_at": "2021-07-01T00:00:00+02:00",
  "positions": [
    {
      "lat": 47.682821,
      "lon": -0.557483
    }
  ]
}
Response examples (201)
{
  "uuid": "8a9d2da9-39e3-4db7-be8e-12b4d2179fda",
  "created_at": "2020-01-01T00:00:00+01:00",
  "meta": {
    "tz": "Europe/Paris",
    "positions": [
      {
        "lat": 47.682821,
        "lon": -0.557483
      }
    ],
    "driver": {
      "total": {
        "trips": 42,
        "week_trips": 42,
        "weekend_trips": 42,
        "distance": 42.0,
        "amount": 42.0
      },
      "trips": [
        {
          "type": "driver",
          "datetime": "2024-05-04T09:42:00+00:00",
          "trips": 42,
          "distance": 42.0,
          "amount": 42.0
        }
      ]
    },
    "passenger": {
      "total": {
        "trips": 42,
        "week_trips": 42,
        "weekend_trips": 42,
        "distance": 42.0,
        "amount": 42.0
      },
      "trips": [
        {
          "type": "driver",
          "datetime": "2024-05-04T09:42:00+00:00",
          "trips": 42,
          "distance": 42.0,
          "amount": 42.0
        }
      ]
    }
  }
}
Response examples (401)
{
  "code": 401,
  "error": "Unauthorized"
}
Response examples (403)
{
  "code": 403,
  "error": "Forbidden"
}
Response examples (404)
{
  "code": 404,
  "error": "Not found"
}