CashBack

Ce contenu a été traduit par une intelligence artificielle. Si vous repérez une erreur, merci de nous le signaler pour nous aider à améliorer notre support. En cas de doute, la version originale en anglais fait foi.

Le Cashback est un service proposé lors d’un paiement standard qui permet à un titulaire de carte de recevoir un montant en espèces en plus de son achat, le tout en une seule transaction. En substance, cela permet au client de retirer de l’argent de son compte bancaire directement au point de vente (POS).


1. Disponibilité et contraintes

Le Cashback n’est pas disponible universellement. Sa mise en œuvre est soumise à des règles strictes et à des prérequis techniques :

  • Disponibilité géographique : Le service doit être supporté par le réseau de paiement local et la banque acquéreuse. Si le réseau (Scheme) ou l’acquéreur ne le supporte pas, la transaction sera rejetée.

  • Limites réglementaires : Les réglementations locales imposent souvent des plafonds sur le montant maximum d’espèces pouvant être retiré par transaction.

2. Fonctionnement

  1. Le POS envoie le montant total (Achat + Cashback) ainsi que la valeur distincte du champ CashBackAmount.

  2. Le réseau de paiement autorise le montant total (vente + espèces).

  3. Le terminal approuve la transaction et renvoie la PaymentResponse finale.

  4. Le POS finalise la vente et le commerçant remet physiquement les espèces au client.

3. Requête de Cashback (CashBack Request)

Le Cashback est intégré directement dans le flux de paiement standard, ce qui nécessite la configuration de champs spécifiques dans la requête PaymentRequest.

En-tête (Header)

L’objet standard SaleToPOIRequest.MessageHeader, avec le champ MessageClass défini sur Service et MessageCategory sur Payment.

Corps (Body)

Pour activer le Cashback, vous devez préparer un message PaymentRequest standard, mais avec le champ CashBackAmount renseigné au sein de l'objet PaymentTransaction.AmountsReq. Cela permet de déclarer explicitement le montant en espèces que le client souhaite recevoir.

[!IMPORTANT] Calcul du montant : Le montant total (RequestedAmount) demandé dans l'objet AmountsReq doit correspondre à la somme du montant de l'achat et du montant du cashback demandé.

Le JSON ci-dessous illustre une transaction de Cashback [Note : le texte original mentionnait "Cash Advance", mais il s'agit bien ici de la configuration pour le Cashback].

Payment request example with CashBack amount
{
  "MessageHeader": {
    "MessageCategory": "Payment",
    "MessageClass": "Service",
    "MessageType": "Request",
    "POIID": "Terminal_01",
    "ProtocolVersion": "3.1",
    "SaleID": "POS001",
    "ServiceID": "86"
  },
  "PaymentRequest": {
    "PaymentData": {
      "PaymentType": "Normal"
    },
    "PaymentTransaction": {
      "AmountsReq": {
        "Currency": "EUR",
        "RequestedAmount": 12.34
        "CashBackAmount": 20.00
      }
    },
    "SaleData": {
      "SaleTransactionID": {
        "TimeStamp": "2025-11-29T22:05:55.029",
        "TransactionID": "12345"
      }
    }
  }
}

Review the full schema on the API specification page for required fields.

4. Réponse CashBack

Lorsque vous recevez la réponse de paiement, vérifiez le champ PaymentResponse.Response.Result :

  • Success : signifie que l'émetteur a autorisé à la fois le paiement et le cashback.

    • Le montant figurant dans le champ PaymentResult.AmountsResp.CashBackAmount correspond à la somme que vous devez remettre au client en espèces.

  • Partial : signifie que l'émetteur a autorisé le paiement, mais a refusé le cashback.