Xsolla-logo

Annulation de commande (avec données de paiement et de transaction)Webhook POST

Xsolla envoie le webhook order_canceled à l'URL spécifiée lorsque le paiement est annulé par l'utilisateur, le partenaire ou automatiquement.

Le webhook order_canceled contient des informations sur les objets retournés, les données de paiement et les détails de la transaction annulée.

Le webhook order_canceled n'est pas envoyé si le paiement n'aboutit pas, par exemple :

  • le formulaire de paiement a été ouvert, mais l'utilisateur n'a pas procédé au paiement de la commande ;
  • le formulaire de paiement a été ouvert, mais des erreurs se sont produites lors du paiement.

Il est recommandé de veiller à ce que la temps de traitement du webhook order_canceled soit inférieur à 3 secondes.

Request
Request Body schema: application/json
notification_type
required
string

Type de notification.

required
Array of version = 1 (object) or version = 2 (object)

Liste des objets achetés par l'utilisateur.

The set of parameters included in the array depends on the webhook version. Version 2 includes additional parameters: is_free, is_bonus, and is_bundle_content. To switch the version, pass its number in the version parameter in the Update information about webhook settings API call.

Array
One of:
sku
required
string

ID unique de l'objet. Pour les objets de type game_key, une valeur au format sku_drm est utilisée.

type
required
string

Type de biens. Valeurs possibles : virtual_good, virtual_currency, game_key, bundle. Pour les biens de type bundle, y compris les packages de monnaie virtuelle, le tableau des objets affichera :

  • les paramètres du lot ou du package de monnaie virtuelle ;
  • les objets inclus dans le lot ou la monnaie incluse dans le package.
Enum: "virtual_good" "virtual_currency" "game_key" "bundle"
quantity
required
integer

Quantité d'objets.

amount
required
string

Coût total des objets en fonction de leur quantité.

required
Array of objects

Promotions appliquées. Si aucune promotion n'a été appliquée, un tableau vide est passé dans le paramètre.

Array
amount_with_discount
string

Coût total des objets bénéficiant d'une remise.

amount_without_discount
string

Coût total des objets sans remise.

sequence
integer

Ordre d'application de promotions

is_pre_order
required
boolean

Si la valeur est true, l'objet est en précommande.

custom_attributes
object

Un JSON contenant les attributs des objets et leurs valeurs.

required
object

Informations sur commande.

id
required
integer

Identifiant unique de la commande de l'utilisateur côté Xsolla.

mode
required
string

Mode de paiement. La valeur default est utilisée pour les paiements réels et sandbox pour les paiements test.

Enum: "default" "sandbox"
currency_type
required
string

Type de devise de paiement. Pour une commande gratuite, la valeur unknown est spécifiée.

Enum: Description
real

pour une devise réelle

unknown

pour une commande gratuite

virtual

pour la monnaie virtuelle

currency
required
string

Devise de commande. L'UGS est utilisée pour la monnaie virtuelle et un code à trois lettres selon la norme ISO 4217 pour les devises réelles.

amount
required
string

Coût total du panier en fonction de la devise sélectionnée.

status
required
string

Statut de la commande.

platform
required
string or null

Plateforme de paiement. La valeur xsolla est utilisée pour les paiements via Xsolla. Pour les autres paiements, la valeur correspondant au nom de la plateforme de publication de jeux est utilisée : playstation_network, xbox_live, pc_standalone, nintendo_shop, google_play, app_store_ios, android_standalone, ios_standalone, android_other, ios_other, pc_other.

Enum: "xsolla" "playstation_network" "xbox_live" "pc_standalone" "nintendo_shop" "google_play" "app_store_ios" "android_standalone" "ios_standalone" "android_other" "ios_other" "pc_other"
comment
required
string or null

Commentaire de l'utilisateur sur la commande.

invoice_id
required
string or null

ID de facture pour les paiements en devises réelles. Les paiements en monnaie virtuelle ou les biens gratuits ont une valeur null.

required
Array of objects

Promotions appliquées. Si aucune promotion n'a été appliquée, un tableau vide est passé dans le paramètre.

Array
amount_with_discount
string

Coût total des objets bénéficiant d'une remise.

amount_without_discount
string

Coût total des objets sans remise.

sequence
integer

Ordre d'application de promotions

Array of objects

Coupons appliqués. Si aucun coupon n'a été appliqué, le tableau n'est pas renvoyé.

Array
code
string

Code du coupon appliqué.

external_id
string

External ID.

Array of objects

Codes promo appliqués. Si aucun code promo n'a été appliqué, le tableau n'est pas renvoyé.

Array
code
string

Code promo appliqué.

external_id
string

External ID.

required
object

Informations sur l'utilisateur.

external_id
required
string

ID utilisateur.

email
required
string

Adresse e-mail de l'utilisateur.

object

Données de la transaction et du paiement.

notification_type
required
string

Type de notification.

required
object

Détails de la transaction (objet).

agreement
integer

ID de contrat.

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_order_id
string

