Comunidade

Ask a Question
Back to All

PIX - Simular pagamento

Boa tarde,

Não consigo sucesso no endpoint de simulação de pagamento:

curl --location --request POST 'https://secure.sandbox.api.pagseguro.com/pix/pay/:txid'
--header 'Authorization: Bearer xxxxx-xxxx-xxxxxx'

Pois ele me retorna que o token passado no header Authorization é inválido:

{
"message": "'xxx-xxxx-xxxxx' not a valid key=value pair (missing equal-sign) in Authorization header: 'Bearer xxx-xxxx-xxxxx'."
}

O que é estranho, pois utilizo exatamente o mesmo token para consultar outros endpoints (como para cadastrar / consultar webhooks e mesmo criar cobranças), e consigo obter êxito!

Como proceder?

Boa tarde!

A URL correta é: https://sandbox.api.pagseguro.com/pix/pay/{txid}

O TOKEN para simulação de pagamento também é diferente do token client_credencials, ele pode ser recuperado no ambiente de SANDBOX da PagSeguro: https://sandbox.pagseguro.uol.com.br

Após login e senha > Perfis de Integração > Vendedor > Credenciais "Seu Token é".

Oi Weser! Muito obrigado pelo retorno.

A URL que tentei é a que consta na documentação (API Reference). Estranho ser outra. A informação da diferença de tokens também consta lá, no caso eu foi que não me atentei, obrigado!!

De qualquer forma, agora eu tentei aqui no Postman e o erro agora é esse:

{
"timestamp": "2021-10-13T18:13:10.395+00:00",
"path": "/pay/123BAJDH1JASHjvkae123kejauuj743",
"status": 415,
"error": "Unsupported Media Type",
"message": "",
"requestId": "6d0053c6-64826"
}

Sendo que o txid eu acabei de criar usando o endpoint de criar cobranças. Saberia me dizer algo?

Olá Clenisson!

Sim, acabamos de corrigir a documentação.

Veja se você está enviado essa informação no header: header 'Content-Type: application/json'

Caso esteja, pode compartilhar seu curl?

Bom dia, Weser.

Permaneço sem conseguir efetuar a simulação.

Segue cURL:

curl --location --request POST 'https://sandbox.api.pagseguro.com/pix/pay/123BAJDH1JASHjvkae123kejauuj743' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer XXXXXXXXXXXXXXXXXXX'

E a response:

{
    "status": 400,
    "detail": "Algum dos parâmetros informados para a operação não respeita o schema.",
    "type": "https://pix.bcb.gov.br/api/v2/error/OperacaoInvalida",
    "title": "Operação inválida",
    "error_messages": [
        {
            "code": "40002",
            "description": "Algum dos parâmetros informados para a operação não respeita o schema."
        }
    ]
}

Olá, Clenisson!

Segue curl de exemplo:
curl --location --request POST 'https://sandbox.api.pagseguro.com/pix/pay/{{txid}}'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer {{token}}'
--data-raw '{
"status": "PAID",
"tx_id": "{{txid}}"
}'

Só reforçando que o token utilizando neste endpoint é diferente do token utilizado na criação da cobrança.

Ele pode ser recuperado no ambiente de SANDBOX da PagSeguro: https://sandbox.pagseguro.uol.com.br
Após login e senha > Perfis de Integração > Vendedor > Credenciais "Seu Token é"

Att

Marked as answered by Mariana Aguiar

Boa tarde pessoal, meus dias de programação estão bem espaçados, no primeiro dia consegui deixar as chamadas do PIX todas OK menos a de mudança de status. Hoje voltei nisso e nada. Ainda não consegui visualizar o problema.

O erro retornado é o seguinte:
{"status":400,"detail":"Pix notification retornando erro de validação","type":"https://pix.bcb.gov.br/api/v2/error/OperacaoInvalida","title":"Operação inválida","violacoes":[{"razao":"DENIED - validate failed with message 406 406 NOT_ACCEPTABLE","propriedade":"validation"}],"error_messages":[{"code":"40002","description":"DENIED - validate failed with message 406 406 NOT_ACCEPTABLE","parameter_name":"validation"}]}

Resuminho do código que estou usando para a solicitação:
HttpPost post = new HttpPost("https://sandbox.api.pagseguro.com/pix/pay/"+txid);
post.addHeader("Content-Type", "application/json");
post.addHeader("Authorization", "Bearer "+tokenVendedor);
String body = "{"status": "PAID", "tx_id": ""+txid+""}";
StringEntity entity = new StringEntity(body);
post.setEntity(entity);
HttpResponse response = httpClient.execute(post);

Não estou conseguindo ver nada além do que esta na documentação ou nesta discussão.

Alguma dica?

Token esta OK. Dei uma simplificada no codigo só para por aqui, não tem erro de código (caso eu tenha comido alguma letra.) O Post vai normal. SSL ok. Testei algumas variações do json pois achei que podia ser ele e nada.

Olha, estou fazendo o teste de pagamento e não esta funcionado, estou com permissão negada.

curl --location --request POST 'https://sandbox.api.pagseguro.com/pix/pay/b9c263e08d7c4ed1b8f6b624a903c6c6'
--header 'Authorization: Bearer xxxxx => é o token do vendedor'
--header 'Content-Type: application/json'
--data-raw '{
"status": "PAID",
"tx_id": "b9c263e08d7c4ed1b8f6b624a903c6c6"
}'

{
"Message": "User is not authorized to access this resource with an explicit deny"
}

Olá, Henrique!

Realizamos o ajuste, pode tentar novamente que a simulação de pagamento irá funcionar.

Att



© 1996-2025 Todos os direitos reservados.

PAGSEGURO INTERNET INSTITUIÇÃO DE PAGAMENTO S/A - CNPJ/MF 08.561.701/0001-01

Av. Brigadeiro Faria Lima, 1.384, São Paulo - SP - CEP 01451-001

English
Powered by Localize
Português (Brasil)