Transactions (Lära)

TABLE DES MATIÈRES
Transaction/get
Transaction/getlist
Transaction : transaction/getlist
Inscriptions et transactions - Webhook
Description des codes d’erreurs de transaction


Transactions

Les « transactions » servent à diviser l'offre de formation des catalogues de votre environnement en sujets, et sont nommées « transactions » dans l'API.

Transaction/get

Permet d'obtenir des informations sur une transaction de votre environnement.
Adresse de l'appel API : https://.../lmsapi/transaction/get

Requête

Exemple de contenu d'appel de requête des informations d'une transaction :

{
"id": "I2Oa5s9JDCGvE7BtvUfxrg%3d%3d"
}

Description des champs

Nom

Obligatoire

Commentaires/description

idX

Identifiant unique de la transaction.
(Type String)

Réponse

Exemple du contenu d'appel de réponse de requête des informations d'une transaction :

{
  "id": "I2Oa5s9JDCGvE7BtvUfxrg%3d%3d",
  "billingID": "vBW5xMw1VQ2A8DFaNy22zA%3d%3d",
  "billingReferenceNumber": 123,
  "billingFamily" : 1,
  "transactionDate": "2025-11-11T13:05:29.963",
  "priceName": "Tarif public",
  "currency": "cdn",
  "basePrice": 50.0,
  "subscribeDiscountPercent": 10.0,
  "lotPurchaseDiscountPercent": 0.0,
  "quantity": 1,
  "totalPrice": 52.49,
  "paymentMethodID": 5,
  "paymentMethodType": 0,
  "transactionType": 1,
  "comment": "Mon commentaire",
  "onlineTransactionID": "mtp198yt",
  "billToName": "Fraise Laframboise",
  "billingAddress": "690, Saint-Joseph Est",
  "billingAddress2": "bur. 400",
  "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

Nom 

Obligatoire

Commentaires/description

id

X

Identifiant unique de la transaction. Une transaction est liée à une inscription (billingID).

billingID

 

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 émise pour cette transaction.

billingFamily
Précise quelle composante du système touche l'inscription :
  • 1 = Inscription
  • 2 = Demande de dispense (règlement)
  • 3 = Achat en lot
  • 4 = Transaction par panier d'achat (plusieurs inscriptions)
  • 5 = Autodéclaration

transactionDate

 

Date à laquelle la transaction a été effectuée.

(Type String YYYY-MM-DDTHH:MM:SSZ)

priceName

 

Nom du tarif utilisé pour mener la transaction.

(Type String, entre 5 à 250 caractères) 

currency

 

Devise utilisée pour mener la transaction

(Type String).

basePrice

 

Montant avant les taxes.

(Type Number) 

subscribeDiscountPercent

 

Pourcentage de rabais appliqué à la transaction.

(Type Number)

lotPurchaseDiscountPercent
Pourcentage de rabais d'achat en lot appliqué à la transaction.

(Type Number)

quantity
Quantité de places achetées.
(Type Number)

totalPrice

 

Montant total incluant les taxes et le ou les rabais.

 (Type Number)

paymentMethodID

 

Identifiant de la méthode de paiement de la transaction.

(Type String)

paymentMethodType

 

Type paiement de la transaction.

(Type Number)

  • 1 = Paiement en argent comptant
  • 2 = Paiement par chèque
  • 3 = Paiement par carte de crédit
  • 4 = Paiement par facturation

transactionType

 

Type de la transaction

(Type Number)

  • 0 = Inscription
  • 1 = Paiement en attente
  • 2 = Paiement
  • 3 = Annulation
  • 4 = Remboursement en attente
  • 5 = Remboursement
  • 6 = Paiement différé, utilisé pour les inscriptions utilisant la combinaison de l'approbation et du paiements par facturation
  • 7 = Paiement différé remboursé, utilisé lors du remboursement d'une transaction avec paiement par facturation

comment

 

Note administrative laissée sur la transaction.

(Type String)

onlineTransactionID

 

Identifiant unique de la transaction en ligne (fournisseur de paiement électronique).

(Type String)

billToName
Champ « Facturer au nom de » sur l'adresse de facturation.
(Type String)

billingAddress

 

Ligne 1 de l'adresse de facturation.

(Type String)

billingAddress2

 

Ligne 2 de l'adresse de facturation.

(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:

  • 0 = Authorized
  • 1 = Refused
  • 2 = WaitingAuthorization

 

paymentStatus

 

Enum PaymentStatus:

  • 0 = None
  • 1 = PaymentPending
  • 2 = PaymentDone
  • 3 = Canceled
  • 4 = RefundPending
  • 5  =Refund

billingType

 

Enum BillingType :

  • 0 = None
  • 1 = Billed

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/getlist

Permet d'obtenir des informations sur une liste de transactions de votre environnement.
Adresse de l'appel API : https://.../lmsapi/transaction/getlist

Requête

Exemple de contenu d'appel de requête des informations d'une liste de catégorie :

}
  "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"
}

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.

Description des champs

Nom

Obligatoire

Commentaires/description

filterDateX

Date de création de la catégorie. L'appel retournera toutes les catégories créées après ce moment.
(String YYYY-MM-DDTHH:MM:SSZ)

filterDateMax

filterTransactionType

Réponse

Exemple du contenu d'appel de réponse de requête des informations d'une liste de transactions :

[
 {
  "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"
 },
{...}
]

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
DI = Discover
JC = JCB
MC = Mastercard
MD = Maestro
SO = Solo
VI = Visa
VD = Visa Debit
VE = Visa Electron

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.

Cette réponse a-t-elle été utile ? Oui Non

Envoyer vos commentaires
Désolés de n'avoir pu vous être utile. Aidez-nous à améliorer cet article en nous faisant part de vos commentaires.