Xsolla-logo

Successful payment for order (with payment and transaction details)Webhook POST

Xsolla envoie le webhook order_paid à l'URL spécifiée lorsque l'utilisateur effectue le paiement de la commande avec succès.

Le webhook order_paid contient des informations sur les objets achetés, les données du paiement et les détails de la transaction.

Le webhook order_paid 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_paid soit inférieur à 3 secondes.

Les réponses attendues sont décrites dans la section Réponses. Vous pouvez utiliser d'autres codes de réponse. En fonction du code de réponse et de la connexion à la fonctionnalité de remboursement automatique de paiement, la logique de traitement du webhook côté Xsolla est la suivante :

Code de réponse Remboursement automatique de paiement désactivé (par défaut) Remboursement automatique de paiement activé
400, 401, 402, 403, 404, 409, 422, 415 Aucune action Remboursement automatique à l'utilisateur
200, 201, 204 Aucune action Aucune action
Code différent ou absence de réponse au webhook Plusieurs webhooks sont envoyés à des intervalles de temps spécifiques : 2 tentatives à intervalles de 5 minutes, 7 tentatives à intervalles de 15 minutes, 10 tentatives à intervalles de 60 minutes. Plusieurs webhooks sont envoyés à des intervalles de temps spécifiques : 2 tentatives à intervalles de 5 minutes, 7 tentatives à intervalles de 15 minutes, 10 tentatives à intervalle de 60 minutes. Si tous les webhooks sont envoyés mais qu'aucune réponse n'est reçue, l'utilisateur est automatiquement remboursé.

Pour connecter la fonctionnalité de remboursement automatique, contactez vos responsables de 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
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.

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. Pour obtenir des informations détaillée, reportez-vous à la FAQs.

id
integer

ID de transaction.

payment_date
string

Date de paiement.

payment_method
integer

ID de mode de paiement.

payment_method_name
string

Nom de mode de paiement.

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 sur le coupon (objet ; si un coupon a été utilisé lors de la création de l'abonnement).

campaign_code
string

Code de campagne.

coupon_code
string

Code de coupon.

object

Informations sur le cadeau (objet).

giver_id
string

ID du donneur.

hide_giver_from_receiver
string

Détermine l'affichage de l'identité du donneur au destinataire.

message
string

Message du donneur.

receiver_email
string

Adresse e-mail du destinataire du cadeau.

receiver_id
string

ID du destinataire du cadeau.

Array of objects

Promotions appliquées à cette transaction.

Array
id
integer

ID de promotion.

technical_name
string

Nom technique de la promotion.

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.

date_next_charge
string

Prochaine date de facturation. Date et heure selon la norme ISO 8601.

plan_id
string

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

product_id
string

ID de produit (s'il est passé dans le jeton d'accès).

subscription_id
integer

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

tags
Array of strings

Balises du plan.

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_paid",
    "items": [
      {
        "sku": "com.xsolla.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.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": "gc_user@xsolla.com"
    },
    "billing": {
      "notification_type": "payment",
      "settings": {
        "project_id": 18404,
        "merchant_id": 2340
      },
      "purchase": {
          "subscription": {
              "plan_id": "b5dac9c8",
              "subscription_id": "10",
              "product_id": "Demo Product",
              "date_create": "2014-09-22T19:25:25+04:00",
              "date_next_charge": "2014-10-22T19:25:25+04:00",
              "currency": "USD",
              "amount": 9.99
          },
          "total": {
              "currency": "USD",
              "amount": 200
          },
          "promotions": [{
              "technical_name": "Demo Promotion",
              "id": 853
          }],
          "coupon": {
              "coupon_code": "ICvj45S4FUOyy",
              "campaign_code": "1507"
          },
      "transaction": {
          "id": 1,
          "external_id": 1,
          "payment_date": "2014-09-24T20:38:16+04:00",
          "payment_method": 1,
          "payment_method_name": "PayPal",
          "payment_method_order_id": 1234567890123456789,
          "dry_run": 1,
          "agreement": 1
      },
      "payment_details": {
          "payment": {
              "currency": "USD",
              "amount": 230
          },
          "vat": {
              "currency": "USD",
              "amount": 0,
              "percent": 20
          },
          "sales_tax": {
              "currency": "USD",
              "amount": 0,
              "percent": 0
          },
          "direct_wht": {
              "currency": "USD",
              "amount": 0,
              "percent": 0
          },
          "payout_currency_rate": "1",
          "payout": {
              "currency": "USD",
              "amount": 200
          },
          "country_wht": {
              "currency": "USD",
              "amount": 2,
              "percent": 10
          },
          "user_acquisition_fee": {
              "currency": "USD",
              "amount": 2,
              "percent": 1
          },
          "xsolla_fee": {
              "currency": "USD",
              "amount": 10
          },
          "payment_method_fee": {
              "currency": "USD",
              "amount": 20
          },
          "repatriation_commission": {
              "currency": "USD",
              "amount": 10
          }
      },
      "custom_parameters": {
          "parameter1": "value1",
          "parameter2": "value2"
          }
      }
   }
}'