Remboursement sur carte enregistrée
Vue d'ensemble
Un remboursement carte enregistrée permet d’annuler un achat ou une transaction preAuthorization (préautorisation) déjà complétée. Vous pouvez rembourser n’importe quel montant jusqu’au montant total de la transaction.
Les remboursements carte enregistrée peuvent être effectués avec ou sans la carte présente, sauf si une carte UnionPay ou Interac est utilisée, auquel cas la carte doit être présente. Pour initier un remboursement carte enregistrée, vous devez fournir le orderId (identifiant de commande) et le transactionId (identifiant de transaction) de la transaction originale. En cas d’échec du remboursement carte enregistrée (erreur de communication, autre problème), un remboursement carte présente peut être effectué via l’application PDV.
Pour effectuer un remboursement carte présente sans qu’il soit lié à une transaction spécifique, consultez la section Commande de remboursement carte présente.
Structure de la requête
| Élément | Type (Type) | Description (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 qui contient 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 l’achat | 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 les transactions liées | V50 | Optionnel |
| terminalId | String (chaîne) | ID du terminal de destination | F8 | Optionnel |
| userName | String (chaîne) | Identifiant unique pour le caissier / l’utilisateur | V30 | Optionnel |
| customIdData | String (chaîne) | Champ personnalisé | V50 | Optionnel |
| action | String (chaîne) | "refund" (remboursement) | V50 | Obligatoire |
| totalAmount | String (chaîne) | Montant total de la transaction | V9 | Obligatoire |
| dynamicDescriptor | String (chaîne) | Description définie par le commerçant | V20 | Optionnel |
| progressStatus | String (chaîne) | Si la valeur est définie sur "True" (valeur booléenne vraie), le terminal renverra la progression à l’ECR Remarque : cette fonctionnalité est uniquement disponible avec l’intégration directe | V5 | Optionnel |
| modifier | String (chaîne) | Énumération qui classe davantage la transaction | V24 | Optionnel |
| language | String (chaîne) | Valeurs valides "EN" et "FR". Si aucune valeur n’est fournie, l’application de paiement utilisera la langue depuis le TMS | F2 | Optionnel |
| subtotalAmount | String (chaîne) | Montant sans taxes ni frais | V9 | Optionnel |
| taxes | Array (tableau) | Maximum de 5 objets de taxes | ||
| taxName | String (chaîne) | Nom à afficher sur le reçu (TVH, TPS, etc.) | V15 | Optionnel |
| taxAmount | String (chaîne) | Montant correspondant | V9 | Conditionnel |
{
"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":"refund",
"totalAmount":"example_totalAmount"
}
]
}
}Structure de la réponse
| Élément | Type (Type) | Description (Description) | Taille | Obligatoire |
|---|---|---|---|---|
| apiVersion | String (chaîne) | Numéro de version de l’API | V20 | Obligatoire |
| statusCode | String (chaîne) | Code d’état pour l’ensemble de la requête de transaction | V4 | Obligatoire |
| status | String (chaîne) | Description du code d’état | V4 | 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 qui contient toutes les requêtes de transaction | ||
| response | Array (tableau) | Contient les données applicables à la requête de transaction | ||
| orderId | String (chaîne) | Identifiant unique pour cette requête | V50 | Obligatoire |
| transactionId | String (chaîne) | Identifiant unique pour cette requête | 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 les transactions liées | V50 | Optionnel |
| action | String (chaîne) | "refund" (remboursement) | V50 | Obligatoire |
| statusCode | String (chaîne) | Code d’état pour la requête individuelle | V4 | Obligatoire |
| status | String (chaîne) | Description du code d’état individuel | V50 | Obligatoire |
| totalAmount | String (chaîne) | Répétition du montant total de la transaction provenant de la requête | V9 | Obligatoire |
| approvedAmount | String (chaîne) | Montant du paiement reçu / approuvé | V9 | Conditionnel |
| tenderType | String (chaîne) | Type de paiement : crédit (crédit), débit (débit), cadeau (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 retourné 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 (PAN) masqué | V21 | Conditionnel |
| completed | String (chaîne) | "true" (valeur booléenne vraie) ou "false" (valeur booléenne fausse) | 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) | Les choix de remise du reçu au titulaire de la 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 |
| receiptExtension | String (chaîne) | Données de transaction DCC pour les reçus au format compact | V275 | Conditionnel |
{
"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":"refund",
"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.

