Comunidade
Gerar Pagamento PIX pela API
Estou tentando gerar um pagamento por PIX pela API do BTG usando a seguinte requisição POST:
<https://api.sandbox.empresas.btgpactual.com/v1/companies/{meuCompanyId}/pix-cash-in/instant-collections>
Header
```
'Accept' => 'application/json',
'Authorization' => 'Bearer {Meu Token} ',
'Content-Type' => 'application/json',
```
Body (Esta como um array, mas na requisição é convertida para JSON)
```
"expiresIn" => 1800,
"amount" => [
"original" => 10.00,
"allowCustomerChangeValue" => False
], // Object
"payer" => [
"name" => "Fulano de Tal",
"taxId" => 11111111111
], //Object
"pixKey" => "MinhaChave",
"locationId" => "LocationIdExemplo",
"displayText" => "Pix de Teste"
```
E ao fazer a requisição gera o seguinte erro:
{"fault":{"faultstring":"Failed to Resolve Variable : policy(VerifyJWT) variable(null)","detail":{"errorcode":"steps.jwt.FailedToResolveVariable"}}}
Esse problema acontece quando executo a requisição pelo CURL da linguagem PHP, quando executo pelo POSTMAN (Software de Terceiros) o retorno da API não encontra nenhum erro e retorna os dados corretos da geração do pedido de pagamento PIX.
Posted by Leandro Diniz Silva about 1 year ago
Geração de boletos via api BTG
Estamos tentando implementar em nosso sistema a geração de boletos através da api do BTG, mas estamos tendo dificuldade para implementar a parte de autenticação/geração de token no BTG Id.
Inicialmente implementamos o método de autenticação Client Credentials, mas ao tentar utilizar o token gerado por esse método de autenticação para gerar o boleto em: <https://api.sandbox.empresas.btgpactual.com/v1/bank-slips>, recebíamos o retorno de token inválido, ao verificar a documentação: <https://developers.empresas.btgpactual.com/reference/post_bank-slips> percebemos que o método de autenticação exigido por essa rota é o Authorization Code.
A dúvidaé a seguinte, percebi que o método de autenticação Authorization Code utiliza a interação com o browser para informar as credenciais do cliente, mas nossa aplicação não utiliza interação com o cliente e a geração do boleto é feita por nossa api.
Como devemos proceder nesse caso? Já que o método de autenticação Client Credentials que pela descrição na documentação seria o mais adequado para nosso tipo de aplicação, não funciona para a geração de boletos do BTG.
Posted by OBNER KNOENER MOZARINO about 1 year ago
Beneficiário final
Para gerar meus boletos preciso dos dados do beneficiário final na api e não achei na documentação essas entradas... como proceder?
Posted by Wanderson Niquini about 1 year ago
A requisição está retornando o erro "client_not_found".
Estou tentando obter o token de acesso da aplicação, para que eu possa gerar um qr code pix através dele.
Porém, a requisição retorna o erro: "client_not_found".
Estou usando o client_id e client_secret de um app criado em ambiente sandbox.
A requisição está sendo feita para o seguinte endpoint: "https://id.btgpactual.com/oauth2/token".
Eu já tentei utilizar o client_id e client_secret de uma aplicação que não tenha sido criada em sandbox, quando faço isso o erro retornado é: "client_unverified".
Gostaria de saber como posso resolver este problema.
Posted by Ihury Kewin de Oliveira Costa about 1 year ago
API PIX - Erro 500
Ao realizar uma requisição como mostrada na [documentação](https://developers.empresas.btgpactual.com/reference/post_companies-companyid-pix-cash-in-instant-collections) da API de PIX, como mostrada no link abaixo. Eu recebo erro 500, seguido de sua descrição.
{
"fault": {
"faultstring": "steps.flowcallout.FCVariableResolutionFailed",
"detail": {
"errorcode": "steps.flowcallout.FCVariableResolutionFailed"
}
}
}
Meu código para requisição usando o guzzle como recomendado na documentação. onde $client é uma instância da classe do guzzle.
```Text php
$response = $client->request('POST', $this->config->get('pix_endpoint_base_route') .
'/v1/companies/' . $this->config->get('pix_company_id') . '/pix-cash-in/instant-collections', [
'form_params' => [
"expiresIn" => 1800,
"amount" => [
"original" => (float) $total,
"allowCustomerChangeValue" => (bool) false
],
"payer" => [
"name" => (string) $customer_name,
"taxId" => (string) $customer_cpf
],
"pixKey" => (string) $kik_pix_key,
"locationId" => (string) $location_id,
"displayText"=> "Pix"
],
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer ' . $this->config->get('pix_access_token'),
'content-type' => 'application/json',
],
]);
```
E ao testar na propria página da [documentação](https://developers.empresas.btgpactual.com/reference/post_companies-companyid-pix-cash-in-instant-collections) onde é possível realizar um teste colocando informações básicas o mesmo erro é retornado.
Posted by Leandro Diniz Silva about 1 year ago
Erro ao gerar pix cobrança
Quando tento gerar o pix de cobrança seguindo a /documentação da própria BTG recebo erro 500 com as seguintes informações.
```
{
"fault": {
"faultstring": "steps.flowcallout.FCVariableResolutionFailed",
"detail": {
"errorcode": "steps.flowcallout.FCVariableResolutionFailed"
}
}
}
```
os parâmetros q estou passando são
```
$response = Http::withHeaders([
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $this->getAccessToken()
])->post("{$this->base_url}/companies/{$this->company_id}/pix-cash-in/instant-collections", [
'pixKey' => $this->pix_key,
'amount' => [
'original' => $data['amount'],
'allowCustomerChangeValue' => false,
],
'displayText' => $data['description'],
'payer' => [
'name' => $data['payer']['name'],
'taxId' => $data['payer']['taxId']
],
'tags' => [
'internalId' => $data['internal_id']
]
]);
```
Aguardo um retorno mais breve possível sobre o erro.
Posted by Daniel Maycon Malinoski about 1 year ago
Tarifas
Queria saber sobre as tarifas pelo uso da API.
Posted by Renan Kauan about 1 year ago
Duvidas, tenho um app cad. no sandbox: id da app: 67755519-95a4-4a69-b2f3-cc9d79e09ae6
Minha App vai rodar localmente em ambiente seguro:
Consegui recuperar o token na url: <https://id.sandbox.btgpactual.com/oauth2/token> passando o cliendid e cliente_secret
```
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCIsImtpZCI6Im05TDBhUGZkdGdkVUNCMHkyaTJKTi1vWWNFVGFJNG1ROTNqMER3Wi1LOFEifQ.eyJzdWIiOm51bGwsImdyYW50X3R5cGUiOiJjbGllbnRfY3JlZGVudGlhbHMiLCJzY29wZSI6ImVtcHJlc2FzLmJ0Z3BhY3R1YWwuY29tL2FjY291bnRzIiwiaXNzIjoiaHR0cHM6Ly9pZC5zYW5kYm94LmJ0Z3BhY3R1YWwuY29tIiwiZXhwIjoxNjc4MzAwMzgxLCJpYXQiOjE2NzgyMTM5ODEsImNsaWVudF9pZCI6IjY3NzU1NTE5LTk1YTQtNGE2OS1iMmYzLWNjOWQ3OWUwOWFlNiIsImp0aSI6InFlbURUWHRzaFhLVENZOXVMY1BGZlBCUHNUNHlOVmZ1cXF3OGpQWEFMclEifQ.CQCshN210pwVx-ZPaf34-ny4zo32hdJT3w-NY-3Db8mWBE1vNSb3uwX101EBHziKE4R4hYIj_5dQOIjtMhnqR8HUw5xj0KYc8d1btiQy1da0Bp8ulTtCkPEwi7PD475Vpt9EeKg6tkMb2d_9TE6y08LBTRkn-vtaSGIxe6PnVLfA9r4d3FEcNq6nAd9TKOKE_d-v4T3F5yoFrADYoGzVmBvw-Yh25FvYnyhcLkhLLPa1Zcqtxls6C-79vKvR9ToKXurII8J79_4vy3CH-xe9djo_evXv0fXHhe0EEuSjsS8Eb2guVo-Jgwql2hoErcCrPudD2_bAMOn06dtbnMAGGQ",
"scope": "empresas.btgpactual.com/accounts",
"token_type": "Bearer",
"expires_in": 86400
}
```
Tentei executar o codigo abaixo copiado de "[ https://developers.empresas.btgpactual.com/reference/post_companies-companyid-pix-cash-in-locations](https://developers.empresas.btgpactual.com/reference/post_companies-companyid-pix-cash-in-locations)"
```
curl --request POST \
--url https://api.sandbox.empresas.btgpactual.com/v1/companies/30306294000145/pix-cash-in/locations \
--header 'accept: application/json' \
--header 'authorization: Bearer
eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCIsImtpZCI6Im05TDBhUGZkdGdkVUNCMHkyaTJKTi1vWWNFVGFJNG1ROTNqMER3Wi1LOFEifQ.eyJzdWIiOm51bGwsImdyYW50X3R5cGUiOiJjbGllbnRfY3JlZGVudGlhbHMiLCJzY29wZSI6ImVtcHJlc2FzLmJ0Z3BhY3R1YWwuY29tL2FjY291bnRzIiwiaXNzIjoiaHR0cHM6Ly9pZC5zYW5kYm94LmJ0Z3BhY3R1YWwuY29tIiwiZXhwIjoxNjc4MzAwMzgxLCJpYXQiOjE2NzgyMTM5ODEsImNsaWVudF9pZCI6IjY3NzU1NTE5LTk1YTQtNGE2OS1iMmYzLWNjOWQ3OWUwOWFlNiIsImp0aSI6InFlbURUWHRzaFhLVENZOXVMY1BGZlBCUHNUNHlOVmZ1cXF3OGpQWEFMclEifQ.CQCshN210pwVx-ZPaf34-ny4zo32hdJT3w-NY-3Db8mWBE1vNSb3uwX101EBHziKE4R4hYIj_5dQOIjtMhnqR8HUw5xj0KYc8d1btiQy1da0Bp8ulTtCkPEwi7PD475Vpt9EeKg6tkMb2d_9TE6y08LBTRkn-vtaSGIxe6PnVLfA9r4d3FEcNq6nAd9TKOKE_d-v4T3F5yoFrADYoGzVmBvw-Yh25FvYnyhcLkhLLPa1Zcqtxls6C-79vKvR9ToKXurII8J79_4vy3CH-xe9djo_evXv0fXHhe0EEuSjsS8Eb2guVo-Jgwql2hoErcCrPudD2_bAMOn06dtbnMAGGQ' \
--header 'content-type: application/json' \
--data '
{
"type": "cob",
"description": "descrição de exemplo"
}'
```
Retornou a msg e no ambiente do api reference a mesma mensagem, o que está errado ? obs. com o cnpj da empresa inicial 09.296 ..... acontece a mesma coisa
```json json
{"fault":{"faultstring":"Invalid token: policy(VerifyJWT)","detail":{"errorcode":"steps.jwt.InvalidToken"}}}%
```
Tentei executar a chamada somente para teste o mesmo problema
```
curl --request GET \
--url https://api.sandbox.empresas.btgpactual.com/v1/accounts \
--header 'accept: application/json' \
--header 'authorization: Bearer
eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCIsImtpZCI6Im05TDBhUGZkdGdkVUNCMHkyaTJKTi1vWWNFVGFJNG1ROTNqMER3Wi1LOFEifQ.eyJzdWIiOm51bGwsImdyYW50X3R5cGUiOiJjbGllbnRfY3JlZGVudGlhbHMiLCJzY29wZSI6ImVtcHJlc2FzLmJ0Z3BhY3R1YWwuY29tL2FjY291bnRzIiwiaXNzIjoiaHR0cHM6Ly9pZC5zYW5kYm94LmJ0Z3BhY3R1YWwuY29tIiwiZXhwIjoxNjc4MzAwMzgxLCJpYXQiOjE2NzgyMTM5ODEsImNsaWVudF9pZCI6IjY3NzU1NTE5LTk1YTQtNGE2OS1iMmYzLWNjOWQ3OWUwOWFlNiIsImp0aSI6InFlbURUWHRzaFhLVENZOXVMY1BGZlBCUHNUNHlOVmZ1cXF3OGpQWEFMclEifQ.CQCshN210pwVx-ZPaf34-ny4zo32hdJT3w-NY-3Db8mWBE1vNSb3uwX101EBHziKE4R4hYIj_5dQOIjtMhnqR8HUw5xj0KYc8d1btiQy1da0Bp8ulTtCkPEwi7PD475Vpt9EeKg6tkMb2d_9TE6y08LBTRkn-vtaSGIxe6PnVLfA9r4d3FEcNq6nAd9TKOKE_d-v4T3F5yoFrADYoGzVmBvw-Yh25FvYnyhcLkhLLPa1Zcqtxls6C-79vKvR9ToKXurII8J79_4vy3CH-xe9djo_evXv0fXHhe0EEuSjsS8Eb2guVo-Jgwql2hoErcCrPudD2_bAMOn06dtbnMAGGQ'
```
```json
{"fault":{"faultstring":"Failed to Resolve Variable : policy(VerifyJWT) variable(null)","detail":{"errorcode":"steps.jwt.FailedToResolveVariable"}}}%
```
Posted by Carla Brunelli about 1 year ago
Authorization Code
Estou tentando obter o _access_token_ por meio do fluxo de autenticação _Authorization Code_, mas já na primeira requisição a API não consigo retornar o _Authorization Code_ necessário para se conseguir o _access_token_.
Estou chamando a seguinte requisição GET, no modo sandbox,
<https://id.sandbox.btgpactual.com/oauth2/authorize?client_id={client_id}&response_type=code&redirect_uri={redirectUri}&scope=openid>
As informações entre chaves são encontradas na minha aplicação chamada "kik", de acordo com a documentação.
A mesma quando chamo por CURL (PHP) me retorna vazio e quando uso um software de terceiros para requisição (Postman) ela me retorna um site do BTG sem nenhum tipo de informação concreta no mesmo, somente um HTML com chamadas a arquivos .js.
Existe algum erro nessa minha chamada? Como faço para conseguir o authorization_code necessário para se conseguir o \_acess token_.
Estou seguindo todo esse processo do Authorization Code pois quero gerar QR Codes PIX usando essa API
Posted by Leandro Diniz Silva about 1 year ago
Extrato bancario.
Olá, bom dia
Meu nome é Alan Calderari e sou representante da Obra Prima, uma empresa SaaS de gestão de construção civil. Atualmente, possuímos um módulo financeiro que permite a interação manual com arquivos OFX. Contudo, almejamos aprimorar nossa solução e implementar uma integração automática com os bancos para a obtenção de extratos.
Estamos cientes das soluções integradas disponíveis no mercado, como a oferecida pela empresa Conta Azul. Com isso em mente, vemos uma grande oportunidade de estabelecer uma parceria semelhante com o Banco BTG Pactual, visando beneficiar os nossos 1400 clientes que já expressaram interesse neste tipo de serviço.
Gostaríamos de compreender melhor o processo para iniciar a integração com a API de extratos bancários do BTG Pactual. Além disso, quais são os canais de comunicação recomendados para obtermos detalhes específicos e avançarmos com essa iniciativa?
Agradecemos desde já pela atenção e estamos ansiosos por uma resposta para darmos sequência a este projeto valioso para nossos clientes.
Atenciosamente,
Alan Calderari
Analista de sistema
Obra Prima
Posted by ALAN CALDERARI 7 months ago