Finalisation de préautorisation
Vue d'ensemble
La commande preAuthorization completion (finalisation de préautorisation) vous permet de finaliser une transaction de préautorisation pour un montant inférieur ou égal à celui défini dans le champ totalAmount (montant total) lors de la requête initiale. Une fois complétée, toute portion inutilisée de la retenue sera libérée et remise à disposition sur le solde du client. Pour savoir comment initier une requête de préautorisation, consultez le Préautorisation.
Si le montant est inférieur à 1 500,00 $, le commerçant peut finaliser la préautorisation, peu importe le montant initial. Si le montant est supérieur ou égal à 1 500,00 $, le montant de finalisation doit être inférieur à quatre fois le montant de la préautorisation.
Si le montant de finalisation est supérieur ou égal à 1 500,00 $ et supérieur ou égal à quatre fois le montant de la préautorisation, le commerçant recevra un avertissement. En revenant à l’écran de détails de transaction, le commerçant pourra refaire la finalisation pour un montant plus faible ou supprimer la préautorisation existante et en créer une nouvelle avec un montant plus élevé.
REMARQUE
La finalisation de préautorisation n’est pas prise en charge sur Interac.
Structure de la requête
| Élément | Type | Description | Taille | Obligatoire |
|---|---|---|---|---|
| apiVersion | String (chaîne) | Numéro de version de l’API | V20 | Obligatoire |
| istConfigCode | String (chaîne) | Code de configuration d’intégration fourni par Moneris | V25 | Obligatoire |
| dataId | String (chaîne) | Identifiant unique défini par le commerçant pour l’objet de données | V50 | Obligatoire |
| dataTimestamp | String (chaîne) | Date et heure de la requête (AAAA-MM-JJ HH:MM:SS) | F19 | Obligatoire |
| data | Object (objet) | Objet contenant toutes les requêtes de transaction | ||
| request | Array (tableau) | Contient les données applicables à la requête de transaction | ||
| orderId | String (chaîne) | ID de commande provenant de l’achat | V50 | Obligatoire |
| transactionId | String (chaîne) | ID de transaction provenant de la réponse de préautorisation | V50 | Obligatoire |
| idempotencyKey | String (chaîne) | Identifiant unique de transaction pour éviter une requête en double | V50 | Obligatoire |
| linkId | String (chaîne) | ID utilisé pour regrouper des transactions liées | V50 | Facultatif |
| terminalId | String (chaîne) | ID du terminal de destination | F8 | Facultatif |
| userName | String (chaîne) | Identifiant unique pour le caissier / l’utilisateur | V30 | Facultatif |
| customIdData | String (chaîne) | Champ personnalisé | V50 | Facultatif |
| action | String (chaîne) | « completion » | V50 | Obligatoire |
| totalAmount | String (chaîne) | Montant total de la transaction | V9 | Obligatoire |
| tipAmount | String (chaîne) | Montant du pourboire provenant du système ECR | V9 | Facultatif |
| dynamicDescriptor | String (chaîne) | Description définie par le commerçant | V20 | Facultatif |
| progressStatus | String (chaîne) | Si la valeur est définie sur « True », le terminal retournera la progression à l’ECR Remarque : Cette fonctionnalité est disponible uniquement en intégration directe | V5 | Facultatif |
| subtotalAmount | String (chaîne) | Montant sans taxes ni frais | V9 | Facultatif |
| taxes | Array (tableau) | Maximum de 5 objets de taxes | ||
| taxName | String (chaîne) | Nom à afficher sur le reçu (TVH, TPS, etc.) | V15 | Facultatif |
| taxAmount | String (chaîne) | Montant correspondant | V9 | Conditionnel |
Exemple de requête
{
"apiVersion": "3.0",
"istConfigCode": "example_istConfigCode",
"dataId": "example_dataId",
"dataTimestamp": "1969-12-31 23:59:59",
"data": {
"request": [
{
"orderId": "example_orderId",
"transactionId": "example_transactionId",
"idempotencyKey": "example_idempotencyKey",
"action": "completion",
"totalAmount": "example_totalAmount"
}
]
}
}Structure de la réponse
| Élément | Type | Description | Taille | Obligatoire |
|---|---|---|---|---|
| apiVersion | String (chaîne) | Numéro de version de l’API | V20 | Obligatoire |
| statusCode | String (chaîne) | Code d’état pour la demande de transaction globale | V4 | Obligatoire |
| status | String (chaîne) | Description du statusCode (code d’état) | V4 | Obligatoire |
| dataId | String (chaîne) | Identifiant unique défini par le marchand pour l’objet de données | V50 | Obligatoire |
| dataTimestamp | String (chaîne) | Date et heure de la demande (AAAA-MM-JJ HH:MM:SS) | F19 | Obligatoire |
| data | Object (objet) | Objet qui contient toutes les demandes de transaction | ||
| response | Array (tableau) | Contient les données applicables à la demande de transaction | ||
| orderId | String (chaîne) | Identifiant unique pour cette demande | V50 | Obligatoire |
| transactionId | String (chaîne) | Identifiant unique pour cette demande | V50 | Obligatoire |
| idempotencyKey | String (chaîne) | Identifiant unique de transaction pour éviter une demande en double | V50 | Obligatoire |
| linkId | String (chaîne) | Identifiant utilisé pour regrouper des transactions liées | V50 | Optionnel |
| action | String (chaîne) | "completion" | V50 | Obligatoire |
| statusCode | String (chaîne) | Code d’état pour la demande individuelle | V4 | Obligatoire |
| status | String (chaîne) | Description du statusCode (code d’état) individuel | V50 | Obligatoire |
| totalAmount | String (chaîne) | Écho du montant total de la transaction depuis la demande | V9 | Obligatoire |
| approvedAmount | String (chaîne) | Montant du paiement reçu / approuvé | V9 | Conditionnel |
| tenderType | String (chaîne) | Type de paiement : crédit, débit, cadeau, etc. | V50 | Obligatoire |
| cardType | String (chaîne) | Type de carte : V, M, P, AX, etc. | V2 | Conditionnel |
| cardName | String (chaîne) | Nom de la carte : Visa, MasterCard, Interac, Amex, etc. | V25 | Conditionnel |
| sequenceNum | String (chaîne) | Numéro de séquence | V18 | Conditionnel |
| realTimeUniqueId | String (chaîne) | Identifiant unique de transaction Moneris en temps réel | F15 | Conditionnel |
| responseCode | String (chaîne) | Code de réponse de l’hôte Moneris | V3 | Conditionnel |
| iso | String (chaîne) | Code de réponse ISO | V2 | Conditionnel |
| authCode | String (chaîne) | Code d’autorisation renvoyé par l’institution émettrice | V8 | Conditionnel |
| formFactor | String (chaîne) | Données spécifiques EMV | F2 | Conditionnel |
| maskedPan | String (chaîne) | Numéro de compte principal masqué (PAN) | V21 | Conditionnel |
| tipAmount | String (chaîne) | Montant du pourboire saisi par l’utilisateur | V9 | Conditionnel |
| completed | String (chaîne) | "true" (vrai) ou "false" (faux) | V5 | Obligatoire |
| receipt | String (chaîne) | Données du reçu financier envoyées en encodage ISO-8895-1 | V4000 | Conditionnel |
| receiptChoice | String (chaîne) | Options de remise du reçu au titulaire de carte au moment de la transaction. Valeurs valides : PRINT (option par défaut), EMAIL, SMS, NONE. | V10 | Conditionnel |
| terminalId | String (chaîne) | ID du terminal de destination | F8 | Obligatoire |
| dccOptIn | String (chaîne) | Ce champ indique une transaction de conversion dynamique de devise (DCC) | V5 | Optionnel |
| receiptExtension | String (chaîne) | Données de transaction DCC pour reçus au format compact | V275 | Conditionnel |
Exemple de réponse
{
"apiVersion": "3.0",
"statusCode": "example_statusCode",
"status": "example_status",
"dataId": "example_dataId",
"dataTimestamp": "1969-12-31 23:59:59",
"data": {
"response": [
{
"orderId": "example_orderId",
"transactionId": "example_transactionId",
"statusCode": "example_statusCode",
"status": "example_status",
"idempotencyKey": "example_idempotencyKey",
"completed": "true",
"responseCode": "example_responseCode",
"iso": "example_iso",
"approvedAmount": "example_approvedAmount",
"totalAmount": "example_totalAmount",
"tenderType": "example_tenderType",
"cardType": "example_cardType",
"sequenceNum": "example_sequenceNum",
"realTimeUniqueId": "example_realTimeUniqueId",
"authCode": "example_authCode",
"formFactor": "example_formFactor",
"maskedPan": "example_maskedPan",
"action": "completed",
"receipt": "example_receipt",
"receiptChoice": "PRINT",
"terminalId": "example_terminalId"
}
]
}
}Erreurs
Si votre réponse contient des erreurs, consultez la page Erreurs pour une description détaillée de chacune.

