Xsolla-logo

Pagamento do pedido bem-sucedidoWebhook POST

A Xsolla envia o webhook order_paid para o URL especificado quando as seguintes condições são atendidas:

  1. O usuário pagou pelo pedido com sucesso.
  2. Xsolla recebeu uma resposta sobre o processamento bem-sucedido do webhook payment.

O webhook order_paid contém informações sobre os itens comprados e os dados da transação.

O webhook order_paid não será enviado se:

  • O pagamento não foi bem-sucedido, por exemplo:
    • o formulário de pagamento foi aberto, mas o usuário não pagou pelo pedido
    • o formulário de pagamento foi aberto, mas houve erros durante o pagamento
  • A resposta sobre o processamento bem-sucedido do webhook payment não foi recebida.

Recomenda-se que a velocidade de processamento do webhook order_paid seja inferior a 3 segundos.

As respostas esperadas são descritas na seção Respostas. Você pode usar outros códigos de resposta. Dependendo do código da resposta e a conexão da funcionalidade de retorno automático do pagamento, a lógica de processamento do webhook no lado da Xsolla funciona como a seguir:

Código de resposta Retorno automático de pagamento está desativado (por padrão) Retorno automático de pagamento está ativado
400, 401, 402, 403, 404, 409, 422, 415 Nenhuma ação Reembolso automático ao usuário
200, 201, 204 Nenhuma ação Nenhuma ação
Código diferente ou nenhuma resposta ao webhook Múltiplos webhooks são enviados dentro de um intervalo de tempo específico: 2 tentativas dentro de um intervalo de 5 minutos, 7 tentativas dentro de um intervalo de 15 minutos, 10 tentativas de dentro de um intervalo de 60 minutos. Múltiplos webhooks são enviados dentro de um intervalo de tempo específico: 2 tentativas dentro de um intervalo de 5 minutos, 7 tentativas dentro de um intervalo de 15 minutos, 10 tentativas de dentro de um intervalo de 60 minutos. Se todos os webhooks forem enviados mas não for recebida uma resposta bem-sucedida, um reembolso automático é emitido ao usuário.

Para conectar a funcionalidade de reembolso automática, entre em contato com o gerente da conta do projeto ou envie uma mensagem para am@xsolla.com.

Request
Request Body schema: application/json
notification_type
required
string

Tipo de notificação.

required
Array of objects

Lista de itens comprados pelo usuário.

Array
sku
required
string

ID do item único. Para itens com o tipo game_key, é usado um valor no formato sku_drm.

type
required
string

Tipo de itens. Ele pode ter os seguintes valores: virtual_good, virtual_currency, game_key, bundle. Para itens de tipo bundle, incluindo pacotes de moedas virtuais, a matriz de itens exibirá:

  • parâmetros do conjunto ou pacote de moedas virtuais
  • itens incluídos no conjunto ou moedas incluídas no pacote
Enum: "virtual_good" "virtual_currency" "game_key" "bundle"
quantity
required
integer

Quantidade de itens.

amount
required
string

Custo total dos itens com base na quantidade deles. Pode diferir do preço do item devido a taxas de câmbio e comissão.

required
Array of objects

Promoções aplicadas. Se uma promoção não foi aplicada, é passada uma matriz vazia no parâmetro.

Array
amount_with_discount
string

Custo total dos itens com desconto.

amount_without_discount
string

Custo total dos itens sem desconto.

sequence
integer

Ordem de aplicação de promoções.

is_pre_order
required
boolean

Se true, o item está em pré-venda.

custom_attributes
object <json>

Um objeto JSON contendo atributos e valores de item.

required
object

Informações sobre o pedido.

id
required
integer

Identificador exclusivo do pedido do usuário no lado da Xsolla.

mode
required
string

Modalidade de pagamento. default é usado para pagamentos reais; sandbox para pagamentos de testes.

Enum: "default" "sandbox"
currency_type
required
string

Tipo de moeda de pagamento. Para pedidos grátis, é especificado o valor unknown.

Enum: Description
real

por moeda real

unknown

para um pedido grátis

virtual

por moeda virtual

currency
required
string

Moeda de ordem. A moeda virtual usa o SKU e a moeda real usa um código ISO 4217 de três letras.

amount
required
string

O custo total de um carrinho com base na moeda escolhida.

status
required
string

Status do pedido.

platform
required
string or null

Plataforma de pagamento. O valor xsolla é usado para pagamentos via Xsolla. Para outros pagamentos, é utilizado o valor correspondente ao nome da plataforma de publicação de jogos.

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

Comentário do usuário ao pedido.

invoice_id
required
string or null

ID da fatura de pagamentos em moeda real. Pagamentos em moedas virtuais ou itens grátis têm um valor null.

required
Array of objects

Promoções aplicadas. Se uma promoção não foi aplicada, é passada uma matriz vazia no parâmetro.

Array
amount_with_discount
string

Custo total dos itens com desconto.

amount_without_discount
string

Custo total dos itens sem desconto.

sequence
integer

Ordem de aplicação de promoções.

Array of objects

Cupons aplicados. Se o cupom não for aplicado, a matriz não retornará.

Array
code
string

O código de um cupom aplicado.

external_id
string

ID externo.

Array of objects

Códigos promocionais aplicados. Se o código promocional não for aplicado, a matriz não retornará.

Array
code
string

O código de um código promocional aplicado.

external_id
string

ID externo.

required
object

Informações do usuário.

external_id
required
string

ID de usuário.

email
required
string

Endereço de e-mail do usuário.

custom_parameters
object

Informações adicionais.

Responses
200

Retorne para indicar o processamento bem-sucedido.

400

Retorne em caso de erro nas informações fornecidas (por exemplo, um parâmetro obrigatório ausente, falha na autorização, etc.).

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \
-d '{
    "notification_type": "order_paid",
    "items": [
      {
        "sku": "virtual-good-item_test",
        "type": "virtual_good",
        "is_pre_order": false,
        "quantity": 3,
        "amount": "1000",
        "promotions": [
          {
            "amount_without_discount": "6000",
            "amount_with_discount": "5000",
            "sequence": 1
          },
          {
            "amount_without_discount": "5000",
            "amount_with_discount": "4000",
            "sequence": 2
          }
        ]
        "custom_attributes":
          {
            "purchased": 0,
            "attr": "value"
          },
      },
      {
        "sku": "virtual-good-item_test_test_new",
        "type": "bundle",
        "is_pre_order": false,
        "quantity": 1,
        "amount": "1000",
        "promotions": []
      },
      {
        "sku": "gold",
        "type": "virtual_currency",
        "is_pre_order": false,
        "quantity": 1500,
        "amount": "[null]",
        "promotions": []
      }
    ],
    "order": {
      "id": 1,
      "mode": "default",
      "currency_type": "virtual",
      "currency": "sku_currency",
      "amount": "2000",
      "status": "paid",
      "platform": "xsolla",
      "comment": null,
      "invoice_id": "1",
      "promotions": [
        {
          "amount_without_discount": "4000",
          "amount_with_discount": "2000",
          "sequence": 1
        }
      ],
      "promocodes": [
        {
          "code": "promocode_some_code",
          "external_id": "promocode_sku"
        }
      ],
      "coupons": [
        {
          "code": "WINTER2021",
          "external_id": "coupon_sku"
        }
      ]
    },
    "user": {
      "external_id": "id_xsolla_login_1",
      "email": "gc_user@xsolla.com"
    }

}'