Comunidade
Erro 403 pix
[03-Oct-2023 04:47:48 UTC] PHP Fatal error: Uncaught GuzzleHttp\\Exception\\ClientException: Client error: `POST https://api.sandbox.empresas.btgpactual.com/v1/companies/30306294000145/pix-cash-in/locations` resulted in a `401 Unauthorized` response:
{"fault":{"faultstring":"Invalid token: policy(VerifyJWT)","detail":{"errorcode":"steps.jwt.InvalidToken"}}}
in /home/evolute1/\*\*\*/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113
Stack trace:
#0 /home/evolute1//vendor/guzzlehttp/guzzle/src/Middleware.php(72): GuzzleHttp\\Exception\\RequestException::create()
#1 /home/evolute1//vendor/guzzlehttp/promises/src/Promise.php(209): GuzzleHttp\\Middleware::GuzzleHttp\{closure}()
#2 /home/evolute1/vendor/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()
#3 /home/evolute1//vendor/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\{closure}()
#4 /home/evolute1//vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\\Promise\\TaskQueue->run()
#5 /home/evolute1//vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()
#6 /home/evolute1//vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()
#7 /home/evolute1//vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()
#8 /home/evolute1//vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()
#9 /home/evolute1//vendor/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\\Promise\\Promise->wait()
#10 /home/evolute1//teste.php(9): GuzzleHttp\\Client->request()
#11 {main}
thrown in /home/evolute1//vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 113
Código exemplo:
<?php
require_once('vendor/autoload.php');
$client = new \\GuzzleHttp\\Client();
$response = $client->request('POST', '<https://api.sandbox.empresas.btgpactual.com/v1/companies/30306294000145/pix-cash-in/locations'>, \[
'body' => '{"type":"cob","description":"teste wes"}',
'headers' => [
'accept' => 'application/json',
'authorization' => '*****',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
Posted by JOAO WESLEY SILVA MACEDO about 4 hours ago
what is company id?
i am requesting <https://api.sandbox.empresas.btgpactual.com/v1/companies/{companyId}/pix-cash-in/instant-collections>
what is companyId for path parmams and where can i get?
Posted by ROBERTO CAMPOS CARVALHO 2 days ago
Quando recebo o código QR do pix, aparece um erro 403, mas não sei qual é o problema.
Q1. Em relação ao PIX COBRANÇA, qual a diferença entre Locations e InstantCollection?
Q2. Quero gerar código QR para os usuários pagarem (<https://developers.empresas.btgpactual.com/reference/post_companies-companyid-pix-cash-in-locations>)
Fiz uma solicitação referindo-me ao documento da API no seguinte endereço, e o estado 403 foi retornado e uma resposta statusText de 'Reivindicação inválida' foi recebida. Por favor, informe como resolver isso.
Abaixo está o fluxo geral da minha solicitação.
1. Consegui obter o código após solicitá-lo no endereço abaixo.
const response = await axios.get(
`https://id.sandbox.btgpactual.com/oauth2/authorize?client_id=${client_id}&response_type=code&redirect_uri=${redirect_uri}&scope=${scope}&prompt=login`
);
2. <https://id.sandbox.btgpactual.com/oauth2/token>
Por favor, envie uma solicitação para este endereço com o código
Consegui obter accesstoken e refreshToken.
3. Fiz uma solicitação de código qr pix com o seguinte código.
const data = await axios.post(
`https://api.sandbox.empresas.btgpactual.com/v1/companies/${companyId}/pix-cash-in/instant-collections`,
{
pixKey: '13a066bc-1d02-464a-bed9-c98211a00934',
locationId: 'b22b648-9410-423-88f3-497c23608a',
expiresIn: 86400,
amount: {
original: 5,
allowCustomerChangeValue: false,
},
displayText: 'Pix de Teste',
payer: {
name: 'Fulano de Tal',
taxId: 11111111111,
},
tags: {
id: '9ee39748ab664c1390e004470e19facf',
order: 123456,
customerId: 9482392,
},
},
{
headers: {
Accept: 'application/json',
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
},
}
);
Posted by ROBERTO CAMPOS CARVALHO 2 days ago
metodo accounts
Boa tarde. Fiz todo o processo de autenticação com o authorization code com sucesso e tentei obter os accounts pelo <https://api.sandbox.empresas.btgpactual.com/v1/accounts>. Não deu erro, porem retornou vazio.
Onde pode estar o problema?
Posted by Luiz Acácio da Silva Pereira 4 days ago
ERRO NA PAGINA DO DESENVOLVEDOR
403
Desculpe, você não tem autorização para acessar essa página
Posted by Talita Edwiges Siqueira Santos 5 days ago
API para consulta de custódia em renda variável, saldo em conta corrente e garantias
Olá, gostaria de saber o BTG dispõe de API para consulta de custódia em renda variável, saldo em conta corrente e garantias. Na documentação do API Empresas não encontrei nenhum indicio que aponte essa possibilidade. Fico grato se alguém conseguir ajudar a esclarecer essa dúvida. Obrigado.
Posted by Gabriel Heck 6 days ago
Inconsistências Webhook (Produção)
Olá. Estamos utilizando a API de boletos em produção e notei algumas inconsistências nos webhooks.
- Ao registrar aproximadamente 3.000 boletos, respeitando o rate limit da API do BTG, em cerca de 800 boletos não recebemos o webhook com o evento bank-slips.created.
- Hoje o boleto com id 640728c3-9843-415f-b980-940401a0e85b recebemos o webhook com o evento bank-slips.paid 2 vezes. Em um dos eventos veio o parâmetro settledAt e no outro não. Com isso, nosso sistema registrou como um pagamento em duplicidade.
Neste último caso, o boleto foi realmente pago 2 vezes? Na conta só consta o crédito de 1 pagamento.
O parâmetro settledAt recebido no webhook seria a data e horário do crédito na conta? A maioria dos webhooks recebidos com os eventos bank-slips.paid não possuem este parâmetro.
Posted by Cesar Augusto Fazan Branco 6 days ago
Fala com um técnico
O pagamento online do Pix é realizado através da chamada da interface API. Conecte o par de interface de pagamento ao meu produto de internet para uso dos nossos clientes. Cobra ou não? Se há um limite, se há liquidação instantânea, se houver uma taxa de transação única ou modo percentual?
Posted by Thaian 10 days ago
Erro 500 ao criar boleto
Estou recebendo este erro, porém na documentacão não tem nenhum parametro chamado split
{
"fault": {
"faultstring": "Execution of JS-SetTaxIdVariable failed with error: Javascript runtime error: \"TypeError: Cannot call method \"split\" of null. (SetTaxIdVariable.js:2)\"",
"detail": {
"errorcode": "steps.javascript.ScriptExecutionFailed"
}
}
}
Meu body enviado:
{
"payer": {
"address": {
"zipCode": "59626110",
"city": "Mossoró",
"state": "RN",
"street": "RUA FRANCISCO ROSADO BANDEIRA",
"number": "69"
},
"name": "CHRYSTIAN PAULINO NUNES",
"email": "[[email protected]](mailto:nu[email protected])",
"phoneNumber": "84987195148",
"taxId": "10709437463"
},
"installments": 1,
"interests": {
"arrears": {
"type": "PERCENTAGE",
"value": 0
},
"penalty": {
"type": "PERCENTAGE",
"value": 0
}
},
"discounts": [
{
"type": "PERCENTAGE"
},
{
"type": "PERCENTAGE"
}
],
"amount": 1500,
"dueDate": "2021-04-02",
"referenceNumber": "123",
"description": "teste"
}
Posted by CHRYSTIAN PAULINO NUNES 15 days ago
Dúvida geracão de boleto sempre retornando Forbidden 403
Bem, estou utilizando o modelo de autenticacão Authorization Code, que de acordo com a documentacão é o modelo para geracão de boletos, em que o escopo openid é obrigatório.

Estou gerando o Authorization Code de acordo com a URL:
<https://id.sandbox.btgpactual.com/oauth2/authorize?client_id=MEU_CLIIENT_ID&response_type=code&redirect_uri=MINHA_URI&scope=openid>
Então, eu recebo o code e o iss. Utilizo o code no endpoint <https://id.sandbox.btgpactual.com/oauth2/token> e consigo gerar o access_token normalmente, inclusive já testei o endpoint de refresh token e tudo ok.
Porém, no endpoint de criar boleto, sempre recebo Forbidden 403 quando passo o Heder O Bearer "access_token". Já testei com o scope=openid, também testei com o scope empresas.btgpactual.com/bank-slips e nunca vai.
Posted by CHRYSTIAN PAULINO NUNES 15 days ago