NAV

Authentification

Exemple - En-têtes

Accept: application/json
Authorization: CLÉ_API

USD vous fournira votre clé d'API personnelle.

Vous devez inclure cette clé d'API dans l'en-tête Authorization de chaque requête.

De plus, l'en-tête Accept doit être défini à application/json.

Pour l'environement de test, utilisez l'URL suivante : https://usd-staging.demo.ixmedia.com/api/v1/

Pour l'environement de production, utilisez l'URL suivante : https://www.reparemonbac.ca/api/v1/

Demande d'intervention

Créer une demande d'intervention

Permet de créer une demande d'intervention.

Exemple - Requête

POST https://www.reparemonbac.ca/api/v1/citizen_requests?locale=fr

Requête HTTP

POST https://www.reparemonbac.ca/api/v1/citizen_requests

Paramètres query string

Nom Requis Description
locale Non La langue de la réponse (fr ou en). Par défaut, la langue dans le body de la requête sera utilisée.

Exemple - Body JSON de la requête

{
  "locale": "fr",
  "appellation_id": 1,
  "first_name": "John",
  "last_name": "Doe",
  "follow_up_preference": "email",
  "email": "example@domain.com",
  "address": {
    "address": "123 rue du Test",
    "city": "Québec",
    "province": "QC",
    "postal_code": "H0H 0H0"
  },
  "bin_position": "46.750216117383566,-71.23968459351832",
  "bin_position_notes": "Ceci est une note.",
  "bin_serial_number": "12345",
  "contractual_sector_id": 3,
  "bin_volume_id": 1,
  "bin_type_id": 1,
  "service_type_id": 1,
  "status_id": 3,
  "bin_part_ids": [1, 2, 3],
  "client_internal_number": "12345"
}

Paramètres du body JSON

Nom Requis Description
locale Oui Langue du citoyen (fr ou en).
appellation_id Oui Appellation souhaitée du citoyen.
Utilisez un des IDs suivants:
  1. Monsieur
  2. Madame
  3. Aucun
first_name Oui Prénom du citoyen.
Longueur maximale de 255 caractères.
last_name Oui Nom du citoyen.
Longueur maximale de 255 caractères.
follow_up_preference Oui Préférence de suivi du citoyen.
Les valeurs acceptées sont email ou tel.
cellphone Oui/Non Numéro de cellulaire du citoyen. Utilisé pour envoyer des SMS.
Ce paramètre est obligatoire si follow_up_preference est tel.
email Oui/Non Adresse courriel du citoyen.
Ce paramètre est obligatoire si follow_up_preference est email.
Longueur maximale de 255 caractères.
address.address Oui Numéro civique et rue de l'adresse d'intervention.
address.app Non Numéro d'appartement de l'adresse d'intervention.
address.city Oui Ville de l'adresse d'intervention.
address.province Oui Code de province à deux lettres de l'adresse d'intervention.
Les codes acceptés sont AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK et YT.
address.postal_code Oui Code postal de l'adresse d'intervention.
Doit être dans un des formats suivants: A1A 1A1 ou A1A1A1.
bin_position Non Coordonnées GPS de l'adresse d'intervention.
Doit être dans le format suivant: 0.00000000000000,-0.00000000000000.
bin_position_notes Non Information supplémentaire sur l'emplacement du bac.
bin_serial_number Non Numéro en blanc inscrit sur le côté ou devant du bac
Longueur maximale de 255 caractères.
contractual_sector_id Oui Secteur contractuel de la demande.
Pour savoir quel secteur contractuel est disponible, référez-vous à la section obtenir les secteurs contractuels.
bin_type_id Oui Type de bac de la demande.
Pour savoir quel type de bac est disponible, référez-vous à la section obtenir les types de bac.
bin_volume_id Oui Volume du bac de la demande.
Pour savoir quel volume de bac est disponible, référez-vous à la section obtenir les volumes de bac.
service_type_id Oui Type d'intervention souhaitée.
Pour savoir quel type d'intervention est disponible, référez-vous à la section obtenir les types d'intervention.
status_id Non Statut initial de la demande.
Vous pouvez choisir entre À approuver (1) et En attente de transmission à USD (3). Par défaut, le statut est À approuver (1).
Pour savoir quels sont les différents statuts, référez-vous à la section statuts d'une demande d'intervention.
bin_part_ids Oui/Non Liste des pièces endommagées du bac.
Ce paramètre est obligatoire si le type d'intervention est service de réparation. Sinon, ne pas founir ce paramètre.
Utilisez les IDs suivants:
  1. Bouchon pour tige de couvercle
  2. Roue
  3. Essieux
  4. Divers / locquet / barre de préhension / grille de fond
  5. Couvercle
  6. Tige pour couvercle
client_internal_number Non Votre numéro interne servant à identifier la demande. Ce numéro peut être utilisé pour rechercher les demandes sur le site Web.
Doit être unique.
Longueur maximale de 255 caractères.
image Non Une photo que le citoyen veut joindre à sa demande.
Doit être en base64 avec le préfixe: data:mime_type;base64,...

