Xsolla-logoXsolla Developers
ou
Vers le Compte éditeur

Paiement refuséWebhook POST

Si une transaction est refusée par un système de paiement, Xsolla envoie les informations de la transaction via un webhook de type ps_declined à l'URL de webhook que vous avez configurée. Ce webhook est déclenché lors de l'étape d'autorisation ou de traitement du paiement. Dans ce cas, le webhook de paiement\ order_paid n'est pas envoyé.

Raisons typiques de refus par le système de paiement :

  • L'autorisation de la carte a échoué (par exemple, le système de paiement n'a pas pu finaliser l'opération en raison d'une erreur technique ou d'une absence de réponse de la banque) ou a été refusée (par exemple, la banque a répondu, mais a rejeté la transaction pour fonds insuffisants ou coordonnées de carte non valides).
  • La vérification 3-D Secure a échoué, n'a pas été finalisée ou la confirmation de l'utilisateur est expirée.
  • Le processeur ou la banque acquéreuse est temporairement indisponible ou renvoie un refus définitif en raison d'une erreur irréversible, comme un compte fermé ou un numéro de carte non valide. Tenter de réexécuter la transaction sans corriger le problème sous-jacent ne donnera pas de résultat positif.

À ne pas confondre avec :

  • Les rejets Anti-Fraud, qui sont signalés via le webhook afs_reject.
  • Les remboursements et remboursements partiels après un paiement réussi, qui sont signalés via les webhooks refund et partial_refund.

Note

Pour recevoir le webhook ps_declined, contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.

Request
Request Body schema: application/json
notification_type
required
string

Type de notification.

required
object

Détails de la transaction (objet).

dry_run
integer

Transaction test. Le paramètre a la valeur 1 s'il s'agit d'une transaction test ou n'est pas envoyé si la transaction est réelle.

external_id
string

External ID de la transaction.

id
integer

ID de transaction.

payment_method
integer

ID de mode de paiement.

object

Détails du remboursement (objet).

author
string

Initiateur du remboursement. La valeur du champ est passée conformément au tableau :

Initiateur du remboursement Valeur du champ
Jeu (via API). API
Utilisateur du Compte éditeur (remboursement automatique). Adresse e-mail de l'utilisateur
Utilisateur du Compte éditeur (avec l'assistance du service client Xsolla). support@xsolla.com
Xsolla (avec l'assistance du service client Xsolla). support@xsolla.com
code
integer

ID de code.

reason
string

Motif de remboursement.

object

Paramètres personnalisés de projet (objet).

merchant_id
integer

ID de commerçant.

project_id
integer

ID de projet. Ce paramètre se trouve dans le Compte éditeur à côté du nom du projet.

object

Informations sur l'utilisateur (objet).

id
required
string

ID utilisateur.

country
string

Pays de l'utilisateur. Code pays à deux lettres majuscules selon la norme ISO 3166-1 alpha-2.

email
string

Adresse e-mail de l'utilisateur.

ip
string

IP de l'utilisateur.

name
string

Nom d'utilisateur.

Responses
204

Renvoyez pour indiquer un traitement réussi.

400

Renvoyez en cas d'erreur dans les informations fournies (par exemple, un paramètre requis manquant, une autorisation échouée, etc.). Dans ce cas, l'utilisateur est débité, mais l'achat échoue. Pour procéder au remboursement, contactez le service client Xsolla à support@xsolla.com.

500

Renvoyez pour indiquer des erreurs temporaires liées à vos serveurs.

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature 80543ba63e1e50cf05f15150fe75e7245da9a898' \
-d '{
  "notification_type": "ps_declined",
  "settings": {
    "project_id": "18404",
    "merchant_id": "2340"
  },
  "user": {
    "ip": "127.0.0.1",
    "email": "email@example.com",
    "id": "1234567",
    "country": "US"
  },
  "transaction": {
    "id": "1",
    "dry_run": "1",
    "payment_method": "1"
  },
  "refund_details": {
    "author": "support@xsolla.com",
    "code": "8",
    "reason": "Cancellation by the PS request",
    "reason_detail": "Insufficient funds"
  }
}'
Response samples
application/json
{
  • "error": {
    }
}