ID de paiement dans le système de paiement.

required
object

Informations sur le paiement (objet).

object

Retenue à la source appliquée dans certains pays pour les transactions transfrontalières (objet).

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

percent
number <float>

Taux de retenue à la source du pays, en %.

object

Retenue à la source directe.

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

percent
number <float>

Taux de retenue à la source directe.

object

Montant payé par l'utilisateur (objet).

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

object

Frais du système de paiement.

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

object

Montant débité du système de paiement.

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

object

Détails de virement (objet).

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

payout_currency_rate
string

Taux de change entre les devises de paiement et de virement.

object

Données sur les frais de rapatriement imposés à Xsolla par des tiers.

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

object

Taxe de vente (objet ; États-Unis et Canada uniquement).

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

percent
number <float>

Taux de taxe de vente.

object

Montant total de la commission d'acquisition d'utilisateurs déduits pour les achats effectués via les réseaux d'affiliation et les influenceurs (objet).

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

percent
number <float>

Taux de la commission d'acquisition de l'utilisateur, en %.

object

Informations sur la TVA (objet ; UE uniquement).

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

percent
number <float>

Taux de TVA.

object

Montant débité du solde Xsolla.

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

object

Frais Xsolla (objet).

amount
number <float>

Montant.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

object

Informations sur l'achat (objet).

required
object

Prix total d'achat (objet).

amount
number <float>

Montant total du paiement.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

object

Informations de l'abonnement (objet).

amount
number <float>

Prix en monnaie réelle.

currency
string

Devise. Code de devise à trois lettres selon la norme ISO 4217.

date_create
string

Date de création de l'abonnement. Date et heure selon la norme ISO 8601.

plan_id
string

ID de plan (externe si le plan a été créé via API).

subscription_id
integer

ID d'abonnement dans la base de données Xsolla.

tags
Array of strings

Balises du plan.

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.

custom_parameters
object

Informations supplémentaires.

Responses
200

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.).

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \
-d '{
    "notification_type": "order_canceled",
    "items": [
      {
        "sku": "com.xsolla.v.item_1",
        "type": "virtual_good",
        "is_pre_order": false,
        "quantity": 3,
        "amount": "1000",
        "promotions": [
          {
            "amount_without_discount": "6000",
            "amount_with_discount": "5000",
            "sequence": 1
          },
          {
            "amount_without_discount": "5000",
            "amount_with_discount": "4000",
            "sequence": 2
          }
        ],
        "custom_attributes": {
            "purchased": 0,
            "attr": "value"
          }
      },
      {
        "sku": "com.xsolla.v.item_new_1",
        "type": "bundle",
        "is_pre_order": false,
        "quantity": 1,
        "amount": "1000",
        "promotions": []
      },
      {
        "sku": "com.xsolla.gold_1",
        "type": "virtual_currency",
        "is_pre_order": false,
        "quantity": 1500,
        "amount": "[null]",
        "promotions": []
      }
    ],
    "order": {
      "id": 1,
      "mode": "default",
      "currency_type": "virtual",
      "currency": "sku_currency",
      "amount": "2000",
      "status": "paid",
      "platform": "xsolla",
      "comment": null,
      "invoice_id": "1",
      "promotions": [
        {
          "amount_without_discount": "4000",
          "amount_with_discount": "2000",
          "sequence": 1
        }
      ],
      "promocodes": [
        {
          "code": "promocode_some_code",
          "external_id": "promocode_sku"
        }
      ],
      "coupons": [
        {
          "code": "WINTER2021",
          "external_id": "coupon_sku"
        }
      ]
    },
    "user": {
      "external_id": "id_xsolla_login_1",
      "email": "email@example.com"
    },
    "billing": {
      "notification_type": "refund",
      "settings": {
        "project_id": 18404,
        "merchant_id": 2340
      },
      "purchase": {
              "subscription": {
                  "plan_id": "b5dac9c8",
                  "subscription_id": "10",
                  "date_create": "2014-09-22T19:25:25+04:00",
                  "currency": "USD",
                  "amount": 9.99
              },
              "total":{
                  "currency": "USD",
                  "amount": 200
              }
          },
      "transaction": {
              "id": 1,
              "external_id": 1,
              "dry_run": 1,
              "agreement": 1
          },
      "refund_details": {
              "code": 4,
              "reason": "Potential fraud"
          },
      "payment_details": {
              "sales_tax": {
                  "currency": "USD",
                  "amount": 0
              },
              "direct_wht": {
                  "currency": "USD",
                  "amount": 0.70
              },
              "xsolla_fee": {
                  "currency": "USD",
                  "amount": "10"
              },
              "payout": {
                  "currency": "USD",
                  "amount": "200"
              },
              "payment_method_fee": {
                  "currency": "USD",
                  "amount": "20"
              },
              "payment": {
                  "currency": "USD",
                  "amount": "230"
              },
              "repatriation_commission": {
                  "currency": "USD",
                  "amount": 10
              }
          }
    }
}'