Réponse

Exemple - Réponse de succès

{
  "citizen_request": {
    "id": 4299,
    "citizen_request_number": "202211302024044299",
    "current_status": {
      "id": 5,
      "name": "Complétée"
    }
  }
}

Exemple - Réponse en erreur

{
  "errors": {
    "first_name": ["Ce champ est requis."],
    "last_name": ["Ce champ est requis."]
  }
}

Si la demande a été créée, son ID et statut seront retournés. Sinon, des erreurs de validation groupées par champ seront retournées.

Dans le cas de création d'une demande ayant un client_internal_number déjà existant, le id associé au client_internal_number sera retourné en plus du message d'erreur.

Mettre à jour une demande d'intervention

Permet de mettre à jour une demande d'intervention, tant que celle-ci est en attente d'approbation, ou en attente de transmission à USD (statut 1 et 3 respectivement. Voir les statuts d'une demande d'intervention).

Vous pouvez également annuler une requête en définissant le champ status_id à Refusée par la municipalité (2).

Exemple - Requête

PUT https://www.reparemonbac.ca/api/v1/citizen_requests/4299?locale=fr

Requête HTTP

PUT https://www.reparemonbac.ca/api/v1/citizen_requests/:id

Paramètres dans l'URL

Name Requis Description
id Oui L'ID reparemonbac de la demande d'intervention.

Paramètres query string

Nom Requis Description
locale Non La langue de la réponse (fr ou en). La valeur par défaut est fr.

Paramètres du body JSON

Les mêmes paramètres que ceux pour la création sont autorisés. Voir plus haut.
Vous pouvez également définir le champ status_id à Refusée par la municipalité (2).

Réponse

Exemple - Réponse de succès

{
  "citizen_request": {
    "id": 4299,
    "citizen_request_number": "202211302024044299",
    "current_status": {
      "id": 5,
      "name": "Complétée"
    }
  }
}

Exemple - Réponse en erreur

{
  "errors": {
    "first_name": ["Ce champ est requis."],
    "last_name": ["Ce champ est requis."]
  }
}

Si la demande a été modifiée, son ID et statut seront retournés. Sinon, des erreurs de validation groupées par champ seront retournées.

Annuler une demande d'intervention

Permet d'annuler une demande d'intervention, tant que celle-ci est en attente d'approbation, ou en attente de transmission à USD (statut 1 et 3 respectivement. Voir les statuts d'une demande d'intervention)

Exemple - Requête

DELETE https://www.reparemonbac.ca/api/v1/citizen_requests/4299?locale=fr

Requête HTTP

DELETE https://www.reparemonbac.ca/api/v1/citizen_requests/:id

Paramètres dans l'URL

Name Requis Description
id Oui L'ID reparemonbac de la demande d'intervention.

Paramètres query string

Nom Requis Description
locale Non La langue de la réponse (fr ou en). La valeur par défaut est fr.

Réponse

Renvoie un code statut 200 si réussi. Sinon renvoi un code statut 422 si la requête ne peut plus être annulée.

Obtenir le statut d'une demande d'intervention

Permet d'obtenir l'état actuel d'une demande d'intervention.

Exemple - Requête

GET https://www.reparemonbac.ca/api/v1/citizen_requests/8/status?locale=fr

Requête HTTP

GET https://www.reparemonbac.ca/api/v1/citizen_requests/:id/status

Paramètres dans l'URL

Name Requis Description
id Oui L'ID reparemonbac de la demande d'intervention.

Paramètres query string

Nom Requis Description
locale Non La langue de la réponse (fr ou en). La valeur par défaut est fr.

Réponse

Exemple - Réponse de succès

{
  "citizen_request_status": {
    "id": 5,
    "name": "Complétée"
  }
}

Exemple - Réponse en erreur

{
  "message": "Cette requête n'existe pas."
}

L'état actuel de la demande est retourné. Pour savoir quels sont les différents statuts, référez-vous à la section statuts d'une demande d'intervention.

Obtenir le détail d'une demande d'intervention

Permet d'obtenir le détail actuel d'une demande d'intervention.

Exemple - Requête

GET https://www.reparemonbac.ca/api/v1/citizen_requests/8?locale=fr

Requête HTTP

GET https://www.reparemonbac.ca/api/v1/citizen_requests/:id

Paramètres dans l'URL

Name Requis Description
id Oui L'ID reparemonbac de la demande d'intervention.

Paramètres query string

Nom Requis Description
locale Non La langue de la réponse (fr ou en). La valeur par défaut est fr.

Réponse

Exemple - Réponse de succès

{
  "citizen_request": {
    "id": 1,
    "client_internal_number": "Test-1",
    "address": {
      "address": "123 rue Test",
      "city": "Québec",
      "province": "QC",
      "postal_code": "G6W 5M6"
    },
    "status": {
      "id": 5,
      "name": "Complétée"
    },
    "intervention": {
      "intervention_type": "Remplacement - Brisé (12345678904)",
      "pieces": "1X - Bac 360L charcoal Québec (12345677X1XXX)",
      "notes": "Test note",
      "serial_number": "123-456789",
      "reason": null
    }
  }
}

