{
  "openapi": "3.0.0",
  "info": {
    "description": "# Présentation\n\n* **Version :** 2.0.0\n* **Serveurs** :\n  * `https://api.xsolla.com/api`\n\nPay Station permet aux partenaires de monétiser leurs produits en fournissant \naux utilisateurs une interface pratique pour payer les achats en jeu dans le \nmagasin de jeu. Pour configurer l'ouverture de l'interface de paiement, \nreportez-vous à ces [instructions](/fr/doc/pay-station/how-to/how-to-open-payment-ui/).\n\nPay Station API fournit les groupes d'appels suivants :\n- Jeton — comprend l'appel API pour générer un jeton avec des paramètres \n  utilisateur arbitraires pour le traitement ultérieur du paiement via \n  l'interface de paiement.\n- [Tokénisation](/fr/doc/pay-station/features/tokenization/) — comprend les appels \n  API pour traiter les paiements en toute sécurité sans ouvrir l'interface de \n  paiement ni impliquer l'utilisateur.\n- Rapports — comprend les appels API pour renvoyer des données sur les \n  transactions des utilisateurs, pour générer des rapports et pour répartir les \n  virements par devises.\n- Remboursement — comprend les appels API pour demander des remboursements \n  intégraux et partiels.\n- Test — comprend l'appel API pour tester le processus de chargeback.\n\nPour plus d'informations sur la configuration de l'interface de paiement, \nreportez-vous au [guide d'intégration de la solution \nPayments](/fr/solutions/payments/integration-guide/integration-flow/).\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>Vous pouvez également vous référer à la section <b>Xsolla Base API</b> dans la <a href=\"https://github.com/xsolla/xsolla-postman\">collection Postman</a> pour tester les appels API utilisés pour l'intégration.</p>\n</div>\n",
    "title": "Pay Station API",
    "version": "2.0"
  },
  "servers": [
    {
      "url": "https://api.xsolla.com/merchant/v2"
    }
  ],
  "tags": [
    {
      "name": "token",
      "x-displayName": "Jeton"
    },
    {
      "name": "tokenization",
      "x-displayName": "Tokénisation"
    },
    {
      "name": "reports",
      "x-displayName": "Rapports"
    },
    {
      "name": "refund",
      "x-displayName": "Remboursement"
    },
    {
      "name": "testing",
      "x-displayName": "Tests"
    }
  ],
  "paths": {
    "/merchants/{merchant_id}/projects/{project_id}/payments/{transaction_id}/chargeback": {
      "post": {
        "description": "Demande un chargeback en mode bac à sable :\n\n- Pour accéder au mode bac à sable, passez `\"mode\":\"sandbox\"` lors de \n  l'[obtention du jeton](https://developers.xsolla.com/fr/api/pay-station/operation/create-token/).\n\n- Le paiement test doit être effectué en mode bac à sable dans le même projet que \n  celui que vous utilisez pour les tests.\n\n- Le statut de la transaction doit être **autre que** `refunded` et `cancelled`.\n\n- Votre rôle dans le Compte éditeur doit être au moins **Gestionnaire \n  financier**. (Pour l'afficher, accédez à la section **Paramètres d'entreprise > \n  Utilisateurs**).\n\n- Référez-vous aux <a href=\"https://developers.xsolla.com/fr/doc/pay-station/testing\n  /test-one-time-purchase-in-\n  sandbox/#pay_station_testing_sandbox_bank_card_chargeback\">instructions</a> \n  pour plus d'informations sur ce scénario de test.\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>Référez-vous à la <a href=\"https://developers.xsolla.com/fr/doc/pay-station/testing/general-info/\">documentation</a> pour plus d'informations sur d'autres scénarios de test.</p>\n</div>\n",
        "operationId": "request-chargeback",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/transaction-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/empty-body"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content (Aucune erreur)."
          },
          "404": {
            "description": "Transaction introuvable."
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "message": "Not test payment. Chargeback is possible only for payments made in sandbox mode."
                },
                "schema": {
                  "properties": {
                    "message": {
                      "description": "Renvoie l'un des messages suivants :\n- Error processing chargeback. Try again or use another payment.\n- Payment not found. Check payment ID.\n- Payment does not belong to this project.\n- Not test payment. Chargeback is possible only for payments made in sandbox mode.\n- Incorrect payment status. Chargeback is possible only for payments with “Completed” status.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Unprocessable Entity (Paramètres de requête non valides)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Demander un chargeback",
        "tags": [
          "testing"
        ],
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports": {
      "get": {
        "description": "Récupère une liste de rapports financiers sur une période donnée.\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "get-reports",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/datetime-from-req"
          },
          {
            "$ref": "#/components/parameters/datetime-to-req"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "agreement_document_id": "Organization Inc_RUB",
                    "currency": "RUB",
                    "is_direct_payout": false,
                    "is_draft_by_agreement": true,
                    "month": "January",
                    "report_id": 57613,
                    "year": 2019
                  },
                  {
                    "agreement_document_id": "Organization Inc_EUR",
                    "currency": "USD",
                    "is_direct_payout": false,
                    "is_draft_by_agreement": true,
                    "month": "January",
                    "report_id": 57619,
                    "year": 2019
                  }
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Lire des rapports",
        "tags": [
          "reports"
        ],
        "x-admin": true,
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports/transactions/registry.{format}": {
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v3"
        }
      ],
      "get": {
        "description": "Renvoie une liste d'informations détaillées sur les transactions réussies et \nannulées pour une période donnée. Vous recevrez des informations sur les \npaiements, les frais, les taxes, les commandes et les utilisateurs. La liste \nest fournie au format JSON ou CSV. Cet appel API convient pour effectuer un \nrapprochement financier.\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "get-transactions",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/format"
          },
          {
            "$ref": "#/components/parameters/datetime-from-req"
          },
          {
            "$ref": "#/components/parameters/datetime-to-req"
          },
          {
            "$ref": "#/components/parameters/in-transfer-currency"
          },
          {
            "$ref": "#/components/parameters/show-total"
          },
          {
            "$ref": "#/components/parameters/merchant-of-records"
          },
          {
            "$ref": "#/components/parameters/project-id-query-param"
          },
          {
            "$ref": "#/components/parameters/show-dry-run"
          },
          {
            "$ref": "#/components/parameters/transfer-id"
          },
          {
            "$ref": "#/components/parameters/report-id"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit-req"
          },
          {
            "$ref": "#/components/parameters/transaction-status"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "payment_details": {
                      "chargebackPenalty": {
                        "amount": 0
                      },
                      "commission_agent": {
                        "amount": 0,
                        "percent": 0
                      },
                      "commission_agent_fixed": 0,
                      "commission_ps": {
                        "amount": 0,
                        "fixed_amount": 0,
                        "percent": 0
                      },
                      "commission_ps_from_vat": {
                        "amount": 0
                      },
                      "commission_user": {
                        "amount": 0.01,
                        "percent": 33.33
                      },
                      "commission_xsolla": {
                        "amount": 0,
                        "fixed_amount": 0,
                        "percent": 5
                      },
                      "cpa_network_commission": {
                        "amount": 0,
                        "percent": 0
                      },
                      "direct_wht": {
                        "amount": 0,
                        "percent": 0
                      },
                      "payment": {
                        "amount": 0.03,
                        "amount_from_ps": 0,
                        "currency": "USD"
                      },
                      "payout": {
                        "amount": 0.02,
                        "amount_from_ps": 0,
                        "currency": "RUB",
                        "fx_rate": 64.1386407767,
                        "percent": 100
                      },
                      "refundPenalty": {
                        "amount": 0
                      },
                      "repatriation_costs": {
                        "amount": 0,
                        "percent": 0
                      },
                      "sales_tax": {
                        "amount": 0,
                        "percent": 0
                      },
                      "vat": {
                        "amount": 0,
                        "percent": 0,
                        "user_amount": 0,
                        "user_percent": 0
                      }
                    },
                    "purchase": {
                      "friend": {
                        "email": null,
                        "user_id": null
                      },
                      "items_amount": 1,
                      "pin_codes": {
                        "amount": null,
                        "content": null,
                        "currency": null
                      },
                      "purchase_amount": 0.02,
                      "simple_checkout": {
                        "amount": null,
                        "currency": null
                      },
                      "subscription": {
                        "name": null,
                        "plan_id": null,
                        "product_id": null,
                        "product_name": null,
                        "subscription_id": null
                      },
                      "virtual_currency": {
                        "amount": 0.02,
                        "currency": "USD"
                      },
                      "virtual_currency_amount": 1,
                      "virtual_items": {
                        "amount": null,
                        "content": null,
                        "currency": null
                      }
                    },
                    "transaction": {
                      "custom_parameters": null,
                      "direct_account": 0,
                      "dry_run": 0,
                      "external_id": null,
                      "id": 418756634,
                      "payment_method": {
                        "class": "Digital Payment Methods",
                        "id": 2760,
                        "name": "Your Balance"
                      },
                      "project": {
                        "id": 21092,
                        "name": "Smith"
                      },
                      "refund_reason": null,
                      "refund_reason_comment": null,
                      "status": "done",
                      "transfer_date": "2019-02-11T13:32:00+03:00"
                    },
                    "user": {
                      "country": "US",
                      "custom": null,
                      "email": "email@example.com",
                      "id": "smith123",
                      "ip": "209.11.22.33",
                      "marketplace": "Pay Station",
                      "name": "Tom",
                      "phone": null
                    },
                    "user_balance": {
                      "payment_currency": {
                        "deduction_amount": 0,
                        "payout_amount_from_balance": 0.02,
                        "purchase_amount_from_balance": 0.02
                      }
                    }
                  }
                ],
                "schema": {
                  "items": {
                    "properties": {
                      "payment_details": {
                        "description": "Informations sur le paiement.",
                        "properties": {
                          "chargebackPenalty": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "commission_agent": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "commission_agent_fixed": {
                            "type": "integer"
                          },
                          "commission_ps": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "fixed_amount": {
                                "type": "integer"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "commission_ps_from_vat": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "commission_user": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "commission_xsolla": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "fixed_amount": {
                                "type": "integer"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "cpa_network_commission": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "direct_wht": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "payment": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "amount_from_ps": {
                                "type": "integer"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "payout": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "amount_from_ps": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              },
                              "fx_rate": {
                                "format": "float",
                                "type": "number"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "refundPenalty": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "repatriation_costs": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "sales_tax": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "vat": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "percent": {
                                "format": "float",
                                "type": "number"
                              },
                              "user_amount": {
                                "type": "integer"
                              },
                              "user_percent": {
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "purchase": {
                        "description": "Informations sur l'achat.",
                        "properties": {
                          "friend": {
                            "properties": {
                              "email": {
                                "nullable": true,
                                "type": "string"
                              },
                              "user_id": {
                                "nullable": true,
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "items_amount": {
                            "type": "integer"
                          },
                          "pin_codes": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "nullable": true,
                                "type": "number"
                              },
                              "content": {
                                "nullable": true,
                                "type": "string"
                              },
                              "currency": {
                                "nullable": true,
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "purchase_amount": {
                            "format": "float",
                            "type": "number"
                          },
                          "simple_checkout": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "nullable": true,
                                "type": "number"
                              },
                              "currency": {
                                "nullable": true,
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "subscription": {
                            "properties": {
                              "name": {
                                "nullable": true,
                                "type": "string"
                              },
                              "plan_id": {
                                "nullable": true,
                                "type": "integer"
                              },
                              "product_id": {
                                "nullable": true,
                                "type": "string"
                              },
                              "product_name": {
                                "nullable": true,
                                "type": "string"
                              },
                              "subscription_id": {
                                "nullable": true,
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "virtual_currency": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "virtual_currency_amount": {
                            "type": "integer"
                          },
                          "virtual_items": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "nullable": true,
                                "type": "number"
                              },
                              "content": {
                                "nullable": true,
                                "type": "string"
                              },
                              "currency": {
                                "nullable": true,
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "transaction": {
                        "description": "Données de transaction.",
                        "properties": {
                          "custom_parameters": {
                            "nullable": true,
                            "type": "object"
                          },
                          "direct_account": {
                            "type": "integer"
                          },
                          "dry_run": {
                            "type": "integer"
                          },
                          "external_id": {
                            "nullable": true,
                            "type": "string"
                          },
                          "id": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "payment_method": {
                            "properties": {
                              "class": {
                                "type": "string"
                              },
                              "id": {
                                "type": "integer"
                              },
                              "name": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "project": {
                            "properties": {
                              "id": {
                                "type": "integer"
                              },
                              "name": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "refund_reason": {
                            "nullable": true,
                            "type": "string"
                          },
                          "refund_reason_comment": {
                            "nullable": true,
                            "type": "string"
                          },
                          "status": {
                            "enum": [
                              "created",
                              "processing",
                              "done",
                              "canceled",
                              "error",
                              "refunded",
                              "partiallyRefunded",
                              "awaitingRefund",
                              "disputeFee"
                            ],
                            "type": "string"
                          },
                          "transfer_date": {
                            "format": "datetime",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "user": {
                        "description": "Informations sur l'utilisateur.",
                        "properties": {
                          "country": {
                            "description": "Code pays à deux lettres majuscules selon la norme [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).",
                            "type": "string"
                          },
                          "custom": {
                            "nullable": true,
                            "type": "string"
                          },
                          "email": {
                            "description": "Adresse e-mail de l'utilisateur.",
                            "type": "string"
                          },
                          "id": {
                            "description": "ID utilisateur.",
                            "type": "string"
                          },
                          "ip": {
                            "type": "string"
                          },
                          "marketplace": {
                            "type": "string"
                          },
                          "name": {
                            "description": "Pseudo de l'utilisateur.",
                            "type": "string"
                          },
                          "phone": {
                            "description": "Numéro de téléphone de l'utilisateur.",
                            "nullable": true,
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "user_balance": {
                        "description": "Solde utilisateur.",
                        "properties": {
                          "payment_currency": {
                            "description": "Devise de paiement préférée.",
                            "properties": {
                              "deduction_amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "payout_amount_from_balance": {
                                "format": "float",
                                "type": "number"
                              },
                              "purchase_amount_from_balance": {
                                "format": "float",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Liste des transactions renvoyée avec succès."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Lire la liste des transactions",
        "tags": [
          "reports"
        ],
        "x-admin": true,
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports/transactions/search.{format}": {
      "get": {
        "description": "Renvoie une liste de transactions selon des critères de recherche spécifiques. \nVous recevrez des données sur tous les paiements dans votre jeu, y compris ceux \néchoués. Vous pouvez définir la période de transaction et d'autres critères de \nrecherche, comme un utilisateur particulier ou le statut de paiement. La liste \nest fournie au format JSON ou CSV.\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "find-transactions",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/format"
          },
          {
            "$ref": "#/components/parameters/datetime-from"
          },
          {
            "$ref": "#/components/parameters/datetime-to"
          },
          {
            "$ref": "#/components/parameters/project-id-query-param"
          },
          {
            "$ref": "#/components/parameters/transaction-id"
          },
          {
            "$ref": "#/components/parameters/type"
          },
          {
            "$ref": "#/components/parameters/phone"
          },
          {
            "$ref": "#/components/parameters/user-id-query-param"
          },
          {
            "$ref": "#/components/parameters/user-name"
          },
          {
            "$ref": "#/components/parameters/user-custom"
          },
          {
            "$ref": "#/components/parameters/email"
          },
          {
            "$ref": "#/components/parameters/external-id"
          },
          {
            "$ref": "#/components/parameters/order-id"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/status"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "payment_details": {
                      "payment": {
                        "amount": 7.96,
                        "amount_from_ps": 7.96,
                        "currency": "RUB"
                      },
                      "sales_tax": {
                        "amount": 0,
                        "percent": 0
                      }
                    },
                    "payment_system": {
                      "decline_reason": null
                    },
                    "purchase": {
                      "pin_codes": {
                        "amount": null,
                        "content": null,
                        "currency": null
                      },
                      "simple_checkout": {
                        "amount": 7.96,
                        "currency": "RUB"
                      },
                      "subscription": {
                        "name": null
                      },
                      "virtual_currency": {
                        "amount": 0,
                        "name": null
                      },
                      "virtual_items": null
                    },
                    "transaction": {
                      "create_date": "2021-10-20",
                      "dry_run": 0,
                      "external_id": "example-external-id",
                      "id": 123456789,
                      "is_refund_allowed": 0,
                      "order_id": 1234,
                      "payment_method": {
                        "id": 1,
                        "name": "PayPal"
                      },
                      "project": {
                        "id": 123456,
                        "name": "Example"
                      },
                      "refund_reason": null,
                      "status": "done",
                      "transfer_date": "2021-10-20"
                    },
                    "user": {
                      "country": "RU",
                      "custom": null,
                      "email": "email@example.com",
                      "id": "example-id",
                      "name": "Example",
                      "phone": null
                    }
                  }
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Rechercher des transactions",
        "tags": [
          "reports"
        ],
        "x-admin": true,
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports/transactions/simple_search": {
      "get": {
        "description": "Récupère en quelques secondes une liste de transactions sur la base de \nparamètres de recherche spécifiques. Il s'agit de l'alternative à l'appel API \n[Rechercher des transactions](/fr/api/pay-station/operation/find-transactions/) \nqui renvoie des données au format JSON, CSV ou XLS.\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "find-transactions-fast",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "description": "ID de transaction. Soit cet ID, soit `external_id` doit être passé, mais jamais les deux.",
            "in": "query",
            "name": "transaction_id",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "ID de transaction dans le jeu. Il est unique pour chaque paiement. Soit cet ID, soit `transaction_id` doit être passé, mais jamais les deux.",
            "in": "query",
            "name": "external_id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "payment_details": {
                      "payment": {
                        "amount": 7.96,
                        "currency": "BRL"
                      }
                    },
                    "transaction": {
                      "external_id": "example_external_id_123",
                      "id": 123456,
                      "payment_date": "2023-02-11 15:32:46",
                      "project": {
                        "id": 123456,
                        "name": "Test"
                      },
                      "status": "done"
                    },
                    "user": {
                      "country": "BR",
                      "email": "email@example.com",
                      "id": "123456",
                      "name": "John Smith"
                    }
                  }
                ],
                "schema": {
                  "items": {
                    "properties": {
                      "payment_details": {
                        "description": "Informations sur le paiement.",
                        "properties": {
                          "payment": {
                            "properties": {
                              "amount": {
                                "description": "Montant du paiement.",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "description": "Devise de paiement. Code de devise à trois lettres selon la norme [ISO 4217](https://developers.xsolla.com/fr/doc/pay-station/references/supported-currencies/).",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "transaction": {
                        "description": "Informations sur la transaction.",
                        "properties": {
                          "external_id": {
                            "description": "ID de transaction dans le jeu. Il est unique pour chaque paiement d'utilisateur.",
                            "type": "string"
                          },
                          "id": {
                            "description": "ID de transaction.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "payment_date": {
                            "description": "Date du paiement au format AAAA-MM-JJ.",
                            "type": "string"
                          },
                          "project": {
                            "properties": {
                              "id": {
                                "description": "ID de projet. Il se trouve dans le Compte éditeur.",
                                "type": "integer"
                              },
                              "name": {
                                "description": "Nom de projet.",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "refund_reason": {
                            "description": "Motif de remboursement.",
                            "type": "string"
                          },
                          "status": {
                            "$ref": "#/components/schemas/status.enum"
                          }
                        },
                        "type": "object"
                      },
                      "user": {
                        "description": "Informations sur l'utilisateur.",
                        "properties": {
                          "country": {
                            "description": "Code pays à deux lettres majuscules selon la norme [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).",
                            "type": "string"
                          },
                          "email": {
                            "description": "Adresse e-mail de l'utilisateur.",
                            "type": "string"
                          },
                          "id": {
                            "description": "ID utilisateur.",
                            "type": "string"
                          },
                          "name": {
                            "description": "Nom d'utilisateur.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Liste des transactions renvoyée avec succès."
          },
          "403": {
            "description": "Accès refusé."
          },
          "404": {
            "description": "Transaction introuvable."
          },
          "422": {
            "description": "Unprocessable Entity (Vous devez passer soit `transaction_id` ou `external_id`)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Rechercher des transactions (recherche rapide)",
        "tags": [
          "reports"
        ],
        "x-admin": true,
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports/transactions/summary/transfer": {
      "get": {
        "description": "Repartit les virements en fonction de la devise.\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "get-payouts-breakdown",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/datetime-from"
          },
          {
            "$ref": "#/components/parameters/datetime-to"
          },
          {
            "$ref": "#/components/parameters/legal-entity-id"
          },
          {
            "$ref": "#/components/parameters/transaction-status"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "DirectTaxesOfPayments": 0.46,
                    "IsoCurrency": "RUB",
                    "PaymentsAmount": 223679.84,
                    "SumCommissionAgent": 11329.58,
                    "SumCommissionUserTaxes": 153.67,
                    "SumItems": 571325.13,
                    "SumNominalSum": 214792.98,
                    "SumOutProject": 551096.13,
                    "SumPayoutSum": 193316.71,
                    "TaxesOfPayments": 171.56
                  },
                  {
                    "DirectTaxesOfPayments": 0.14,
                    "IsoCurrency": "USD",
                    "PaymentsAmount": 482.58,
                    "SumCommissionAgent": 77.51,
                    "SumCommissionUserTaxes": 0.07,
                    "SumItems": 243777.62,
                    "SumNominalSum": 493.09,
                    "SumOutProject": 241787.62,
                    "SumPayoutSum": 462.62,
                    "TaxesOfPayments": 0.14
                  },
                  {
                    "DirectTaxesOfPayments": 0.07,
                    "IsoCurrency": "EUR",
                    "PaymentsAmount": 608.2,
                    "SumCommissionAgent": 55.71,
                    "SumCommissionUserTaxes": 90.94,
                    "SumItems": 156238.62,
                    "SumNominalSum": 607.26,
                    "SumOutProject": 156158.62,
                    "SumPayoutSum": 460.8,
                    "TaxesOfPayments": 90.94
                  }
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Lire les virements répartis en devises",
        "tags": [
          "reports"
        ],
        "x-admin": true,
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports/transactions/{transaction_id}/details": {
      "get": {
        "description": "Récupère les informations complètes sur une transaction par son ID.\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "get-transaction",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/transaction-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "customer_details": {
                      "billing_address": "",
                      "bin": "",
                      "browser_language": "",
                      "country": "US",
                      "ip": "209.11.22.33",
                      "paystation_country": "",
                      "phone": null,
                      "timezone": "",
                      "user_id": "user1",
                      "user_name": "John Smith"
                    },
                    "finance_details": {
                      "direct_wht": {
                        "amount": 0,
                        "currency": "USD"
                      },
                      "dispute_fee": {
                        "amount": 70,
                        "currency": "USD",
                        "date": "2019-04-20 16:15:37"
                      },
                      "payment": {
                        "amount": 0.04,
                        "currency": "USD"
                      },
                      "payment_method_fee": {
                        "amount": 0.01,
                        "currency": "USD"
                      },
                      "payment_method_sum": {
                        "amount": 0.04,
                        "currency": "USD"
                      },
                      "payout": {
                        "amount": 1.25,
                        "currency": "RUB"
                      },
                      "payout_currency_rate": 62,
                      "repatriation_commission": {
                        "amount": 0,
                        "currency": "USD"
                      },
                      "sales_tax": {
                        "amount": 0,
                        "currency": "USD"
                      },
                      "vat": {
                        "amount": 0.01,
                        "currency": "USD"
                      },
                      "xsolla_balance_sum": {
                        "amount": 0,
                        "currency": "USD"
                      },
                      "xsolla_fee": {
                        "amount": 0,
                        "currency": "USD"
                      }
                    },
                    "payment_details": {
                      "card_holdername": null,
                      "card_issuer": "TEST BANK",
                      "card_month": 1,
                      "card_number": 1234123412341234,
                      "card_scheme": "MASTERCARD",
                      "card_year": 2020,
                      "customer_firstname": "",
                      "customer_lastname": "",
                      "enrollment": false,
                      "ps_account": "1234test4321",
                      "zip_code": ""
                    },
                    "subscription_details": {
                      "is_payment_from_subscription": false,
                      "is_subscription_created": true
                    },
                    "transaction_details": {
                      "amount": 0.04,
                      "cancellation_date": null,
                      "country": "US",
                      "currency": "USD",
                      "custom_parameters": null,
                      "foreign_invoice": null,
                      "gift_recipient_email": null,
                      "gift_recipient_id": null,
                      "payment_date": "2019-03-21 16:15:37",
                      "payment_method": "1380",
                      "payment_method_name": "Credit/Debit Cards",
                      "project": 21092,
                      "project_name": "Test Project",
                      "purchase": {
                        "checkout": {
                          "amount": 0,
                          "currency": "USD"
                        },
                        "pin_codes": {
                          "amount": 0,
                          "content": null,
                          "currency": null
                        },
                        "total": {
                          "amount": 0.03,
                          "currency": "USD"
                        },
                        "virtual_currency": {
                          "amount": 0.03,
                          "currency": "USD",
                          "name": "Gold coins",
                          "quantity": "2"
                        },
                        "virtual_items": null
                      },
                      "refund_comment": null,
                      "refund_reason": null,
                      "status": "done",
                      "user_id": "user1"
                    }
                  }
                ],
                "schema": {
                  "items": {
                    "properties": {
                      "customer_details": {
                        "properties": {
                          "billing_address": {
                            "type": "string"
                          },
                          "bin": {
                            "type": "string"
                          },
                          "browser_language": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          },
                          "ip": {
                            "type": "string"
                          },
                          "paystation_country": {
                            "type": "string"
                          },
                          "phone": {
                            "nullable": true,
                            "type": "string"
                          },
                          "timezone": {
                            "type": "string"
                          },
                          "user_id": {
                            "type": "string"
                          },
                          "user_name": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "finance_details": {
                        "properties": {
                          "direct_wht": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "dispute_fee": {
                            "properties": {
                              "amount": {
                                "description": "Le montant de la taxe de contestation dans la devise de paiement.",
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "description": "Devise de paiement. Code de devise à trois lettres selon la norme [7ISO 4217](/fr/doc/pay-station/references/supported-currencies/).",
                                "type": "string"
                              },
                              "date": {
                                "description": "Date d'ouverture de la contestation.",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "payment": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "payment_method_fee": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "payment_method_sum": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "payout": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "payout_currency_rate": {
                            "format": "float",
                            "type": "number"
                          },
                          "repatriation_commission": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "sales_tax": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "vat": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "xsolla_balance_sum": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "xsolla_fee": {
                            "properties": {
                              "amount": {
                                "format": "float",
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "payment_details": {
                        "properties": {
                          "card_holdername": {
                            "nullable": true,
                            "type": "string"
                          },
                          "card_issuer": {
                            "type": "string"
                          },
                          "card_month": {
                            "type": "integer"
                          },
                          "card_number": {
                            "type": "integer"
                          },
                          "card_scheme": {
                            "type": "string"
                          },
                          "card_year": {
                            "type": "integer"
                          },
                          "customer_firstname": {
                            "type": "string"
                          },
                          "customer_lastname": {
                            "type": "string"
                          },
                          "enrollment": {
                            "type": "boolean"
                          },
                          "ps_account": {
                            "type": "string"
                          },
                          "zip_code": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "subscription_details": {
                        "properties": {
                          "is_payment_from_subscription": {
                            "type": "boolean"
                          },
                          "is_subscription_created": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "transaction_details": {
                        "properties": {
                          "amount": {
                            "format": "float",
                            "type": "number"
                          },
                          "cancellation_date": {
                            "nullable": true,
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "custom_parameters": {
                            "nullable": true,
                            "type": "string"
                          },
                          "foreign_invoice": {
                            "nullable": true,
                            "type": "string"
                          },
                          "gift_recipient_email": {
                            "nullable": true,
                            "type": "string"
                          },
                          "gift_recipient_id": {
                            "nullable": true,
                            "type": "string"
                          },
                          "payment_date": {
                            "type": "string"
                          },
                          "payment_method": {
                            "type": "string"
                          },
                          "payment_method_name": {
                            "type": "string"
                          },
                          "project": {
                            "type": "integer"
                          },
                          "project_name": {
                            "type": "string"
                          },
                          "purchase": {
                            "properties": {
                              "checkout": {
                                "properties": {
                                  "amount": {
                                    "format": "float",
                                    "type": "number"
                                  },
                                  "currency": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "pin_codes": {
                                "properties": {
                                  "amount": {
                                    "format": "float",
                                    "type": "number"
                                  },
                                  "content": {
                                    "nullable": true,
                                    "type": "string"
                                  },
                                  "currency": {
                                    "nullable": true,
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "total": {
                                "properties": {
                                  "amount": {
                                    "format": "float",
                                    "type": "number"
                                  },
                                  "currency": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "virtual_currency": {
                                "properties": {
                                  "amount": {
                                    "format": "float",
                                    "type": "number"
                                  },
                                  "currency": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "quantity": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "virtual_items": {
                                "nullable": true,
                                "properties": {
                                  "amount": {
                                    "format": "float",
                                    "type": "number"
                                  },
                                  "content": {
                                    "type": "string"
                                  },
                                  "currency": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "refund_comment": {
                            "nullable": true,
                            "type": "string"
                          },
                          "refund_reason": {
                            "nullable": true,
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "user_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Informations relatives à la transaction renvoyées avec succès."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Lire une transaction",
        "tags": [
          "reports"
        ],
        "x-admin": true,
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports/transactions/{transaction_id}/partial_refund": {
      "put": {
        "description": "Envoie une requête de remboursement partiel à l'utilisateur. Pour des \ninformations détaillées sur le processus de remboursement et les modes de \npaiement qui prennent en charge les remboursements partiels, reportez-vous à \nnotre [documentation](https://developers.xsolla.com/fr/doc/pay-station/features/refund/#pay_station_features_refund_how_it_works_partial_refund_flow).\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>Pour appeler cette méthode API en mode bac à sable, passez les données de paiement de test dans la requête. Reportez-vous aux <a href=\"https://developers.xsolla.com/fr/doc/pay-station/testing/test-one-time-purchase-in-sandbox/#pay_station_testing_sandbox_bank_card_partial_refund\">instructions</a> pour plus d'informations sur l'accès au mode bac à sable et les scénarios de test.</p>\n</div>\n\n<p></p>\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "request-partial-refund",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/transaction-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "description": "test refund request",
                "refund_amount": 1.5
              },
              "schema": {
                "properties": {
                  "description": {
                    "description": "Motif de remboursement.",
                    "maxLength": 4000,
                    "type": "string"
                  },
                  "refund_amount": {
                    "description": "Montant de remboursement dans la devise d'achat.",
                    "format": "float",
                    "type": "number"
                  }
                },
                "required": [
                  "description",
                  "refund_amount"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Demande de remboursement approuvée."
          },
          "403": {
            "description": "Autorisations insuffisantes."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "Transaction with specified ID does not exist."
                },
                "schema": {
                  "properties": {
                    "message": {
                      "description": "La transaction avec l'ID spécifié n'existe pas. Vérifiez les informations de paiement. Si le problème persiste, contactez le support Xsolla à support@xsolla.com.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Transaction introuvable."
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "message": "Partial refund is unavailable for subscription payments."
                },
                "schema": {
                  "properties": {
                    "message": {
                      "description": "**Remboursement non admissible**\n\nRenvoie l'un des messages suivants :\n- Partial refund is unavailable for operations with user balance.\n- Requested transaction is partial refund and cannot be canceled.\n- Partial refund is unavailable for subscription payments.\n- Refund cannot be completed due to a payment system error. Please try again \n  later.\n- Requested partial refund amount exceeds payment amount.\n- Requested partial refund amount is less than minimum amount specified by \n  payment system.\n- Payment amount after partial refund will be less than allowable amount \n  specified by payment system.\n- Dispute for this invoice is already opened. Can’t make a refund yet.\n\n**Remboursements partiels non autorisés par le mode de paiement**\n\nRenvoie l'un des messages suivants :\n- Current payment method does not support partial refunds.\n- Current transaction status does not allow refunds.\n- Deadline for refund is exceeded.\n- Partial refund is unavailable because discount was applied during payment \n  creation.\n\n**Remboursement partiel impossible en raison de paramètres de précision \nincorrects**\n\nRenvoie le message suivant :\n- Partial refund is unavailable because requested amount is specified with \n  incorrect precision for purchase currency.\n",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Unprocessable Entity."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Demander un remboursement partiel",
        "tags": [
          "refund"
        ],
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports/transactions/{transaction_id}/refund": {
      "put": {
        "description": "Envoie une demande de remboursement pour restituer un paiement à l'utilisateur. \nLisez à propos de la [Fonctionnalité de remboursement \n](https://developers.xsolla.com/fr/doc/pay-station/features/refund/) pour en \nsavoir plus sur le processus.\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>Pour appeler cette méthode API en mode bac à sable, passez les données de paiement de test dans la requête. Reportez-vous aux <a href=\"https://developers.xsolla.com/fr/doc/pay-station/testing/test-one-time-purchase-in-sandbox/#pay_station_testing_sandbox_bank_card_refund\">instructions</a> pour plus d'informations sur l'accès au mode bac à sable et les scénarios de test.</p>\n</div>\n\n<p></p>\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "request-refund",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/transaction-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "description": "test refund request"
              },
              "schema": {
                "properties": {
                  "description": {
                    "description": "Motif de remboursement.",
                    "maxLength": 4000,
                    "type": "string"
                  },
                  "email": {
                    "description": "Adresse e-mail de l'utilisateur.",
                    "maxLength": 100,
                    "type": "string"
                  }
                },
                "required": [
                  "description"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "message": "The request for a refund has been accepted. Xsolla CS will automatically send the customer an email with alternative refund options as the user's method does not support direct refunds."
                },
                "schema": {
                  "properties": {
                    "message": {
                      "description": "Renvoie l'un des messages suivants :\n- No content.\n- The request for a refund has been accepted. Xsolla CS will manually complete the refund. It may take up to two business days.\n- The request for a refund has been accepted. Xsolla CS will automatically send the customer an email with alternative refund options as the user's method does not support direct refunds.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK (Aucune erreur)."
          },
          "204": {
            "description": "Demande de remboursement approuvée."
          },
          "401": {
            "description": "Unauthorized (Accès refusé)."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "Transaction ID not valid. Please check payment credentials. Otherwise, contact Xsolla support at support@xsolla.com."
                },
                "schema": {
                  "properties": {
                    "message": {
                      "description": "ID de transaction non valide. Vérifiez les informations de paiement. Si le problème persiste, contactez le support Xsolla à support@xsolla.com.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Transaction introuvable."
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "message": "We are processing the refund request. This may take up to two business days."
                },
                "schema": {
                  "properties": {
                    "message": {
                      "description": "Renvoie l'un des messages suivants :\n- We are processing the refund request. This may take up to two business days.\n- We are reaching the user for the information required for the refund. For details, contact Xsolla Support.\n- Incorrect payment status. Refund is possible only for payments with \"completed\" or \"error\" status.\n- To process this request, the customer's email address field must be filled. Please specify the customer's email address and try again.\n- Full refund is unavailable because there are successful partial refunds for this transaction.\n- Refund failed. Please contact Xsolla Support to process it manually.\n- Dispute for this invoice is already opened. Can’t make a refund yet.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Unprocessable Entity (Paramètres de requête non valides)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Demander un remboursement",
        "tags": [
          "refund"
        ],
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/reports/transfers": {
      "get": {
        "description": "Récupère une liste de tous les virements pour une période donnée.\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "get-payouts",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/datetime-from"
          },
          {
            "$ref": "#/components/parameters/datetime-to"
          },
          {
            "$ref": "#/components/parameters/legal-entity-id"
          },
          {
            "$ref": "#/components/parameters/payout-status"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "canceled": 0,
                    "payout": {
                      "currency": "USD",
                      "date": "2014-01-03T00:00:00+04:00",
                      "id": 1,
                      "note": "12/05/2013 - 01/04/2014"
                    },
                    "rate": 1,
                    "transfer": {
                      "currency": "USD",
                      "date": "2014-01-05T00:00:00+04:00",
                      "note": "004357"
                    }
                  }
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Lire des virements",
        "tags": [
          "reports"
        ],
        "x-admin": true,
        "x-server": true
      }
    },
    "/merchants/{merchant_id}/token": {
      "post": {
        "description": "Vous pouvez créer un jeton avec n'importe quels paramètres utilisateur. Envoyez-\nles lors de la création du jeton et vous les recevez en réponse après le \npaiement réussi. Un jeton ne peut contenir que les paramètres décrits dans le \nprésent document ou ceux que vous avez préalablement définis.\n\nSi un paramètre est passé dans un format ou un type incorrect, aucun jeton ne \nsera délivré. Vous recevrez un code HTTP 422 avec la description de l'erreur \ndans le corps JSON. Dans ce cas, le paramètre `extended_message` contient les \ninformations sur les paramètres précis qui ont été passés de manière incorrecte.\n\nPar défaut, la durée de vie du jeton est de 24 heures. Si vous souhaitez \nmodifier cette valeur, contactez votre responsable de la réussite client ou \nenvoyez un e-mail à <a href=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>. La \nnouvelle valeur sera activée pour tous les projets de votre entreprise créés \ndans le <a href=\"https://publisher.xsolla.com/\">Compte éditeur</a>.\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Le jeton obtenu suite à l'appel à cette méthode API ne peut être utilisé que pour autoriser d'autres requêtes. Ce jeton peut être utilisé pour ouvrir l'interface de paiement uniquement si vous avez intégré le produit <a href=\"https://developers.xsolla.com/fr/doc/subscriptions/\">Subscriptions</a>.</p><p>Pour ouvrir l'interface de paiement dans une nouvelle fenêtre, utilisez le lien suivant : <code>https://secure.xsolla.com/paystation4/?token={token}</code>, où <code>{token}</code> est le jeton reçu.</p><p>À des fins de test, utilisez cette URL : <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code>.</p>\n</div>\n\n<p></p>\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin <code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>\n",
        "operationId": "create-token",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/token"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
                },
                "schema": {
                  "properties": {
                    "token": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Created."
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "extended_message": {
                    "global_errors": [],
                    "property_errors": {
                      "purchase.checkout.amount": [
                        "String value found, but a number is required"
                      ]
                    }
                  },
                  "http_status_code": 422,
                  "message": "JSON is not valid against json schema, please check documentation https://developers.xsolla.com/fr/api/v2/getting-started/#api_token_ui",
                  "request_id": "cd72633"
                },
                "schema": {
                  "properties": {
                    "extended_message": {
                      "properties": {
                        "global_errors": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "property_errors": {
                          "description": "Noms des paramètres avec la description de l'erreur.",
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "http_status_code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "request_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Unprocessable Entity."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Créer un jeton",
        "tags": [
          "token"
        ],
        "x-server": true
      }
    },
    "/projects/{project_id}/token/{token}/expire": {
      "post": {
        "description": "Invalide le jeton de paiement existant afin d'empêcher son utilisation pour \nouvrir l'interface de paiement. À utiliser pour éviter les paiements en double \npour des objets à instance unique dans des sessions parallèles. Une fois la \nrequête exécutée avec succès, toutes les autres sessions utilisateur ouvertes \navec ce jeton de paiement expirent.\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>Cet appel API est <a href=\"https://en.wikipedia.org/wiki/Idempotence#Computer_science_meaning\">idempotent</a> et peut être utilisé plusieurs fois.</p>\n</div>\n",
        "operationId": "invalidate-token",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/token-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {}
          },
          "description": "Aucun corps de requête n'est requis, mais l'en-tête `Content-Type: application/json` doit être inclus dans la requête. S'il est omis ou que `Content-Type` est vide, une erreur 415 sera renvoyée."
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "status": "expired",
                  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
                },
                "schema": {
                  "properties": {
                    "status": {
                      "enum": [
                        "expired"
                      ],
                      "type": "string"
                    },
                    "token": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Jeton invalidé."
          },
          "400": {
            "description": "ID de projet non valide. Vérifiez que le jeton a bien été créé pour le projet spécifié."
          },
          "403": {
            "description": "Accès refusé. Vous n'avez pas les autorisations nécessaires pour gérer les jetons de ce projet."
          },
          "404": {
            "description": "Format de jeton non valide. Le jeton spécifié ne respecte pas le format requis."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Invalider le jeton",
        "tags": [
          "token"
        ],
        "x-server": true
      }
    },
    "/projects/{project_id}/users/{user_id}/payment_accounts": {
      "get": {
        "description": "Récupère la liste des comptes de paiement enregistrés d'un utilisateur donné.\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>En mode bac à sable, cet appel API fonctionne uniquement avec les <a href=\"https://developers.xsolla.com/fr/doc/pay-station/testing/test-cards/\">cartes de test</a> dépourvues de la fonction 3-D Secure.</p>\n</div>\n",
        "operationId": "get-saved-accounts",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/user-id-path-param"
          },
          {
            "$ref": "#/components/parameters/mode"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 4612345,
                    "name": "PP_saved_account",
                    "payment_system": {
                      "id": 24,
                      "name": "PayPal"
                    },
                    "type": "paypal"
                  }
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Lire les comptes enregistrés",
        "tags": [
          "tokenization"
        ],
        "x-server": true
      }
    },
    "/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}": {
      "delete": {
        "description": "Supprime un compte de paiement enregistré.\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>En mode bac à sable, cet appel API fonctionne uniquement avec les <a href=\"https://developers.xsolla.com/fr/doc/pay-station/testing/test-cards/\">cartes de test</a> dépourvues de la fonction 3-D Secure.</p>\n</div>\n\n<p></p>\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>Pour appeler cette méthode API en mode bac à sable, passez les données du compte de paiement de test dans la requête. Reportez-vous aux <a href=\"https://developers.xsolla.com/fr/doc/pay-station/testing/test-saved-cards-in-sandbox/#pay_station_testing_tokenization_sandbox_delete_saved_card\">instructions</a> pour plus d'informations sur l'accès au mode bac à sable et les scénarios de test.</p>\n</div>\n",
        "operationId": "delete-saved-account",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/user-id-path-param"
          },
          {
            "$ref": "#/components/parameters/type-path-param"
          },
          {
            "$ref": "#/components/parameters/account-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Supprimer un compte enregistré",
        "tags": [
          "tokenization"
        ],
        "x-server": true
      }
    },
    "/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}": {
      "post": {
        "description": "Facture un utilisateur via un compte de paiement enregistré.\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>En mode bac à sable, cet appel API fonctionne uniquement avec les <a href=\"https://developers.xsolla.com/fr/doc/pay-station/testing/test-cards/\">cartes de test</a> dépourvues de la fonction 3-D Secure.</p>\n</div>\n\n<p></p>\n\n<div class=\"notice\">\n<p><strong>Remarque</strong></p><p>Pour que l'appel API fonctionne correctement, configurez un délai d'attente de 2 minutes.</p>\n</div>\n",
        "operationId": "charge-with-saved-account",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/user-id-path-param"
          },
          {
            "$ref": "#/components/parameters/type-path-param"
          },
          {
            "$ref": "#/components/parameters/account-id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/charge-with-saved-account"
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "transaction_id": 123458390
                },
                "schema": {
                  "properties": {
                    "transaction_id": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Created."
          },
          "422": {
            "description": "Unprocessable Entity."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Prélever sur un compte enregistré",
        "tags": [
          "tokenization"
        ],
        "x-server": true
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "description": "L'API Xsolla utilise une authentification d'accès de base. Toutes les requêtes \ndoivent inclure l'en-tête `Authorization: Basic \n<your_authorization_basic_key>`, où `<your_authorization_basic_key>` correspond \nà la paire `merchant_id:api_key` encodée en Base64.\n\nAccédez au [Compte éditeur](https://publisher.xsolla.com/) pour trouver ces \nparamètres :\n\n- `merchant_id` est affiché :\n  - Dans la section **Company settings > Company**.\n  - Dans l'URL dans la barre d'adresse du navigateur sur n'importe quelle page du \n    compte de l'éditeur. L'URL a le format suivant : \n    `https://publisher.xsolla.com/<merchant_id>`.\n- `api_key` n'apparaît dans le compte de l'éditeur qu'une seule fois lors de sa \n  création et doit être stockée de votre côté. Vous pouvez créer une nouvelle clé \n  dans les sections suivantes :\n  - **Company settings > API keys**\n  - **Project settings > API keys**\n\nPour plus d'informations sur l'utilisation des clés API, voir la [référence \nAPI](https://developers.xsolla.com/fr/api/getting-started/#api_keys_overview).\n",
        "scheme": "basic",
        "type": "http"
      }
    },
    "parameters": {
      "merchant-id-path-param": {
        "description": "ID de commerçant.",
        "in": "path",
        "name": "merchant_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "project-id-path-param": {
        "description": "ID de projet.",
        "in": "path",
        "name": "project_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "transaction-id-path-param": {
        "description": "ID de transaction.",
        "in": "path",
        "name": "transaction_id",
        "required": true,
        "schema": {
          "format": "int64",
          "type": "integer"
        }
      },
      "datetime-from-req": {
        "description": "Début de la période au format AAAA-MM-JJ. Non requis si au moins un des paramètres suivants est passé :<ul><li>`transfer_id` ;</li><li>`report_id`.</li></ul>",
        "example": "2023-02-08",
        "in": "query",
        "name": "datetime_from",
        "required": true,
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "datetime-to-req": {
        "description": "Fin de la période au format AAAA-MM-JJ. Non requis si au moins un des paramètres suivants est passé :<ul><li>`transfer_id` ;</li><li>`report_id`.</li></ul> La différence entre `datetime_from` et `datetime_to` doit être inférieure à 92 jours.",
        "example": "2023-03-08",
        "in": "query",
        "name": "datetime_to",
        "required": true,
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "format": {
        "description": "Format de données.",
        "in": "path",
        "name": "format",
        "required": true,
        "schema": {
          "enum": [
            "json",
            "csv",
            "xls"
          ],
          "type": "string"
        }
      },
      "in-transfer-currency": {
        "description": "Convertit toutes les données financières dans la devise de versement (la devise de paiement est utilisée par défaut). Non requis si au moins un des paramètres suivants est passé :<ul><li>`transfer_id` ;</li><li>`report_id`.</li></ul>",
        "in": "query",
        "name": "in_transfer_currency",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "show-total": {
        "description": "Détermine l'inclusion du montant total des transactions dans le rapport. Disponible uniquement pour l'exportation au format CSV. La valeur par défaut est `true`.",
        "in": "query",
        "name": "show_total",
        "schema": {
          "type": "boolean"
        }
      },
      "merchant-of-records": {
        "description": "Merchant of Record. La valeur peut être `xsolla`, `merchant` ou ne pas être spécifiée. Si `merchant`, renvoie les transactions effectuées via les passerelles du partenaire. Si `xsolla`, renvoie les transactions effectuées sans passer par les passerelles du partenaire. Si elle n'est pas spécifiée, toutes les transactions sont renvoyées.",
        "in": "query",
        "name": "merchant_of_records",
        "required": false,
        "schema": {
          "enum": [
            "xsolla",
            "merchant"
          ],
          "nullable": true,
          "type": "string",
          "x-enumDescriptions": {
            "merchant": "Renvoie les transactions effectuées via les passerelles du partenaire.",
            "xsolla": "Renvoie les transactions effectuées sans passer par les passerelles du partenaire."
          }
        }
      },
      "project-id-query-param": {
        "description": "ID de projet.",
        "in": "query",
        "name": "project_id",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "show-dry-run": {
        "description": "Détermine l'inclusion des transactions test.",
        "in": "query",
        "name": "show_dry_run",
        "required": false,
        "schema": {
          "type": "boolean"
        }
      },
      "transfer-id": {
        "description": "ID de virement.",
        "in": "query",
        "name": "transfer_id",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "report-id": {
        "description": "ID de rapport financier.",
        "in": "query",
        "name": "report_id",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "offset": {
        "description": "Numéro de l'élément à partir duquel la liste est générée (le décompte commence à 0).",
        "in": "query",
        "name": "offset",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "limit-req": {
        "description": "Limite du nombre de transactions affichées sur la page. Si ce paramètre est passé, les paramètres `datetime_from` et `datetime_to` ne sont plus requis.",
        "in": "query",
        "name": "limit",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "transaction-status": {
        "description": "Statut de transaction.",
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "enum": [
            "done",
            "canceled",
            "error",
            "refunded"
          ],
          "type": "string"
        }
      },
      "datetime-from": {
        "description": "Début de la période.",
        "in": "query",
        "name": "datetime_from",
        "required": false,
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "datetime-to": {
        "description": "Fin de la période.",
        "in": "query",
        "name": "datetime_to",
        "required": false,
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "transaction-id": {
        "description": "ID de transaction.",
        "in": "query",
        "name": "transaction_id",
        "required": false,
        "schema": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": {
        "description": "Type de transactions affichées dans les résultats de la recherche :",
        "in": "query",
        "name": "type",
        "required": false,
        "schema": {
          "enum": [
            "all",
            "transferred",
            "canceled",
            "test"
          ],
          "type": "string",
          "x-enumDescriptions": {
            "all": "Toutes les transactions.",
            "canceled": "Transactions annulées, à l'exclusion des transactions test.",
            "test": "Transactions test.",
            "transferred": "Transactions réussies, à l'exclusion des transactions test."
          }
        }
      },
      "phone": {
        "description": "Numéro de téléphone au format international.",
        "in": "query",
        "name": "phone",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "user-id-query-param": {
        "description": "ID utilisateur unique dans le jeu stocké de votre côté. Assurez-vous de passer l'ID existant. En cas d'erreur, consultez les [réponses de la FAQ](/fr/doc/pay-station/references/faq/#faq_validation).",
        "in": "query",
        "name": "user_id",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "user-name": {
        "description": "Nom d'utilisateur.",
        "in": "query",
        "name": "user_name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "user-custom": {
        "description": "Paramètre personnalisé pour l'identification utilisateur.",
        "in": "query",
        "name": "user_custom",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "email": {
        "description": "Adresse e-mail de l'utilisateur.",
        "in": "query",
        "name": "email",
        "required": false,
        "schema": {
          "maxLength": 100,
          "type": "string"
        }
      },
      "external-id": {
        "description": "ID de transaction dans le jeu. Il doit être unique pour chaque paiement d'utilisateur.",
        "in": "query",
        "name": "external_id",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "order-id": {
        "description": "ID de commande. Utilisez-le pour appeler la méthode API [Lire une commande](/fr/api/shop-builder/operation/get-order/).",
        "example": 1234,
        "in": "query",
        "name": "order_id",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "limit": {
        "description": "Nombre maximal d'éléments sur une page.",
        "in": "query",
        "name": "limit",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "status": {
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/status.enum"
        }
      },
      "legal-entity-id": {
        "description": "ID de l'entité légale du développeur.",
        "in": "query",
        "name": "legal_entity_id",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "payout-status": {
        "description": "Statut du virement.",
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "enum": [
            "hold",
            "ready",
            "paid"
          ],
          "type": "string",
          "x-enumDescriptions": {
            "hold": "Attente de demande de traitement.",
            "paid": "Virement complété.",
            "ready": "Virement en cours."
          }
        }
      },
      "token-path-param": {
        "description": "Jeton utilisé pour ouvrir l'interface de paiement.",
        "in": "path",
        "name": "token",
        "required": true,
        "schema": {
          "maxLength": 80,
          "minLength": 32,
          "pattern": "^[A-Za-z0-9_]+$",
          "type": "string"
        }
      },
      "user-id-path-param": {
        "description": "ID utilisateur unique dans le jeu stocké de votre côté. Assurez-vous de passer l'ID existant. En cas d'erreur, consultez les [réponses de la FAQ](/fr/doc/pay-station/references/faq/#faq_validation).",
        "in": "path",
        "name": "user_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "mode": {
        "description": "Définissez sur `sandbox` pour tester le processus de paiement. Supprimez le paramètre pour effectuer des paiements réels.",
        "in": "query",
        "name": "mode",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "type-path-param": {
        "description": "Type de compte de paiement.",
        "in": "path",
        "name": "type",
        "required": true,
        "schema": {
          "enum": [
            "card",
            "amazon",
            "skrill",
            "paypal",
            "toss",
            "alipayplus_cn",
            "alipayplus_hk",
            "alipayplus_gcash",
            "alipayplus_dana",
            "alipayplus_rabbitlinepay",
            "alipayplus_tng",
            "alipayplus_boost",
            "alipayplus_truemoney",
            "alipayplus_maya",
            "alipayplus_kplus",
            "softbank_paypay",
            "softbank_docomo",
            "softbank_softbank2",
            "softbank_au",
            "softbank_ymobile",
            "paysafecard_eu",
            "paysafecard_us",
            "paidy",
            "klarna",
            "mercadopago",
            "nupay"
          ],
          "type": "string",
          "x-enumDescriptions": {
            "alipayplus_boost": "Boost.",
            "alipayplus_cn": "Alipay.",
            "alipayplus_dana": "DANA.",
            "alipayplus_gcash": "GCash.",
            "alipayplus_hk": "Alipay (Hong Kong).",
            "alipayplus_kplus": "K PLUS.",
            "alipayplus_maya": "Maya.",
            "alipayplus_rabbitlinepay": "Rabbit LINE pay.",
            "alipayplus_tng": "Touch 'n Go.",
            "alipayplus_truemoney": "TrueMoney Wallet.",
            "amazon": "Amazon Pay.",
            "card": "Cartes bancaires.",
            "klarna": "Klarna. L'enregistrement de compte de paiement est disponible uniquement pour les États-Unis, le Royaume-Uni, la Suède, l'Allemagne, l'Autriche, la Norvège, la Finlande, le Danemark et les Pays-Bas.",
            "mercadopago": "Mercado Pago (y compris Mercado Pago Connect).",
            "nupay": "NuPay.",
            "paidy": "Paidy.",
            "paypal": "PayPal.",
            "paysafecard_eu": "Paysafecard (UE).",
            "paysafecard_us": "Paysafecard (É.-U.).",
            "skrill": "Skrill Digital Wallet.",
            "softbank_au": "au Easy Payment.",
            "softbank_docomo": "Docomo.",
            "softbank_paypay": "PayPay.",
            "softbank_softbank2": "SoftBank.",
            "softbank_ymobile": "Y!mobile.",
            "toss": "Toss Wallet."
          }
        }
      },
      "account-id-path-param": {
        "description": "ID du compte enregistré dans la base de données Xsolla.",
        "in": "path",
        "name": "account_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    },
    "schemas": {
      "empty-body": {
        "description": "Pour que l'appel API fonctionne correctement, le corps de la requête doit être vide.",
        "nullable": true,
        "type": "object"
      },
      "status.enum": {
        "description": "Statut de transaction.",
        "enum": [
          "created",
          "processing",
          "review",
          "error",
          "done",
          "awaitingRefund",
          "refunded",
          "canceled",
          "partiallyRefunded"
        ],
        "type": "string",
        "x-enumDescriptions": {
          "awaitingRefund": "La transaction est en attente d'une décision de remboursement. Une fois que l'utilisateur a demandé un remboursement, le service client Xsolla traite manuellement la demande et prend une décision sur le remboursement.",
          "canceled": "Il existe deux scénarios possibles :\n  - La transaction a été annulée par le système de paiement. Par exemple, le compte de l'utilisateur n'était pas suffisamment approvisionné.\n  - Le paiement a été remboursé à l'utilisateur.",
          "created": "L'utilisateur a initié la transaction, mais celle-ci n'a pas encore été traitée.",
          "done": "La transaction a été traitée avec succès.",
          "error": "Une erreur s'est produite lors du traitement de la transaction. Pour obtenir un remboursement, contactez le service client Xsolla.",
          "partiallyRefunded": "L'utilisateur a reçu un remboursement partiel.",
          "processing": "La transaction est en cours de traitement.",
          "refunded": "Un remboursement a été effectué sur le solde Xsolla de l'utilisateur.",
          "review": "La transaction a été suspendue par le système anti-fraude. Elle fait actuellement l'objet d'une vérification supplémentaire."
        }
      },
      "custom_parameters": {
        "description": "Cet objet comprend des paramètres pour configurer les filtres anti-fraude. La liste des paramètres est présentée ci-dessous. Pour des paramètres personnalisés, contactez votre responsable de la réussite client ou envoyez un e-mail à [csm@xsolla.com](mailto:csm@xsolla.com).",
        "properties": {
          "active_date": {
            "description": "Date de dernière visite selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "type": "string"
          },
          "additional_verification": {
            "description": "Indique si le joueur utilise des méthodes de vérification de compte.",
            "type": "boolean"
          },
          "character_customized": {
            "description": "Indique si le joueur a personnalisé son personnage.",
            "type": "boolean"
          },
          "chat_activity": {
            "description": "Indique si le joueur utilise la fonction de chat.",
            "type": "boolean"
          },
          "completed_tasks": {
            "description": "Nombre de tâches/objectifs terminés.",
            "type": "integer"
          },
          "forum_activity": {
            "description": "Indique si le joueur utilise la fonction forum.",
            "type": "boolean"
          },
          "items_used": {
            "description": "Indique si le joueur utilise des objets achetés dans le jeu.",
            "type": "boolean"
          },
          "karma_points": {
            "description": "Karma du joueur.",
            "type": "integer"
          },
          "last_change_password_date": {
            "description": "Date de dernier changement de mot de passe selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "type": "string"
          },
          "non_premium_currency": {
            "description": "Quantité de la monnaie non-premium.",
            "format": "float",
            "type": "number"
          },
          "notifications_enabled": {
            "description": "Indique si le joueur a activé les notifications.",
            "type": "boolean"
          },
          "profile_completed": {
            "description": "Indique si le joueur a ajouté des informations supplémentaires à son profil.",
            "type": "boolean"
          },
          "profile_image_added": {
            "description": "Indique si le joueur a téléchargé une image de profil.",
            "type": "boolean"
          },
          "pvp_activity": {
            "description": "Détermine la participation du joueur à des combats JcJ (joueur(s) contre joueur(s)).",
            "type": "boolean"
          },
          "registration_date": {
            "description": "Date de création de compte selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "type": "string"
          },
          "session_time": {
            "description": "Durée moyenne de session selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "type": "string"
          },
          "social_networks_added": {
            "description": "Indique si le joueur a connecté des profils de médias sociaux.",
            "type": "boolean"
          },
          "total_bans": {
            "description": "Nombre de fois que le joueur a été banni du chat/forum.",
            "type": "integer"
          },
          "total_characters": {
            "description": "Nombre de personnages dans le jeu.",
            "type": "integer"
          },
          "total_clans": {
            "description": "Nombre de clans dont le joueur est membre.",
            "type": "integer"
          },
          "total_friends": {
            "description": "Nombre d'amis.",
            "type": "integer"
          },
          "total_game_events": {
            "description": "Nombre d'événements en jeu auxquels le joueur a participé.",
            "type": "integer"
          },
          "total_gifts": {
            "description": "Nombre de cadeaux en jeu que le joueur a envoyés/reçus.",
            "type": "integer"
          },
          "total_hours": {
            "description": "Nombre total d'heures passées dans le jeu.",
            "type": "integer"
          },
          "total_inventory_value": {
            "description": "Valeur totale de l'inventaire en monnaie de jeu.",
            "format": "float",
            "type": "number"
          },
          "total_sum": {
            "description": "Montant total des paiements.",
            "format": "float",
            "type": "number"
          },
          "tutorial_completed": {
            "description": "Indique si le joueur a terminé le tutoriel du jeu.",
            "type": "boolean"
          },
          "unlocked_achievements": {
            "description": "Nombre de réalisations débloquées.",
            "type": "integer"
          },
          "user_level": {
            "description": "Niveau, réputation ou rang du joueur.",
            "type": "integer"
          },
          "win_rate": {
            "description": "Taux de victoire du joueur.",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "is_lootbox": {
        "default": false,
        "description": "Détermine s’il s’agit d’une boîte à butin.",
        "type": "boolean"
      },
      "subscription": {
        "description": "Données d'abonnement.",
        "properties": {
          "available_plans": {
            "description": "Plans d'abonnement à afficher dans l'interface de paiement.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "currency": {
            "description": "Devise du plan d'abonnement à utiliser dans tous les calculs.",
            "type": "string"
          },
          "operation": {
            "description": "Type d'opération appliqué au plan d'abonnement de l'utilisateur. Pour modifier le plan d'abonnement, passez la valeur `change_plan`. Vous devez passer l'ID du nouveau plan dans le paramètre `purchase.subscription.plan_id`.",
            "type": "string"
          },
          "plan_id": {
            "description": "ID externe du plan d'abonnement. Il se trouve dans le compte éditeur sous la section **Subscriptions > Subscription plans**.",
            "type": "string"
          },
          "product_id": {
            "description": "ID de produit.",
            "type": "string"
          },
          "trial_days": {
            "description": "Période d'essai en jours.",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "purchase": {
        "description": "Informations sur l'achat.",
        "properties": {
          "is_lootbox": {
            "$ref": "#/components/schemas/is_lootbox"
          },
          "subscription": {
            "$ref": "#/components/schemas/subscription"
          }
        },
        "type": "object"
      },
      "cancel_url": {
        "description": "URL de la page vers laquelle l'utilisateur est redirigé lorsqu'il ferme l'interface de paiement avant de finaliser la transaction. Fonctionne uniquement si vous utilisez les objets `settings.​ui.​desktop.​header` ou `settings.​ui.​mobile` pour configurer le bouton de fermeture. Si ce bouton est configuré sans URL définie dans ce paramètre, l'URL du paramètre `settings.return_url` est utilisée par défaut.",
        "type": "string"
      },
      "currency": {
        "description": "Devise de paiement préférée. Code de devise à trois lettres selon la norme [ISO 4217](https://developers.xsolla.com/fr/doc/pay-station/references/supported-currencies/).",
        "type": "string"
      },
      "external_id": {
        "description": "ID de transaction dans le jeu. Il doit être unique pour chaque paiement utilisateur. Reportez-vous à la <a href=\"https://developers.xsolla.com/fr/doc/pay-station/references/faq/#faq_payments_q_new_transaction_external_id\">documentation</a> pour des informations détaillées.",
        "type": "string"
      },
      "language": {
        "description": "Langue d'interface. [Code de langue](https://developers.xsolla.com/fr/doc/pay-station/features/localization/) à deux lettres minuscules.",
        "type": "string"
      },
      "mode.settings": {
        "description": "Passez la valeur `sandbox` pour tester le processus de paiement. Dans ce cas, utilisez l'URL *https://sandbox-secure.xsolla.com* pour accéder à l'interface de paiement de test.",
        "type": "string"
      },
      "payment_method": {
        "description": "ID de mode de paiement.",
        "type": "integer"
      },
      "payment_widget": {
        "description": "Widget de paiement. La valeur peut être `paybycash` ou `giftcard`. Si le paramètre est défini, l'utilisateur est redirigé vers le widget Pay by Cash ou Gift Cards, respectivement.",
        "enum": [
          "paybycash",
          "giftcard"
        ],
        "type": "string"
      },
      "project_id": {
        "description": "ID Xsolla du jeu. Il se trouve dans le compte éditeur.",
        "type": "integer"
      },
      "redirect_policy": {
        "description": "Paramètres de la politique de redirection.",
        "properties": {
          "delay": {
            "description": "Délai (en secondes) après lequel l'utilisateur est automatiquement redirigé vers l'URL de retour.",
            "type": "integer"
          },
          "manual_redirection_action": {
            "description": "Comportement de Pay Station lorsque l'utilisateur ferme la fenêtre ou clique sur le bouton **Revenir au jeu**. La valeur peut être `redirect` (par défaut) ou `postmessage`. Si le paramètre est défini sur `redirect`, l'utilisateur est redirigé vers l'URL passée dans le jeton ou spécifiée dans le compte éditeur. S'il est défini sur `postmessage`, l'utilisateur n'est pas redirigé vers une autre page. Dans ce cas, la fermeture de la fenêtre déclenche l'envoi de l'événement `close`, tandis qu'un clic sur le bouton **Revenir au jeu**, l'envoi de l'événement `return`.",
            "enum": [
              "redirect",
              "postmessage"
            ],
            "type": "string"
          },
          "redirect_button_caption": {
            "description": "Texte du bouton de redirection manuelle.",
            "type": "string"
          },
          "redirect_conditions": {
            "description": "Statut de paiement pour lequel l'utilisateur est redirigé vers l'URL de retour. La valeur peut être `none`, `successful`, `successful_or_canсeled`, ou `any`.",
            "enum": [
              "none",
              "successful",
              "successful_or_canceled",
              "any"
            ],
            "type": "string"
          },
          "show_redirect_countdown": {
            "default": false,
            "description": "Détermine l’affichage d’un minuteur de redirection sur la page d’état du paiement. La durée du compte à rebours est définie par la valeur du paramètre `settings.redirect_policy.delay`.",
            "type": "boolean"
          },
          "status_for_manual_redirection": {
            "description": "Statut de paiement pour lequel le bouton de redirection de l'utilisateur vers l'URL de retour apparaît. La valeur peut être `none`, `successful`, `successful_or_canсeled`, ou `any`.",
            "enum": [
              "none",
              "successful",
              "successful_or_canceled",
              "any"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "return_url": {
        "description": "URL de la page vers laquelle l'utilisateur est redirigé après le paiement. Reportez-vous à la <a href=\"https://developers.xsolla.com/fr/doc/pay-station/how-to/how-to-configure-redirects/\">documentation</a> pour des informations détaillées sur la configuration des redirections.",
        "type": "string"
      },
      "alternative_first_screen": {
        "description": "Autre vue de l’écran de l’interface de paiement lorsqu’il est ouvert, pouvant \npar exemple afficher les modes de paiement les plus utilisés.\n\nLorsque cette option est définie sur `apple-pay`, l’utilisateur voit le bouton \nApple Pay comme mode de paiement principal, avec un lien vers les autres \noptions. Cette logique ne s’applique pas aux appareils Android.\n",
        "enum": [
          "apple-pay"
        ],
        "type": "string"
      },
      "ap_quick_payment_button": {
        "description": "Détermine l'affichage du bouton de paiement rapide via Apple Pay en haut de \nl'interface de paiement sur les appareils compatibles. La valeur par défaut est \n`true`. Si `false`, Apple Pay est affiché dans la liste des modes de paiement \nselon l'algorithme [PayRank](/fr/doc/pay-station/how-to/how-to-manage-top-payment-methods/).\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>Sur les appareils Android et sur ceux qui ne prennent pas en charge Apple Pay, ce mode de paiement sera toujours masqué, quel que soit le paramètre défini.</p>\n</div>\n",
        "type": "boolean"
      },
      "components": {
        "description": "Paramètres de menu.",
        "properties": {
          "subscriptions": {
            "description": "Paramètres du sous-menu des plans d'abonnement.",
            "properties": {
              "hidden": {
                "description": "Détermine l'affichage du sous-menu.",
                "type": "boolean"
              },
              "order": {
                "description": "Position du sous-menu dans le menu.",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "virtual_currency": {
            "description": "Paramètres du sous-menu de la monnaie virtuelle.",
            "properties": {
              "custom_amount": {
                "description": "Détermine si l'utilisateur peut saisir une quantité aléatoire de monnaie virtuelle dans l'interface de paiement.",
                "type": "boolean"
              },
              "hidden": {
                "description": "Détermine l'affichage du sous-menu.",
                "type": "boolean"
              },
              "order": {
                "description": "Position du sous-menu dans le menu.",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "virtual_items": {
            "description": "Paramètres du sous-menu des objets virtuels.",
            "properties": {
              "hidden": {
                "description": "Détermine l'affichage du sous-menu.",
                "type": "boolean"
              },
              "order": {
                "description": "Position du sous-menu dans le menu.",
                "type": "integer"
              },
              "selected_group": {
                "description": "Groupe à afficher après l'ouverture de l'onglet des objets virtuels.",
                "type": "string"
              },
              "selected_item": {
                "description": "Objet à afficher après l'ouverture de l'onglet des objets virtuels (UGS de l'objet).",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "currency_format": {
        "description": "Définissez sur `code` pour afficher un code de devise à trois lettres selon la norme [ISO 4217](https://developers.xsolla.com/fr/doc/pay-station/references/supported-currencies/) dans l'interface de paiement. Par défaut, le symbole de la devise est affiché à la place du code de devise à trois lettres.",
        "type": "string"
      },
      "close_button_icon": {
        "description": "Icône du bouton **Fermer** dans l'interface de paiement.",
        "enum": [
          "arrow",
          "cross"
        ],
        "type": "string",
        "x-enumDescriptions": {
          "arrow": "Icône **←** à gauche de l'en-tête de l'interface de paiement.",
          "cross": "Icône **×** à droite de l'en-tête de l'interface de paiement."
        }
      },
      "header.desktop": {
        "description": "Paramètres de l'en-tête.",
        "properties": {
          "close_button": {
            "default": false,
            "description": "Détermine l'affichage du bouton de fermeture de l'interface de paiement. Lorsqu'un utilisateur clique dessus, l'interface se ferme et il est redirigé vers l'URL définie dans le paramètre `settings.cancel_url`. Si aucune URL n'est fournie, celle du paramètre `settings.return_url` est utilisée à la place.",
            "type": "boolean"
          },
          "close_button_icon": {
            "$ref": "#/components/schemas/close_button_icon"
          },
          "is_visible": {
            "description": "Détermine l'affichage de l'en-tête dans l'interface de paiement.",
            "type": "boolean"
          },
          "type": {
            "description": "Apparence de l'en-tête. La valeur peut être `compact` (le nom du projet et l'ID utilisateur ne s'affichent pas) ou `normal` (par défaut).",
            "enum": [
              "compact",
              "normal"
            ],
            "type": "string"
          },
          "visible_logo": {
            "description": "Si `true`, le logo s'affiche dans l'en-tête. Pour télécharger l'image, ouvrez votre projet dans le [Compte éditeur](https://publisher.xsolla.com/) et accédez à la section **Pay Station > Settings**.",
            "type": "boolean"
          },
          "visible_name": {
            "description": "Détermine l'affichage du nom du projet dans l'en-tête.",
            "type": "boolean"
          },
          "visible_purchase": {
            "description": "Détermine l'affichage de la description de l'achat (`purchase.description.value`) dans l'en-tête. Défini sur `true` par défaut.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "subscription_list.desktop": {
        "description": "Paramètres de la liste des plans d'abonnement.",
        "properties": {
          "description": {
            "description": "Texte à afficher dans l'interface de paiement au-dessus de la liste des plans d'abonnement disponibles.",
            "type": "string"
          },
          "display_local_price": {
            "description": "Si défini sur `true`, et que la devise locale de l'utilisateur diffère de la devise de base du plan d'abonnement, l'utilisateur voit deux prix : l'un dans la devise locale et l'autre dans la devise de base.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "desktop.ui": {
        "description": "Paramètres de l'interface pour la version de bureau.",
        "properties": {
          "header": {
            "$ref": "#/components/schemas/header.desktop"
          },
          "subscription_list": {
            "$ref": "#/components/schemas/subscription_list.desktop"
          }
        },
        "type": "object"
      },
      "gp_quick_payment_button": {
        "description": "Mode d'affichage du mode de paiement Google Pay. Si la valeur est `true`, le bouton de paiement rapide via Google Pay s'affiche en haut de l'interface de paiement, quel que soit l'appareil ou le navigateur utilisé. Si la valeur est `false`, Google Pay apparaît dans la liste des modes de paiement, selon l'algorithme [PayRank](/fr/doc/pay-station/how-to/how-to-manage-top-payment-methods/). Si le paramètre n'est pas passé, Google Pay s'affiche en haut de l'interface de paiement sur tous les appareils et navigateurs, à l'exception de Safari, où il apparaît dans la liste des modes de paiement.",
        "type": "boolean"
      },
      "header.ui": {
        "properties": {
          "visible_virtual_currency_balance": {
            "description": "Détermine l'affichage de cet élément dans l'interface de paiement. Défini sur `true` par défaut.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "is_cart_open_by_default": {
        "description": "Affichage de la liste des objets du panier et des informations financières dans l’interface de paiement. Lorsque la valeur est définie sur `true`, les informations s’affichent en vue développée. Si elle est définie sur `false` (valeur par défaut) ou si le paramètre est omis, les informations s’affichent en vue réduite.",
        "type": "boolean"
      },
      "is_independent_windows": {
        "description": "Détermine la redirection des utilisateurs du navigateur du lanceur intégré (WebView) vers leur navigateur par défaut pour effectuer un achat. La valeur par défaut est `false`.",
        "type": "boolean"
      },
      "is_language_selector_hidden": {
        "description": "Détermine l'affichage du sélecteur de langue sur la page de paiement. Si la valeur est `false` (valeur par défaut), le sélecteur est affiché.",
        "type": "boolean"
      },
      "is_payment_methods_list_mode": {
        "description": "Détermine l'affichage de la liste des modes de paiement disponibles dans le pays de l'utilisateur à l'ouverture de l'interface de paiement. Si `false` (par défaut), le mode de paiement passé dans le paramètre `settings.payment_method` ou le mode sélectionné selon l'[algorithme du PayRank](https://developers.xsolla.com/fr/solutions/payments/payment-ui-management/top-payment-methods-management/) s'affiche.",
        "type": "boolean"
      },
      "is_prevent_external_link_open": {
        "description": "Détermine la désactivation des liens de redirection vers une ressource externe. Défini sur `false` par défaut. Un clic sur un lien externe déclenche l'envoi de l'événement `external-link-open` via le mécanisme `postMessage`. L'adresse du lien de redirection est passée dans le paramètre `url`.",
        "type": "boolean"
      },
      "is_search_field_hidden": {
        "description": "Détermine l'affichage de la barre de recherche de modes de paiement dans l'interface. Si `true`, la barre de recherche est cachée. La valeur par défaut est `false`.",
        "type": "boolean"
      },
      "is_show_close_widget_warning": {
        "description": "Détermine l'affichage d'une infobulle sur le traitement de la transaction au passage de la souris sur l'icône **×** avant la fermeture de la page de paiement. Défini sur `false`, ou si le paramètre n'est pas passé, l'infobulle ne s'affiche pas. La valeur par défaut est `true`.",
        "type": "boolean"
      },
      "is_three_ds_independent_windows": {
        "default": false,
        "description": "Détermine l'ouverture de la vérification 3-D Secure dans une nouvelle fenêtre du navigateur. Définissez sur `true`, si votre configuration applique une politique de sécurité du contenu (CSP).",
        "type": "boolean"
      },
      "layout": {
        "description": "Emplacement des principaux éléments de l'interface de paiement. Vous pouvez ouvrir l'interface de paiement à l'intérieur de votre jeu et/ou permuter les colonnes contenant des informations sur la commande et les modes de paiement. Reportez-vous aux [instructions de customisation](https://developers.xsolla.com/fr/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_layout) pour des informations détaillées.",
        "enum": [
          "embed",
          "column_reverse",
          "embed_column_reverse"
        ],
        "type": "string"
      },
      "mobile.ui": {
        "properties": {
          "header": {
            "properties": {
              "close_button": {
                "default": false,
                "description": "Détermine l'affichage du bouton de fermeture de l'interface de paiement dans la version mobile. Lorsqu'un utilisateur clique dessus, l'interface se ferme et il est redirigé vers l'URL définie dans le paramètre `settings.cancel_url`. Si aucune URL n'est fournie, celle du paramètre `settings.return_url` est utilisée à la place.",
                "type": "boolean"
              },
              "close_button_icon": {
                "$ref": "#/components/schemas/close_button_icon"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "mode.ui": {
        "description": "Mode d’affichage de l’interface de paiement pour gérer les modes de paiement \nenregistrés. Peut être défini sur `user_account` ou omis. Dans ce mode, \nl’utilisateur peut uniquement changer la langue, ajouter de nouveaux moyens de \npaiement et supprimer ceux existants.\n\n<div class=\"note\">\n<p><strong>Note</strong></p><p>Lorsque ce paramètre est passé, le bouton de redirection ne s'affiche pas. Pour rediriger un utilisateur après l'enregistrement d'un moyen de paiement, configurez les <a href=\"/fr/doc/pay-station/how-to/how-to-configure-redirects/#pay_station_how_to_configure_redirects_automatic/\">redirections automatiques</a>.</p>\n</div>\n",
        "type": "string"
      },
      "theme.ui": {
        "description": "Thème d'interface de paiement. Les valeurs possibles sont : `63295a9a2e47fab76f7708e1` pour le thème clair (par défaut) ou `63295aab2e47fab76f7708e3` pour le thème foncé. Vous pouvez également [créer un thème personnalisé](https://developers.xsolla.com/fr/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_in_token) et passez son ID dans ce paramètre.",
        "enum": [
          "63295a9a2e47fab76f7708e1",
          "63295aab2e47fab76f7708e3"
        ],
        "type": "string"
      },
      "payment_accounts_enable": {
        "properties": {
          "enable": {
            "description": "Détermine l'affichage dans l'interface de paiement de l'icône de crayon qui mène à la page d'édition des modes de paiement. La valeur par défaut est `true`.",
            "type": "boolean"
          },
          "order": {
            "description": "Position de la section dans la liste déroulante dans l'interface de paiement. Obligatoire si `settings.ui.user_account.payment_accounts.enable` est passé.",
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "user_account": {
        "description": "Informations de compte utilisateur.",
        "properties": {
          "payment_accounts": {
            "allOf": [
              {
                "description": "Section **Modes de paiement enregistrés**."
              },
              {
                "$ref": "#/components/schemas/payment_accounts_enable"
              }
            ]
          }
        },
        "type": "object"
      },
      "ui": {
        "description": "Paramètres d'interface.",
        "properties": {
          "alternative_first_screen": {
            "$ref": "#/components/schemas/alternative_first_screen"
          },
          "apple_pay_quick_payment_button": {
            "$ref": "#/components/schemas/ap_quick_payment_button"
          },
          "components": {
            "$ref": "#/components/schemas/components"
          },
          "currency_format": {
            "$ref": "#/components/schemas/currency_format"
          },
          "desktop": {
            "$ref": "#/components/schemas/desktop.ui"
          },
          "gp_quick_payment_button": {
            "$ref": "#/components/schemas/gp_quick_payment_button"
          },
          "header": {
            "$ref": "#/components/schemas/header.ui"
          },
          "is_cart_open_by_default": {
            "$ref": "#/components/schemas/is_cart_open_by_default"
          },
          "is_independent_windows": {
            "$ref": "#/components/schemas/is_independent_windows"
          },
          "is_language_selector_hidden": {
            "$ref": "#/components/schemas/is_language_selector_hidden"
          },
          "is_payment_methods_list_mode": {
            "$ref": "#/components/schemas/is_payment_methods_list_mode"
          },
          "is_prevent_external_link_open": {
            "$ref": "#/components/schemas/is_prevent_external_link_open"
          },
          "is_search_field_hidden": {
            "$ref": "#/components/schemas/is_search_field_hidden"
          },
          "is_show_close_widget_warning": {
            "$ref": "#/components/schemas/is_show_close_widget_warning"
          },
          "is_three_ds_independent_windows": {
            "$ref": "#/components/schemas/is_three_ds_independent_windows"
          },
          "layout": {
            "$ref": "#/components/schemas/layout"
          },
          "mobile": {
            "$ref": "#/components/schemas/mobile.ui"
          },
          "mode": {
            "$ref": "#/components/schemas/mode.ui"
          },
          "theme": {
            "$ref": "#/components/schemas/theme.ui"
          },
          "user_account": {
            "$ref": "#/components/schemas/user_account"
          }
        },
        "type": "object"
      },
      "settings": {
        "description": "Paramètres pour la configuration de la procédure de paiement et de l'interface de paiement pour l'utilisateur.",
        "properties": {
          "cancel_url": {
            "$ref": "#/components/schemas/cancel_url"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "external_id": {
            "$ref": "#/components/schemas/external_id"
          },
          "language": {
            "$ref": "#/components/schemas/language"
          },
          "mode": {
            "$ref": "#/components/schemas/mode.settings"
          },
          "payment_method": {
            "$ref": "#/components/schemas/payment_method"
          },
          "payment_widget": {
            "$ref": "#/components/schemas/payment_widget"
          },
          "project_id": {
            "$ref": "#/components/schemas/project_id"
          },
          "redirect_policy": {
            "$ref": "#/components/schemas/redirect_policy"
          },
          "return_url": {
            "$ref": "#/components/schemas/return_url"
          },
          "ui": {
            "$ref": "#/components/schemas/ui"
          }
        },
        "required": [
          "project_id"
        ],
        "type": "object"
      },
      "age.user": {
        "description": "Âge de l'utilisateur.",
        "type": "integer"
      },
      "attributes.user": {
        "description": "Attributs de l'utilisateur nécessaires pour filtrer la liste des objets. Ils se présentent sous la forme d'un JSON valide de paires clé-valeur.",
        "type": "object"
      },
      "country.user": {
        "properties": {
          "allow_modify": {
            "description": "Détermine si l'utilisateur peut changer le pays dans l'interface de paiement. Par défaut, si le paramètre `country.value` est passé dans le jeton, la valeur est `false`.",
            "type": "boolean"
          },
          "value": {
            "description": "Code pays à deux lettres majuscules selon la norme [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "email.user": {
        "description": "L'objet `user.email` est essentiel pour construire les modèles anti-fraude et permet d'améliorer les taux d'acceptation. C'est une exigence à la fois de Xsolla et des systèmes de paiement. Si ce paramètre n'est pas passé, un champ obligatoire pour la saisie de l'adresse e-mail apparaît sur la page de paiement. L'utilisateur reçoit ensuite un reçu d'achat à l'adresse e-mail indiquée dans ce paramètre ou celle saisie sur la page de paiement.",
        "properties": {
          "allow_modify": {
            "description": "Détermine si l'utilisateur peut entrer son adresse e-mail dans l'interface de paiement. Par défaut, si le paramètre `user.email.value` est passé dans le jeton, la valeur est `false`.",
            "type": "boolean"
          },
          "value": {
            "description": "Adresse e-mail de l'utilisateur. Doit être valide selon le protocole [RFC 822](https://www.w3.org/Protocols/rfc822/#z8).",
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "id.user": {
        "properties": {
          "value": {
            "description": "ID utilisateur unique dans le jeu stocké de votre côté. Assurez-vous de passer l'ID existant. En cas d'erreur, consultez les [réponses de la FAQ](/fr/doc/pay-station/references/faq/#faq_validation).",
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "is_legal.user": {
        "description": "Détermine si l'utilisateur est une personne morale.",
        "type": "boolean"
      },
      "legal": {
        "description": "Informations de la personne morale.",
        "properties": {
          "address": {
            "description": "Adresse légale complète.",
            "type": "string"
          },
          "country": {
            "description": "Pays de constitution. Code pays à deux lettres majuscules selon la norme [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).",
            "type": "string"
          },
          "name": {
            "description": "Nom légal complet.",
            "type": "string"
          },
          "vat_id": {
            "description": "Numéro d'identification fiscal.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "legal.user": {
        "allOf": [
          {
            "description": "Informations de la personne morale. L'objet et tous ses paramètres sont requis si `user.is_legal` est défini sur `true`."
          },
          {
            "$ref": "#/components/schemas/legal"
          }
        ]
      },
      "name.user": {
        "properties": {
          "allow_modify": {
            "description": "Détermine si l'utilisateur peut entrer son nom dans l'interface de paiement. Par défaut, si le paramètre `user.name.value` est passé dans le jeton, la valeur est `false`.",
            "type": "boolean"
          },
          "value": {
            "description": "Pseudo de l'utilisateur.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "phone.user": {
        "nullable": true,
        "properties": {
          "value": {
            "description": "Numéro de téléphone de l'utilisateur.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "public_id.user": {
        "properties": {
          "value": {
            "description": "Paramètre qui identifie l'utilisateur de manière unique et qui est connu de celui-ci (adresse e-mail, pseudo, etc.). Permet à l'utilisateur d'effectuer des achats en dehors du magasin en jeu (par exemple, via des kiosques de paiement).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "steam_id.user": {
        "properties": {
          "value": {
            "description": "ID Steam.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "tracking_id.user": {
        "properties": {
          "value": {
            "description": "ID unique de l'utilisateur — utilisé dans les campagnes de marketing. Peut contenir des chiffres et des caractères latins.",
            "maxLength": 32,
            "minLength": 32,
            "type": "string"
          }
        },
        "type": "object"
      },
      "utm.user": {
        "description": "Attributs de trafic.",
        "properties": {
          "utm_campaign": {
            "description": "Titre de la campagne translittéré ou traduit en anglais.",
            "type": "string"
          },
          "utm_content": {
            "description": "Contenu de la campagne.",
            "type": "string"
          },
          "utm_medium": {
            "description": "Canal de trafic (annonces contextuelles, annonces par affichage, e-mailing, etc.).",
            "type": "string"
          },
          "utm_source": {
            "description": "Source de trafic.",
            "type": "string"
          },
          "utm_term": {
            "description": "Mot-clé de la campagne. Si ce paramètre est défini, les statistiques seront basées sur les mots-clés utilisés pour le ciblage des annonces plutôt que sur des requêtes de recherche spécifiques. Dans Google Analytics, le terme `utm_term` spécifié fait partie du rapport général sur les termes de recherche.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "user": {
        "description": "Informations sur l'utilisateur.",
        "properties": {
          "age": {
            "$ref": "#/components/schemas/age.user"
          },
          "attributes": {
            "$ref": "#/components/schemas/attributes.user"
          },
          "country": {
            "$ref": "#/components/schemas/country.user"
          },
          "email": {
            "$ref": "#/components/schemas/email.user"
          },
          "id": {
            "$ref": "#/components/schemas/id.user"
          },
          "is_legal": {
            "$ref": "#/components/schemas/is_legal.user"
          },
          "legal": {
            "$ref": "#/components/schemas/legal.user"
          },
          "name": {
            "$ref": "#/components/schemas/name.user"
          },
          "phone": {
            "$ref": "#/components/schemas/phone.user"
          },
          "public_id": {
            "$ref": "#/components/schemas/public_id.user"
          },
          "steam_id": {
            "$ref": "#/components/schemas/steam_id.user"
          },
          "tracking_id": {
            "$ref": "#/components/schemas/tracking_id.user"
          },
          "utm": {
            "$ref": "#/components/schemas/utm.user"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "token": {
        "example": {
          "settings": {
            "currency": "USD",
            "language": "en",
            "project_id": 16184,
            "ui": {
              "size": "medium"
            }
          },
          "user": {
            "email": {
              "value": "email@example.com"
            },
            "id": {
              "value": "user_2"
            },
            "name": {
              "value": "John Smith"
            }
          }
        },
        "properties": {
          "custom_parameters": {
            "$ref": "#/components/schemas/custom_parameters"
          },
          "purchase": {
            "$ref": "#/components/schemas/purchase"
          },
          "settings": {
            "$ref": "#/components/schemas/settings"
          },
          "user": {
            "$ref": "#/components/schemas/user"
          }
        },
        "type": "object"
      },
      "mock_code": {
        "description": "Un code d'erreur à reproduire lors des tests du processus de paiement via PayPal en mode bac à sable. Assurez-vous de passer le paramètre `\"mode\":\"sandbox\"` pour que le processus fonctionne correctement.",
        "enum": [
          1002,
          1015,
          1039,
          1046,
          1057,
          1089,
          1201,
          1203,
          1801,
          1803,
          2031,
          3006,
          3031,
          5004
        ],
        "type": "integer"
      }
    },
    "requestBodies": {
      "charge-with-saved-account": {
        "content": {
          "application/json": {
            "example": {
              "purchase": {
                "description": {
                  "value": "currency purchase"
                },
                "virtual_currency": {
                  "quantity": 100
                }
              },
              "settings": {
                "currency": "USD",
                "external_id": "ext123",
                "mode": "sandbox"
              },
              "user": {
                "ip": "111.11.11.11",
                "legal": {
                  "address": "17 Crown Street London SW2 0JW United Kingdom",
                  "country": "GB",
                  "name": "My Awesome Company",
                  "vat_id": "GB111111111"
                },
                "name": "John Smith"
              }
            },
            "schema": {
              "properties": {
                "custom_parameters": {
                  "$ref": "#/components/schemas/custom_parameters"
                },
                "purchase": {
                  "description": "Informations sur l'achat.",
                  "properties": {
                    "checkout": {
                      "description": "Informations sur le paiement.",
                      "properties": {
                        "amount": {
                          "description": "Montant de l'achat.",
                          "format": "float",
                          "type": "number"
                        },
                        "currency": {
                          "description": "Devise d'achat. Code de devise à trois lettres selon la norme [ISO 4217](https://developers.xsolla.com/fr/doc/pay-station/references/supported-currencies/).",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": {
                      "properties": {
                        "value": {
                          "maxLength": 4000,
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "virtual_currency": {
                      "description": "Informations sur la monnaie virtuelle.",
                      "properties": {
                        "quantity": {
                          "description": "Montant de l'achat en monnaie virtuelle.",
                          "format": "float",
                          "type": "number"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "settings": {
                  "description": "Paramètres d'achat.",
                  "properties": {
                    "currency": {
                      "$ref": "#/components/schemas/currency"
                    },
                    "external_id": {
                      "$ref": "#/components/schemas/external_id"
                    },
                    "mock_code": {
                      "$ref": "#/components/schemas/mock_code"
                    },
                    "mode": {
                      "description": "Définissez sur `sandbox` pour tester le processus de paiement. Supprimez le paramètre pour effectuer des paiements réels.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "user": {
                  "description": "Informations sur l'utilisateur.",
                  "properties": {
                    "ip": {
                      "description": "Adresse IP de l'utilisateur.",
                      "type": "string"
                    },
                    "legal": {
                      "$ref": "#/components/schemas/legal"
                    },
                    "name": {
                      "description": "Nom d'utilisateur.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "ip"
                  ],
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "required": true
      }
    }
  }
}