Xsolla-logoXsolla Developers
ou
Conta de Distribuidor

Pagamento recusadoWebhook POST

Se uma transação for recusada por um sistema de pagamento, a Xsolla enviará os dados da transação em um webhook do tipo ps_declined para o URL configurado do webhook. O webhook é enviado durante o estágio de autorização ou processamento de pagamento. Nesse caso, o webhook payment\ order_paid não é enviado.

Razões típicas para recusas do sistema de pagamento:

  • A autorização do cartão falhou (por exemplo, o sistema de pagamento não pôde concluir o processo de autorização devido a um erro técnico ou nenhuma resposta do banco) ou foi recusada (por exemplo, o banco respondeu, mas recusou a transação devido a fundos insuficientes ou daods inválidos do cartão).
  • A verificação do 3-D Secure falhou, não foi concluída, ou a confirmação do usuário expirou.
  • O processador ou banco adquirente está temporariamente indisponível ou retorna uma recusa definitiva devido a um erro irreversível, tal como uma conta encerrada ou um número de cartão inválido. É preciso resolver o problema subjacente antes de tentar novamente, ou a transação não será bem-sucedida.

Não deve ser confundido com:

  • Rejeições antifraude, que são relatadas por meio do webhook afs_reject.
  • Reembolsos e reembolsos parciais após um pagamento bem-sucedido, que são relatados por meio do reembolso e dos webhooks partial_refund.

Nota

Para receber o webhook ps_declined, entre em contato com o Gerente de sucesso do Cliente ou envie um e-mail para csm@xsolla.com.

Request
Request Body schema: application/json
notification_type
required
string

Tipo de notificação.

required
object

Detalhes da transação (objeto).

dry_run
integer

Transação de teste. O parâmetro tem valor 1 se for uma transação de teste ou não for enviado se a transação for real.

external_id
string

ID externo de transação.

id
integer

ID de transação.

payment_method
integer

ID de método de pagamento.

object

Detalhes do reembolso (objeto).

author
string

Iniciador de reembolso. O valor do campo é passado de acordo com a tabela:

Iniciador de reembolso Valor do campo
Jogo (via API). API
Usuário da Publisher Account (reembolso automático). E-mail do usuário
Usuário da Publisher Account (com assistência do suporte ao cliente Xsolla). support@xsolla.com
Xsolla (com assistência do suporte ao cliente Xsolla). support@xsolla.com
code
integer

ID do código.

reason
string

Motivo do reembolso.

object

Configurações personalizadas do projeto (objeto).

merchant_id
integer

ID de comerciante.

project_id
integer

ID do projeto. Você pode encontrar esse parâmetro em sua Conta de Distribuidor ao lado do nome do projeto.

object

Dados do usuário (objeto).

id
required
string

ID de usuário.

country
string

País do usuário. Código de país de duas letras maiúsculas, de acordo com o ISO 3166-1 alpha-2.

email
string

E-mail do usuário.

ip
string

IP do usuário.

name
string

Nome de usuário.

Responses
204

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.). Nesse caso, o dinheiro do usuário é debitado, mas a compra falha. Para fazer um reembolso, entre em contato com o suporte ao cliente Xsolla via support@xsolla.com.

500

Retorne para indicar erros temporários com seus servidores.

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