Informations Techniques
Caractéristiques
Type d'API | Type de DSP | Version DCP | Complexité |
|---|---|---|---|
Obtenez des données du BRP | DMS | V3 - International | Faible |
Envoyer des données au BRP | GRC | V4 - Amérique du Nord | Un peu plus |
Transaction avec BRP | | | Un peu plus |
Authentification
L'API utilise Authentification de l'application.
Vous avez besoin d'un jeton d'accès valide avant d'appeler cette API, ou vous devez appeler le API d'authentification d'application pour en obtenir un.
Le jeton d'accès est valide pendant 30 minutes ! (1799 secondes)
URL de base
Test | https://qa-cloud-api.brp.com/dcp/<v3 ou v4> |
|---|---|
Production | https://cloud-api.brp.com/dcp/<v3 ou v4> |
Qu'est-ce qui a changé de V2
- Un point de terminaison pour toutes les transactions.
- La charge utile peut contenir de nombreuses transactions.
- L'API des Transactions de Vente V2 utilise l'authentification de base, tandis que l'API V5 utilise l'authentification d'application.
- La charge utile est passée de XML-STAR à JSON.
- Prend en charge de nombreuses devises.
Ressource : Transactions
La ressource Transactions est utilisée pour envoyer tous les types de transactions à l'API.
Le payload de l'API des Transactions de Vente contient beaucoup d'informations. Parfois, votre DMS peut ne pas être en mesure de fournir les informations demandées.
C'est OK, et chaque cas sera discuté lors des activités de certification. Si votre DMS a des limitations techniques qui empêchent l'envoi de certaines informations, les exceptions seront documentées et convenues.
Représentation JSON
{
"transactions": [
{
"header": {
"cancel_flag": false,
"customers": [
{
"city": "Denver",
"country": "USA",
"customer_hash": "77c6c73a430e5b4630321d52eecfba3574662dcfcee84d92cefde2b93df03161",
"customer_id": "21765GE0",
"recipient": "Customer",
"state_province": "COL"
},
{
"city": "Kuujjuaq",
"country": "CAN",
"customer_hash": "b25d0a94ad6707d04957ca22400aeae92ba7a4497e53f25f1991d7323d0864e7",
"customer_id": "008463",
"recipient": "Customer",
"state_province": "QC"
}
],
"transaction_close_date": "2023-04-24T00:00:00Z",
"transaction_number": "32302544",
"transaction_open_date": "2023-04-23T00:00:00Z",
"transaction_source": "In-Store",
"transaction_uuid": "7ca4be01-f750-4236-a3dc-a4128259a827"
},
"parts": [
{
"currency": "CAD",
"is_special_order": false,
"quantity_uom": "EA",
"part_description": "CLASSIC BALL CAP MEN O/S",
"part_number": "4544970090",
"quantity": 1.0,
"dealer_cost": 14.98,
"dealer_price": 18.43,
"msrp": 24.99,
"total_customer_price": 18.43,
"additional_costs": []
},
{
"currency": "CAD",
"is_special_order": false,
"quantity_uom": "EA",
"part_description": "CLASSIC CURVED CAP MEN O/S",
"part_number": "4486830089",
"quantity": 1.0,
"dealer_cost": 14.98,
"dealer_price": 18.43,
"msrp": 24.99,
"total_customer_price": 18.43,
"additional_costs": []
}
],
"units": [
{
"odometer_reading": 0,
"vin": "3JBUVAX48PK003400",
"class_code": "New",
"sales_lead_id": "LM",
"additional_costs": [],
"currency": "CAD",
"financed_amount": 0,
"trade_ins": [],
"financed_rate": 0,
"financed_term_duration": 0,
"dealer_cost": 27198.59,
"dealer_price": 30399.0,
"msrp": 30399.0,
"total_customer_price": 30399.0
}
],
"jobs": [
{
"vin": "3JBVNAV48PE000387",
"odometer_reading": 0,
"currency": "CAD",
"time_cards": [
{
"labour_rate": 129.0,
"labour_worked_hours": 2.23,
"labour_billed_hours": 2.23,
"technician_party_id": "TECH000"
}
],
"total_customer_job_price": 287.67,
"is_warranty_job": false,
"job_number": "20095262",
"job_code": "OTH",
"description": "NEW SXS - SET-UP & PDI",
"additional_costs": [],
"hours": 0
}
]
}
]
}Propriétés
Tous les champs numériques utilisent un point (.) comme séparateur décimal. La virgule (,) n'est PAS prise en charge comme séparateur décimal.
❗ Les propriétés optionnelles doivent être incluses dans votre charge utile si l'information est disponible dans votre DMS.
Propriété | Type | Définition | Remarques |
|---|---|---|---|
transactions * | Liste des objets | | |
en-tête des transactions * | objet | En-tête de transaction. | |
transactions.en-tête. numéro_de_transaction * | chaîne | Le système du concessionnaire génère un numéro de transaction, qui doit être unique pour le concessionnaire.. Voir le Limitations & Contraintes section pour plus d'informations. | Longueur max : 36 |
en-tête des transactions. date_ouverture_transaction * | date | La date à laquelle la transaction a été ouverte, telle qu'écrite dans le système du concessionnaire | Format : aaaa-mm-jjThh:mm:ssZ |
transactions.en-tête. date_de_clôture_de_transaction * | date | La date à laquelle la transaction a été clôturée, telle qu'écrite dans le système du concessionnaire | Format : aaaa-mm-jjThh:mm:ssZ |
en-tête des transactions. source_de_transaction * | chaîne | La source de la transaction Un des:
| |
en-tête des transactions. drapeau_annuler * | booléen | Drapeau pour indiquer que cette transaction a été annulée. | |
transactions.en-tête. uuid_de_transaction * | chaîne | Un identifiant unique pour indiquer cette itération de la transaction. ❗❗ Le transaction_uuid CHAQUE fois que la charge utile est envoyée! Si la charge utile est renvoyée après une erreur, le transaction_uuid doit être différent ❗❗ | Format : (^([0-9A-Fa-f]{8}[-]?[0-9A-Fa-f]{4}[-]?[0-9A-Fa-f]{4}[-]?[0-9A-Fa-f]{4}[-]?[0-9A-Fa-f]{12})$) |
en-tête des transactions. clients * | Liste des objets | | |
en-tête des transactions. clients.client_id * | chaîne | Identifiant unique au niveau du concessionnaire (ou DMS) pour ce client. Si aucun n'est fourni (par exemple, une transaction en espèces), définissez la valeur sur "INVITÉ". | Longueur max : 36 |
en-tête des transactions. clients. hash_client * | chaîne | Un hachage SHA-256 sur le numéro de téléphone et l'email du client. Le format requis est SHA-256(^\+[1-9]\d{1,14}\s\S+@\S+\.\S+$) c'est-à-dire, SHA-256(adresse e-mail de l'espace de numéro de téléphone E.164). par exemple : SHA-256(+18882729222 [email protected]) Si l'email ou le numéro de téléphone est manquant, alors définissez la propriété à null | Format : ^[a-fA-F0-9]{64}$ |
en-tête des transactions. destinataires.clients * | chaîne | Qui était le destinataire de la transaction ? Un des :
Client: le client "standard". Auto: le concessionnaire lui-même (par exemple, vendre des pièces à différents départements, faire une addition aux véhicules, etc.). Concessionnaire: un concessionnaire autre que lui-même. | |
transactions.en-tête. ville.des.clients | chaîne | La ville où vit le client. | Longueur maximale : 128 |
transactions.en-tête. clients. état_province | chaîne | État ou province où le client vit. Définir sur null si non applicable pour le pays. | Longueur maximale : 128 |
transactions.en-tête. pays des clients | chaîne | Pays où vit le client. | Longueur maximale : 128 |
transactions.parts * | Liste des objets | | |
transactions.parts. description_de_part * | chaîne | La description de la pièce ou “PIÈCES NON-BRP”. | Longueur maximale : 128 |
transactions.pieces. numéro_de_pièce * | chaîne | Numéros de pièces définis BRP ou “PIÈCES NON-BRP”. | Longueur maximale : 18 |
transactions.parts. quantité * | nombre | Le nombre de telles pièces. | Format ±9999999,99 |
transactions.parts. quantité_uom * | chaîne | Les unités de mesure utilisées dans le champ de quantité, comme défini dans le tableau ci-dessous. | Longueur max : 10 |
transactions.parts. est_une_commande_spéciale * | booléen | Un indicateur pour signaler si cette pièce était une commande spéciale, c'est-à-dire une pièce qui n'est généralement pas en stock. | |
transactions.parts. prix_total_client * | nombre | Le prix total du client, y compris toutes les taxes, remises, frais d'expédition, etc. Comprend tous les coûts supplémentaires. | Format ±9999999,99 |
transactions.pieces. prix_du_concessionnaire | nombre | Le prix unitaire (pour une quantité de 1) fixé par le revendeur pour la pièce | Format ±9999999,99 |
transactions.pieces. coût_du_concessionnaire | nombre | Le prix unitaire (pour une quantité de 1) auquel le revendeur a acheté l'article auprès de BRP. | Format ±9999999,99 |
transactions.parts.prix de détail suggéré | nombre | Le prix de vente conseillé par le fabricant pour l'article au moment de la transaction (pour une quantité de 1). | Format ±9999999,99 |
transactions.parts. devise * | chaîne | La monnaie utilisée pour tous les prix dans cet objet et les objets enfants. Voir le tableau des devises ci-dessous. | |
transactions.pieces. numéro_de_travail_associé | chaîne | Le numéro de travail du travail qui a consommé cette pièce. | Longueur maximale : 36 |
transactions.parts. coûts supplémentaires * | Liste des objets | | |
transactions.parts. coûts_additionnels.type * | chaîne | Le type de coût supplémentaire. Un des :
| |
transactions.pieces. coûts supplémentaires. description * | chaîne | Une brève description du coût. | Longueur maximale : 255 |
transactions.pieces. coûts supplémentaires. montant applicable | nombre | Le montant sur lequel le taux est appliqué pour calculer le coût supplémentaire. | Format ±9999999,99 |
transactions.parts. coûts_additionnels.taux | nombre | Le taux (par exemple, le taux d'imposition) est appliqué au montant applicable pour déterminer le coût supplémentaire. | Une valeur entre -1.00000 et 1.00000 |
transactions.pieces. coûts_additionnels.montant * | nombre | Le montant du coût supplémentaire. | Format ±9999999,99 |
transactions.units | Liste des objets |
|
|
transactions.units.vin * | chaîne | Le numéro d'identification du véhicule (NIV) de l'unité achetée. | Longueur max : 17 |
transactions.unites. compteur kilométrique | nombre | Lecture du compteur kilométrique en kilomètres. | Format 9999999,99 |
transactions.unites.heures | nombre | Lecture du nombre d'heures de travail. | Format 9999999,99 |
ttransactions.units. code_classe * | chaîne | Le code de classe pour cette unité. Un des :
| |
transactions.unites. id_de_piste_de_vente | chaîne | L'ID BRP du prospect de vente qui a abouti à cette vente. | Longueur maximale : 36 |
transactions.units. prix_total_client * | nombre | Le prix total payé par le client pour cette unité. Comprend tous les coûts supplémentaires. | Format ±9999999,99 |
transactions.units. prix_du_concessionnaire * | nombre | Le prix de vente de base fixé par le concessionnaire pour cette unité. | Format ±9999999,99 |
transactions.units. coût_du_concessionnaire * | nombre | Le prix auquel le concessionnaire a acheté cette unité auprès de BRP. | Format ±9999999,99 |
transactions.units.prixDeVenteConseillé | nombre
| Le prix de vente conseillé par le fabricant, au moment de la transaction, pour cette unité. | Format ±9999999,99 |
transactions.units. devise * | chaîne | La monnaie utilisée pour tous les prix dans cet objet et les objets enfants. Voir le tableau des devises ci-dessous. | |
transactions.unites. montant_financé | nombre | Le montant que le client a financé pour l'achat de cette unité. | Format ±9999999,99 |
transactions.unites. taux_financé | nombre | Le taux de financement. | Valeur entre 0,0000 et 1,0000 |
transactions.unites. durée_du_terme_financé | nombre | Le nombre de mois pendant lesquels l'unité a été financée. | Format 9999999,99 |
transactions.unites. échanges | Liste des objets |
|
|
transactions.unites. fabricant_de_commerce | chaîne | Le fabricant de l'unité échangée. | Longueur maximale : 36 |
transactions.unites. commerce_ins.vin | chaîne | Le VIN du véhicule qui a été échangé. | Longueur maximale : 17 |
transactions.unites. commerce_ins. compteur kilométrique | nombre | Lecture du compteur kilométrique en kilomètres. | Format 9999999,99 |
transactions.unites. heures_de_commerce | nombre | Lecture du nombre d'heures de travail. | Format 9999999,99 |
transactions.unites. commerce_ins.modèle | chaîne | Le modèle de l'unité échangée. | Longueur maximale : 255 |
transactions.unites. prix_du_commerce | nombre | Le prix que le concessionnaire a payé pour l'unité échangée. ❗Le montant doit être négatif. | Format ±9999999,99 |
transactions.unites. année_de_commerce | chaîne | L'année modèle du véhicule échangé. | Entier yyyy |
transactions.units. coûts supplémentaires * | Liste des objets |
|
|
transactions.units. acoûts_additionnels.type * | chaîne | Le type de coût supplémentaire. Un des :
| |
transactions.units. description_des_coûts_additionnels * | chaîne | Une brève description du coût. | Longueur maximale : 255 |
transactions.unites. montant_applicable_des_coûts_additionnels | nombre | Le montant sur lequel le taux est appliqué pour calculer le coût supplémentaire. | Format ±9999999,99 |
transactions.unites. coûts_additionnels.taux | nombre | Le taux (par exemple, le taux d'imposition) est appliqué au montant applicable pour déterminer le coût supplémentaire. | Une valeur entre -1.00000 et 1.00000 |
coûts supplémentaires des transactions.units.montant * | nombre | Le montant du coût supplémentaire. | Format ±9999999,99 |
transactions.emplois * | Liste des objets | | |
transactions.emplois. numéro_de_travail * | chaîne | Le numéro de travail au niveau du concessionnaire. | Longueur max: 36 |
transactions.emplois. code_de_travail * | chaîne | Le code de travail pour cet emploi.Un de
Voir le tableau des codes de travail ci-dessous pour plus d'informations. | Longueur max : 3 |
transactions.emplois. description * | chaîne | La description du poste. | Longueur max : 255 |
transactions.jobs.is_warranty_job * | booléen | Drapeau pour indiquer si ce travail était couvert par la garantie. | |
numéro_de_reclamation_de_garantie | chaîne | Le numéro de réclamation de garantie BRP. | Longueur maximale : 36 |
transactions.jobs.total_customer_job_price * | nombre | Le prix total payé par le client pour le travail seul (c'est-à-dire, hors pièces). Comprend tous les coûts supplémentaires. | Format ±9999999,99 |
transactions.jobs.currency * | chaîne | La monnaie utilisée pour tous les prix dans cet objet et les objets enfants. Voir le tableau des devises ci-dessous. | |
transactions.emplois.vin | chaîne | Le numéro d'identification du véhicule (NIV) de l'unité en réparation/entretien. | Longueur maximale : 17 |
transactions.emplois. compteur kilométrique | nombre | Lecture du compteur kilométrique en kilomètres. | Format 9999999,99 |
transactions.emplois.heures | nombre | Lecture du nombre d'heures de travail. | Format 9999999,99 |
transactions.emplois. fabricant | chaîne | Le fabricant de l'unité sur laquelle le travail a eu lieu. | Longueur maximale : 36 |
transactions.emplois.modèle | chaîne | Le modèle de l'unité sur laquelle le travail a eu lieu. | Longueur maximale : 255 |
transactions.emplois.année | chaîne | L'année modèle de l'unité sur laquelle le travail a eu lieu. | Entier yyyy |
transactions.emplois. cartes_de_temps * | Liste de objets | | |
transactions.emplois. cartes_de_temps. heures_de_travail_effectuées* | nombre | Le nombre d'heures que ce parti a travaillé sur ce travail. | Format 9999999,99 |
transactions.emplois. cartes_de_temps. heures_de_travail_facturées* | nombre | Le nombre d'heures pour lesquelles cette partie a été facturée pour ce travail. | Format 9999999,99 |
transactions.emplois. taux_de_main-d'œuvre.time_cards | nombre | Le tarif horaire de cette partie. | Format 9999999,99 |
transactions.emplois. cartes_de_temps. identifiant_partenaire_technicien* | chaîne | L'ID défini par le concessionnaire pour cette partie. | Longueur maximale : 36 |
transactions.emplois. coûts supplémentaires * | Liste des objets | | |
transactions.emplois. coûts_additionnels.type * | chaîne | Le type de coût supplémentaire. Un des :
| |
transactions.emplois. coûts supplémentaires. ddescription * | chaîne | Une brève description du coût. | Longueur maximale : 255 |
transactions.emplois. coûts supplémentaires. montant applicable | nombre | Le montant sur lequel le taux est appliqué pour calculer le coût supplémentaire. | Format ±9999999,99 |
transactions.emplois. coûts_additionnels.taux | nombre | Le taux (par exemple, le taux d'imposition) est appliqué au montant applicable pour obtenir le montant du coût supplémentaire. | Une valeur entre -1.00000 et 1.00000 |
transactions.emplois. coûts_additionnels.montant * | nombre | Le montant du coût supplémentaire. | Format ±9999999,99 |
- Les propriétés en bleu et marquées d'un astérisque (*) sont obligatoires dans la ressource.
Tables de référence
Monnaie
Organisation de vente | Monnaie | Version 3 | Version 4 |
|---|---|---|---|
1010 | CAD | | X |
3020 | USD | | X |
6030 | EUR | X | |
6030 | NOK | X | |
6050 | SEK | X | |
6050 | EUR | X | |
6050 | GBP | X | |
8070 | MXN | X | |
8075 | BRL | X | |
7080 | AUD | X | |
7080 | NZD | X | |
Unité de Mesures
Code | Description | Dimension |
|---|---|---|
" | Pouce | Longueur |
BOX | Box | Quantity |
BR | Fût | Quantity |
BT | Bouteille | Quantity |
BU | Bucket | Quantity |
PEUT | Container | Quantity |
CC | Cubic centimeter | Volume |
MCC | Cubic decimeter | Volume |
CG | Centigrammes | Weight |
CL | Centilitres | Volume |
CM | Centimeter | Length |
CS | Caisse | Quantity |
FT | Feet | Length |
G | Gram | Poids |
GA | Gallons | Volume |
GU | American gallon | Volume |
H | Time | Time |
KG | Kilogram | Poids |
L | Litre | Volume |
LB | Book | Weight |
LT | Terrain | Quantity |
M | Mètre | Length |
M2 | Mètre carré | Zone |
MG | Milligramme | Weight |
ML | Millilitre | Volume |
MM | Millimètre | Length |
OZ | Onces | Weight |
P | Points | Quantity |
PAC | Package | Quantity |
PC | Room | Quantity |
PR | Pair | Quantity |
PT | Pintes | Volume |
QT | Quarts | Volume |
ROL | Rouler | Quantity |
RÉGLER | Define | Quantity |
SF | Pieds carrés | Zone |
SH | Leaves | Quantity |
SI | Square inch | Zone |
SY | Square meter | Zone |
TB | Tube | Quantity |
YD | Court | Length |
HL | Hectolitre | Volume |
M3 | Cubic meter | Volume |
P3 | Pieds cubes | Volume |
LM | Linear meter | length |
CM2 | Centimeter carré | Surface |
PO3 | Pouce cube | Volume |
DZ | Douzaine | Quantity |
Codes de travail
Nom | Code | Description |
|---|---|---|
Détaillant | DET | Nettoyage, detailing, etc. |
Inspection avant livraison | PDI | Inspection avant livraison |
Maintenance programmée | SMC | Toutes les activités de maintenance standard |
Installation de pièces et d'accessoires | PAI | Toute installation de pièces supplémentaires |
Réparer | RPR | Toutes les réparations sur un véhicule |
Autre | AUTRE | Tous les autres emplois |
Ressource : Réponse aux transactions
L'API renvoie le Réponse des Transactions ressource lorsque l'appel POST est réussi.
Le nom de fichier contient le nom de fichier créé pour stocker les données dans le processeur de chargement de données en arrière-plan.
👉 Gardez ce nom de fichier dans votre journal DMS !
C'est utile lors de l'examen d'un problème de partage de données de transaction de détail. 🕵️♀️
Représentation JSON
{
"status": "success",
"filename": "dealer_retail_transaction_api_delta_20230709_222142Z_4582fbf4-8670-4e06-a22d-a576c9dd6a9f.json.gz"
}Propriétés
Propriété | Type | Définition | Notes |
|---|---|---|---|
statut | chaîne | Toujours succès. | |
nom de fichier | chaîne | Le fichier où les données sont stockées dans le backend pour traitement. | |
Limitations & Contraintes
Format de Nombre
Tous les champs numériques avec des décimales utilisent un point (.) comme séparateur décimal. La virgule (,) est NON prise en charge comme séparateur décimal.
Nombre Maximum de Transactions
Un maximum de 500 transactions peut être envoyé dans une seule charge utile.
Taille de la Charge Utile des Transactions
L'API des Transactions de Vente au Détail fonctionne sur APIGee, qui a une taille de charge utile maximale de 10 Mo.
Voir la section 413 Entité de Demande Trop Grande pour plus d'informations sur la gestion du code d'état 413.
Numéro de Transaction
Le numéro de transaction trouvé dans l'en-tête est utilisé comme clé unique de la transaction.
❗ Le numéro de transaction doit être unique pour un concessionnaire ❗
Nous voyons deux cas :
- Votre DMS a une séquence de numéros de transaction utilisée pour tous les types de transactions (vente au comptoir, ordres de réparation et ventes d'unités).
- Votre DMS a une séquence de numéros de transaction différente pour chaque type de transaction (vente au comptoir, ordre de réparation et vente d'unité)
Dans le premier cas, chaque transaction, quel que soit son type, a un numéro de transaction unique. Vous n'avez rien à faire.
Dans le second cas, deux transactions peuvent avoir le même numéro de transaction. Par exemple, à la fois une vente au comptoir et un ordre de réparation peuvent avoir le numéro de transaction "12345".
Dans ce cas, vous devez ajouter un préfixe au numéro de transaction pour le rendre unique. Par exemple :
- "P-" pour les ventes au comptoir.
- "R-" pour les ordres de réparation.
- "U-" pour les ventes d'unités.
Dans notre exemple, le numéro de transaction de vente au comptoir sera "P-12345" et le numéro de transaction de l'ordre de réparation sera "R-12345".