Table des matières
TRANSACTIONS
Transaction : transaction/get
Transaction : transaction/getlist
Inscriptions et transactions - Webhook
Description des codes d’erreurs de transaction
TRANSACTIONS
L’API regroupe les notions de transaction et d’inscription.
Transaction : transaction/get
https://www.domaine.com/lmsapi/transaction/get
/transaction/get (request) - Requête une transaction et son paiement
}
"id": "V3nIrMZqmh" (Obligatoire)
}
/transaction/get (response) – Retourne le détail d'une transaction et son paiement (s’il y a lieu)
{
"id": "V3nIrMZqmh",
"billingID": "vBW5xMw1VQ2A8DFaNy22zA%3d%3d",
"billingReferenceNumber": 123,
"billingFamily" : 1,
"transactionDate": "2016-11-11T13:05:29.963",
"priceName": "Prix 2(membre)",
"currency": "cdn",
"basePrice": 50.0,
"subscribeDiscountPercent": 10.0,
"lotPurchaseDiscountPercent": 0.0,
"quantity": 1,
"totalPrice": 52.49,
"paymentMethodID": 5,
"paymentMethodType": 0,
"transactionType": 1,
"comment": "Un commentaire",
"onlineTransactionID": "mtp198yt",
"billToName": "Joann Test 101",
"billingAddress": "690, Saint-Joseph Est",
"billingAddress2": "",
"billingPostalCode": "G1K 3B9",
"billingCity": "Quebec",
"billingCountryID": 37,
"billingStateID": 11,
"balance": 0.0,
"authorizationStatus": 0,
"paymentStatus": 0,
"billingType": 1,
"userID": "RXsZEdyhO7LrjXr1%2bw1ySQ%3d%3d",
"providerId": "RXsZEdyhO7LrjXr1%2bw1ySQ%3d%3d",
"workspaceId": "RXsZEdyhO7LrjXr1%2bw1ySQ%3d%3d",
"workspaceInstanceId": "RXsZEdyhO7LrjXr1%2bw1ySQ%3d%3d",
"cohortId": "0ZmJHkU8UY9k2si1sOPcGg%3d%3d",
"programId": "0ZmJHkU8UY9k2si1sOPcGg%3d%3d",
"onlinePaymentType": "",
"taxes": {"TPS":2.5,"TVQ":4.99},
"promoCodes":
[
{
"id": "O%2f9dsKKECyJSUWkOK37D8g%3d%3d",
"amount": 32.1
}
] ,
"shoppingCartTransactionID": "",
"isExternal": false,
"paymentTransactionID": "V3nIrMZqmh"
}
Description des champs
ATTENTION : La méthode nécessitent uniquement la valeur ‘’id’’ comme obligatoire. Les champs passés sont mis à jour, les champs qui ne sont pas renseignés ne sont simplement pas mis à jour.
Nom | Obligatoire | Commentaires/description |
id | Il s’agit de l’identifiant unique de la transaction. Une transaction est liée à une inscription (billingID) | |
billingID |
| Il s’agit de l’identifiant unique de l’inscription. Une inscription (billing) est potentiellement liée à plusieurs transactions. |
billingReferenceNumber |
| Le numéro de référence de la facture |
billingFamily | Précise à quelle famille de transaction appartient la facture : Enum BillingFamily
| |
transactionDate |
| Date à laquelle la transaction s’effectue String (YYYY-MM-DDTHH:MM:SSZ) |
priceName |
| Nom du prix de la transaction (ex. tarif Membre) (Type string –entre 5 à 250 caractères) |
currency |
| Devise de la transaction (Type string) |
basePrice |
| Tarif avant les taxes (Type Number) |
subscribeDiscountPercent |
| Pourcentage de rabais de la transaction (Type string – Number) |
lotPurchaseDiscountPercent | Pourcentage de rabais appliqué à la transaction (Type string – Number) | |
quantity | Quantité de places achetées (Type integer) | |
totalPrice |
| Tarif total incluant les taxes et rabais (Type string – Number) |
paymentMethodID |
| Identifiant de la méthode de paiement de la transaction (Type integer) |
paymentMethodType |
| Type paiement de la transaction (Type Integer) Enum PaymentType:
|
transactionType |
| Type de la transaction (type String) Enum TransactionType:
|
comment |
| Commentaire sur la transaction (type String) |
onlineTransactionID |
| Identifiant de la transaction en ligne – paiement électronique. (type String) |
billToName | Nom sur l'adresse de facturation (type string) | |
billingAddress |
| Adresse de la transaction (type String) |
billingAddress2 |
| Information additionnel sur l’adresse (app, boite à lettre, étage) (type String) |
billingPostalCode |
| Code postal de l’adresse de la transaction (type String) |
billingCity |
| Ville de l’adresse de la transaction (type String) |
billingCountryID |
| Pays de l’adresse de la transaction – Type Number (Voir Annexe 3 : Pays et États/Provinces) |
billingStateID |
| État ou province de l’adresse de la transaction – Type Number (Voir Annexe 3 : Pays et États/Provinces) |
balance |
| Balance de l’inscription (Type Number) |
authorizationStatus |
| Enum AuthorizationStatus:
|
paymentStatus |
| Enum PaymentStatus:
|
billingType |
| Enum BillingType :
|
userID |
| Identifiant de l’utilisateur associé à la transaction (Type string) |
providerId |
| Identifiant du fournisseur de service associé à la transaction (type string) |
workspaceid |
| Identifiant de la formation associé à la transaction (type string) |
workspaceInstanceId |
| Identifiant de la session associé à la transaction (type string) |
cohortId | Identifiant unique de la cohorte (type string) | |
programId | Identifiant unique du programme de formation (type string) | |
onlinePaymentType |
| Retourner par le système de paiement exemple, Moneris ou Braintree. Voir les valeurs de cartes possibles dans le tableau plus bas. |
isExternal |
| Indique s’il s’agit d’un remboursement qui a eu lieu dans un autre sytème (type boolean) |
taxes |
| (Taxes appliquées sur la transaction) Liste de taxes |
promoCodes |
| (Codes promotionnels appliqués sur la transaction) Liste de code promotionnel |
shoppingCartTransactionID | Dans le cas où il y a un panier avec plusieurs articles, c'est l'identifiant de la "master" transaction qui regroupe les différentes inscriptions et sur-laquelle la vraie transaction a été faite auprès du connecteur de paiement. | |
paymentTransactionID | L’identifiant de la transaction de paiement dont est issue une inscription ou un panier d'achats contenant plusieurs inscriptions. |
Transaction : transaction/getlist
https://www.domaine.com/lmsapi/transaction/getlist
ATTENTION : La méthode nécessite des dates en UTC puisque la conversion sera faite côté serveur. Un maximum de 1000 transactions sera retourné pour une demande excédant une journée.
/transaction/getlist (request) - Requête d’une liste de transactions
}
"filterDate": "2018-08-01 00:00:00" (Obligatoire),
"filterDateMax": "2018-08-29" (Sera remplacée par la date actuelle si non présent),
"filterTransactionType": "2"
}
/transaction/getlist (response) – Retourne la liste des transactions. (voir transaction/get pour le format)
Valeurs des types de cartes supportées par les connecteurs de paiements (onlinePaymentType)
Nom | Types de cartes et leurs codes |
Moneris | M = Mastercard V = Visa AX = American Express DC = Diners Card NO = Novus / Discover SE = Sears |
Paysafe | AM = American Express |
Braintree | “American Express” “Carte Blanche” “China UnionPay” “Discover” “Elo” “JCB” “Laser” “Maestro” “MasterCard” “Solo” “Switch” “Visa” “Unknown” |
Global Payments | VISA = Visa MC = MasterCard AMEX = American Express DINERS = Diners DISCOVER = Discover JCB = JCB UATP = UATP |
Inscriptions et transactions - Webhook
L’objet transaction est retourné par les webhook avec les données suivantes :
{
"notificationType": 1,
"portal": {
"id": "IW%2fU8RKO1T7UjasbUcn8rQ%3d%3d",
"title": {
"texts": [{
"text": "Portail de formation",
"languageId": 1
}
],
"IsHaveText": true
},
"subTitle": {
"texts": [{
"text": "Tellement le meilleur portail",
"languageId": 2
}
],
"IsHaveText": true
},
"description": {
"texts": [{
"text": "",
"languageId": 1
}
],
"IsHaveText": true
},
"coverID": 8,
"allowNewAccount": true,
"creationDate": "0001-01-01T00:00:00",
"url": "portailpreprod.sviesolutions.com / JGTHINKWITHPORTALS",
"name": "Votre portail de formation",
"language": 1,
"branchID": "vrj0IrWe0HF%2bK9OKGpDF5A%3d%3d",
"hasCustomLogo": true,
"lastModificationDate": "0001-01-01T00:00:00",
"defaultBranchID": "vrj0IrWe0HF % 2bK9OKGpDF5A%3d%3d",
"isDefaultPortal": true,
"displayType": 1
},
"user": {
"id": "czYuG21TjcY7hETmR3TQHg%3d%3d",
"password": null,
"login": "Brambo",
"firstName": "Brent",
"lastName": "Rambo",
"language": 1,
"email": "karl.bouchard @ sviesolutions.com",
"companyName": null,
"functionTitle": null,
"phoneHome": null,
"phoneMobile": null,
"phoneWork": null,
"phonePublic": 0,
"timeZone": 10,
"address": "690 Rue Saint - Joseph Est",
"address2": null,
"postalCode": "G1K 3B9",
"city": "Québec",
"countryId": 37,
"stateId": 11,
"customFields": {
"Membre": null,
"NbYearService": 0,
"DateEmbauche": "0001-01-01T00:00:00",
"IdUnique": null
}
},
"workspaceInstance": {
"id": "7Zi3zYvuHTZ7YLK7TQjdlQ%3d%3d",
"name": "33434a",
"creationDate": "0001-01-01T00:00:00",
"startDate": "0001-01-01T00:00:00",
"endDate": "0001-01-01T00:00:00",
"minParticipants": 0,
"maxParticipants": 0,
"isOverBookingSubscription": false,
"workspaceId": "vBW5xMw1VQ2A8DFaNy22zA%3d%3d",
"nbUsersSubbed": -1,
"nbUsersQueue": -1
},
"workspace": {
"id": "vBW5xMw1VQ2A8DFaNy22zA%3d%3d",
"creationDate": "2016-11-16T14:52:27.353",
"name": "Ma formation",
"categoryId": "",
"visibilityType": 0,
"maxParticipants": 0,
"minParticipants": 0,
"type": "vBW5xMw1VQ2A8DFaNy22zA%3d%3d",
"providerId": "Mw1VQ2A8DFaNy22zA%3d%3d",
"language": 1,
"description": "",
"subscriptionType": 0,
"startDate": "0001-01-01T00:00:00",
"endDate": "0001-01-01T00:00:00",
"isOverBookingSubscription": true,
"authorizationType": 0,
"enrolmentType": 0,
"externalLink": "monURL",
"keywords": "mot, clef, formation",
"showAvailableSubscriptions": true,
"certificateId": "",
"credits": 0.0,
"nbUsersSubbed": -1,
"nbUsersQueue": -1,
"isAutodeclaration": true,
"accreditationNumber": "12345-e",
"autodeclarationEndDate": "0001-01-01T00:00:00",
"customFields": {
"Champ1": "Snow",
"Test": ""
}
},
"transaction": {
"id": "Y2E5wzApua",
"billingID": "YxLO % 2fUEIoCFRX7S3vH0Yyw%3d%3d",
"transactionDate": "0001-01-01T00:00:00",
"priceName": "",
"currency": "cdn",
"basePrice": 5,
"subscribeDiscountPercent": 0,
"totalPrice": 0,
"paymentMethodID": 21,
"paymentMethodType": 0,
"transactionType": 0,
"comment": "",
"onlineTransactionID": "",
"billingAddress": "690 Rue Saint - Joseph Est",
"billingAddress2": null,
"billingPostalCode": "G1K 3B9",
"billingCity": "Québec",
"billingCountryID": 37,
"billingStateID": null,
"balance": 0,
"authorizationStatus": 0,
"paymentStatus": 0,
"billingType": 1,
"userID": "czYuG21TjcY7hETmR3TQHg%3d%3d",
"taxes": {
"TPS": 2.32,
"TVQ": 3.35
},
"promoCodes":
[
{
"id": "O%2f9dsKKECyJSUWkOK37D8g%3d%3d",
"amount": 32.1
}
]
}
}
Description des codes d’erreurs de transaction
Numéro | Message | Commentaires/description |
600 | Required id | Vous devez fournir un identifiant pour la transaction. |
601 | Invalid id | L’identifiant fourni pour la transaction est invalide. |