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:
|
| 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. |
| 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:
|
| 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 numéro civique et le nom de rue
- la ville
- la province
- le code postal
Le détail de l’intervention contient :
- le type d’intervention
- les pièces remplacées
- la note ajoutée par USD
- le nouveau numéro de série du bac
- la raison pour laquelle une requête aurait été annulée
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. |