Exemple - Réponse en erreur

{
  "message": "Cette requête n'existe pas."
}

Le détail actuel de la demande est retourné avec l'id de la demande, le numéro interne du client, le statut de la demande, l'adresse complète et le détail de l'intervention.

Le détail de l'adresse contient :

Le détail de l’intervention contient :

Pour savoir quels sont les différents statuts, référez-vous à la section statuts d'une demande d'intervention.

Statuts d'une demande d'intervention

Les statuts possibles sont les suivants.

ID Nom
1 À approuver
2 Refusée par la municipalité
3 En attente de transmission à USD
4 En traitement chez USD
5 Complétée
6 Annulée par USD avec frais
7 Annulée par USD sans frais

Secteur contractuel

Obtenir les secteurs contractuels

Retourne les secteurs contractuels disponibles selon votre clé d'API.

Exemple - Requête

GET https://www.reparemonbac.ca/api/v1/contractual_sectors

Requête HTTP

GET https://www.reparemonbac.ca/api/v1/contractual_sectors

Réponse

Exemple - Réponse de succès

{
  "contractual_sectors": [
    {
      "id": 3,
      "name": "Mon secteur contractuel"
    }
  ]
}

La liste des secteurs contractuels disponibles est retournée. Chaque secteur contractuel a un ID et un nom.

Obtenir les types de bac

Retourne les types de bac disponibles pour un secteur contractuel.

Exemple - Requête

GET https://www.reparemonbac.ca/api/v1/contractual_sectors/3/bin_types?locale=fr

Requête HTTP

GET https://www.reparemonbac.ca/api/v1/contractual_sectors/:id/bin_types

Paramètres dans l'URL

Nom Requis Description
id Oui L'ID du secteur contractuel.
Pour savoir quels secteurs contractuels sont disponibles, référez-vous à la section obtenir les secteurs contractuels.

Paramètres query string

Nom Requis Description
locale Non La langue de la réponse (fr ou en). La valeur par défaut est fr.

Réponse

Exemple - Réponse de succès

{
  "bin_types": [
    {
      "id": 1,
      "name": "Recyclage bleu"
    },
    {
      "id": 5,
      "name": "Organique brun"
    }
  ]
}

La liste des types de bac est retournée. Chaque type de bac a un ID et un nom.

Obtenir les volumes de bac

Retourne les volumes de bac disponibles pour un secteur contractuel.

Exemple - Requête

GET https://www.reparemonbac.ca/api/v1/contractual_sectors/3/bin_volumes?locale=fr

Requête HTTP

GET https://www.reparemonbac.ca/api/v1/contractual_sectors/:id/bin_volumes

Paramètres dans l'URL

Nom Requis Description
id Oui L'ID du secteur contractuel.
Pour savoir quels secteurs contractuels sont disponibles, référez-vous à la section obtenir les secteurs contractuels.

Paramètres query string

Nom Requis Description
locale Non La langue de la réponse (fr ou en). La valeur par défaut est fr.

Réponse

Exemple - Réponse de succès

{
  "bin_volumes": [
    {
      "id": 1,
      "name": "Mini bac"
    },
    {
      "id": 14,
      "name": "240L brun"
    }
  ]
}

La liste des volumes de bac est retournée. Chaque volume de bac a un ID et un nom.

Obtenir les types d'intervention

Retourne les types d'intervention disponibles pour un secteur contractuel.

Exemple - Requête

GET https://www.reparemonbac.ca/api/v1/contractual_sectors/3/service_types?locale=fr

Requête HTTP

GET https://www.reparemonbac.ca/api/v1/contractual_sectors/:id/service_types

Paramètres dans l'URL

Nom Requis Description
id Oui L'ID du secteur contractuel.
Pour savoir quels secteurs contractuels sont disponibles, référez-vous à la section obtenir les secteurs contractuels.

Paramètres query string

Nom Requis Description
locale Non La langue de la réponse (fr ou en). La valeur par défaut est fr.

Réponse

Exemple - Réponse de succès

{
  "service_types": [
    {
      "id": 1,
      "name": "Service de réparation"
    },
    {
      "id": 2,
      "name": "Retrait de bac"
    }
  ]
}

La liste des types d'intervention est retournée. Chaque type d'intervention a un ID et un nom.

Erreurs

Exemple - 500 Internal Server Error

{
  "message": "Une erreur s'est produite."
}

Voici les codes d'erreurs qui peuvent être retournés par l'API:

Code Erreur Description
400 Bad Request Votre requête est invalide.
401 Unauthorized Vous n'avez pas fourni votre clé API ou votre clé API est erronée.
403 Forbidden Vous n'avez pas la permission d'accéder à la ressource demandée.
404 Not Found La ressource spécifiée est introuvable.
422 Unprocessable Entity Le corps de votre requête est bien formé mais n'a pas pu être traité en raison d'erreurs de validation.
500 Internal Server Error Une erreur inattendue s'est produite sur notre serveur.