Histórico de mensagens sobre documentação da api em pix

EXIBINDO CONVERSAS RECENTES:

Texto: documentação da api
Canal: pix
Avatar discord do usuario jg_19

jg_19

Ver Respostas

Bom dia.
Na documentação da API do PIX (cobrança imediata)
1. O exemplo tem apenas o campo expiração para calendario, mas na tabela (documentação dos campos para request) o mesmo campo não é obrigatório (sem ) e os campos criacao e apresentacao constam como obrigatórios.

2. O campo
chave O campo chave determina a chave Pix registrada no DICT que será utilizada para a cobrança Aonde encontro mais informações para gerar a mesma. (ou não é obrigatória?)
imagem enviada na mensagem pelo usuario jg_19

Avatar discord do usuario thichief20

thichief20

Ver Respostas

Boa tarde galera,
Sou Thiago Gava, estudo Sistemas de Informação, 6º Periodo...

Eu estou fazendo um projeto na faculdade, onde tenho que fazer a venda de produtos com pagamentos em pix, após ter o pagamento confirmado, preciso rodar comandos para ativar componentes eletrônicos que "liberam" que dosam o produto selecionado, e a quantidade selecionada pelo cliente.
O app, por requisição do professor deve ser em Python, e eu tenho pouquissimo conhecimento aplicado na linguagem., pois ele terá de ser rodado em um Raspberry PI 3B+.

A questão é, seguindo as instruções da documentação da API da Gerencianet, e o material de um video de 2019, conseguimos fazer com que seja criado a cobrança e o qrcode para o pagamento, porem ainda não conseguimos implementar o webhook ou uma maneira de retornar a "confirmação" de que o pagamento tenha sido efetuado.
O webhook seria a melhor opção, porem parece que a API não reconhece o TXID da cobrança que geramos...

Eu estou sem cabeça, atrasado com as entregas, ou seja, sem condição alguma para pensar em uma solução por conta própria...

Então peço a ajuda de quem puder resgatar um desesperado 🙂

Avatar discord do usuario pabl.u

pabl.u

Agora, sobre a inconsistência.
Se coloca as informações exatamente como estão na documentação, na parte de descontos

"desconto": {
"modalidade": "1",
"descontoDataFixa": [
{
"data": "2020-11-30",
"valorPerc": "30.00"
}
]
}

Retorna o seguinte erro:

Array
(
[type] => https://pix.bcb.gov.br/api/v2/error/CobVOperacaoInvalida
[title] => Operação Inválida
[status] => 400
[detail] => A requisição que busca alterar ou criar uma cobrança com vencimento não respeita o schema ou está semanticamente errada.
[violacoes] => Array
(
[0] => Array
(
[razao] => O objeto cobv.valor.desconto apresenta modalidade no valor 1 ou 2, porém cobv.valor.desconto.valorPerc encontra-se preenchido
[propriedade] => cobv.body.valor.desconto
)

[1] => Array
(
[razao] => O campo cobv.valor não respeita o schema
[propriedade] => cobv.body.valor
)

)

)

Tentei entender o que estava errado, mas juro que não consegui

Só pra deixar claro, obviamente alterei as informações da data e porcentagem do desconto.
Indiquei a data como a mesma do vencimento (2022-05-31) e a 5% de desconto (5.00).
E eu testei 2 modalidades, a 1 e a 2. Ambas retornam o mesmo erro.

Avatar discord do usuario vborn_

vborn_

Ver Respostas

Oi gente, tudo bem?

Como o servidor recebe o POST do Webhook?

Fiz uns testes utilizando o postman para o meu webhook.

{
"pix": [
{
"endToEndId": "xxx",
"txid": "xxx",
"chave": "xxx",
"valor": "0.01",
"horario": "2020-12-21T13:40:34.000Z",
"infoPagador": "pagando o pix"
}
]
}

Enviei no Body esse modelo, tirei da documentação na parte de Exemplo Pix Recebido, pelo postman, passa tudo certinho e altera os dados do pagamento quando passo um TXID valido e com pagamento confirmado, mas quando espero o post da API ele não acontece nada, alguém pode me ajudar?

Função parcial do controller:
public function webhook(Request $request) {
$data = $request->json()->all();
$txid = $data['pix'][0]['txid'];

$file = \Illuminate\Support\Facades\File::get(base_path() . '/resources/views/pagamentos/config.json');
$options = json_decode($file, true);

$params = ['txid' => $txid];

try {
$api = Gerencianet::getInstance($options);
$pix = $api->pixDetailCharge($params);

Avatar discord do usuario gargula.

gargula.

Ver Respostas

Ola bom dia, estou tentando integrar a API da Gerencianet no meu sistema em PHP, mas estou com com uma tremenda dificuldade com o Webhook, utilizo Nginx no meu servidor. Já configurei tudo relacionado aos certificados, fiz tudo conforme mostra na documentação da API, meu site esta com certificado da LetsEncrypt certinho, baixei o certificado para verificação mTLS da Gerencianet certinho também, apontei ele no config do Nginx, já tentei de tudo mesmo mas o retorno sempre da 403. O certificado aparentemente está sendo verificado pois quando eu troco o retorno para um 301 por exemplo ele informa na mensagem de retorno, só que quando eu uso rewrite não funciona e com proxy_pass também não. Preciso muito de uma forcinha, quem puder me ajudar agradeço muito.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

No momento só na documentação do BACEN, pois o endpoint cobv ainda não está disponível na GN.
https://github.com/bacen/pix-api/

Avatar discord do usuario vborn_

vborn_

Ver Respostas

Boa noite pessoal, existe alguma documentação especifica para a utilização da API diretamente no Laravel? recentemente fiz a implementação da API no PHP e preciso faze-la no Laravel agora mas estou com algumas dificuldades...

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O exemplo que tem na documentação da GN é assim:

const express = require("express");
const fs = require("fs");
const https = require("https");
var logger = require('morgan');

const httpsOptions = {
cert: fs.readFileSync(""), // Certificado fullchain do dominio
key: fs.readFileSync("/"), // Chave privada do domínio
ca: fs.readFileSync(""), // Certificado público da Gerencianet
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Mantenha como false para que os demais endpoints da API não rejeitem requisições sem MTLS
};

const app = express();
const httpsServer = https.createServer(httpsOptions, app);
const PORT = 443;

app.use(logger('dev')); // Comente essa linha caso não queira que seja exibido o log do servidor no seu console
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

// Endpoint para configuração do webhook, você precisa cadastrar https://SEUDOMINIO.com/webhook
app.post("/webhook", (request, response) => {
// Verifica se a requisição que chegou nesse endpoint foi autorizada
if (request.socket.authorized) {
response.status(200).end();
} else {
response.status(401).end();
}
});

// Endpoind para recepção do webhook tratando o /pix
app.post("/webhook/pix", (request, response) => {
if (request.socket.authorized){
//Seu código tratando a callback
/ EXEMPLO:
var body = request.body;
filePath = __dirname + "/data.json";
fs.appendFile(filePath, JSON.stringify(body) + "\n", function (err) {
if (err) {
console.log(err);
} else {
response.status(200).end();
}
})
/
response.status(200).end();
}else{
response.status(401).end();
}
});

httpsServer.listen(PORT, () =>
console.log(Express server currently running on port ${PORT})
);
#Desenvolvido pela Consultoria Técnica da Gerencianet

Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Olá @Deleted User ! Boa tarde. Não sei se entendi ao certo sua dúvida mas quando uma cobrança Pix é paga enviamos uma requisição POST para a URL que você cadastrou como webhook. Cada requisição enviada possui um timeout de 60 segundos.
Vale lembrar que os callbacks são enviados para a url cadastrada acrescida de um '/pix', dessa forma: ​/pix.
Neste link da documentação detalhamos alguns exemplos do JSON enviado para a URL cadastrada: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-recebendo-callbacks

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Bom dia, Anderson! No momento não, o endpoint de envio de Pix necessita da assinatura do termo e contato com a equipe comercial, pois, permite a movimentação de valores via transferência de forma muito rápida em sua conta. Em ambiente de homologação ainda não está pronto o endpoint, mas a nossa equipe está atuando para o desenvolvimento do mesmo.

Em relação a chamada e retorno temos exemplos na documentação que seguem o padrão exato da API, segue os links:
Requisição: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-requisitar-envio-de-pix
Callback Pix enviado:

json
{
"pix": [
{
"endToEndId": "E090893562021030PIf25a7868",
"chave": "9c3c7441-b91e-4982-3c25-6105581e18ae",
"tipo": "SOLICITACAO",
"status": "REALIZADO",
"valor": "0.01",
"horario": "2021-03-04T20:39:47.000Z"
}
]
}

Avatar discord do usuario Julia Efí

Julia Efí

Boa noite <@!337383375289712651>. "webhook inválido" é uma resposta esperada dentro da nossa API, como a url respondeu com um código diferente de 200, quer dizer que algum requisito de cadastro do webhook ela não está cumprindo. Verifique na nossa documentação se você está seguindo os passos corretamente: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-configurar-o-webhook-pix
Sugerimos também que verifique a sessão de validação mTLS que é uma etapa importante do cadastro do webhook: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-entendendo-o-padr-o-mtls

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Você pode receber notificações automaticamente via webhook referente às modificações de status de uma cobrança Pix. Para isso, será necessário a inserção de uma chave pública da Gerencianet em seu servidor para que a comunicação obedeça o padrão mTLS.
Veja mais detalhes em nossa documentação: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-webhooks

Ou seja, primeiramente para um servidor dedicado, você deve inserir uma chave pública da Gerencianet em seu servidor para que a comunicação obedeça o padrão mTLS (forma de autenticação mutua).
Veja um exemplo desta configuração em um servidor Apache ou Nginx: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-exemplos-de-configura-es-de-servidor

Então com seu servidor configurado com mTLS em seu domínio (ex: https://seudominio.com.br/webhook/" class="link-msg">https://seudominio.com.br/webhook/), você irá consumir a rota PUT /v2​/webhook/:chave uma única vez para registrar seu webhookUrl vinculado à sua chave Pix.
Acrescentando uma observação que é a adição do /pix no final da sua URL. Ou seja, na request PUT https://api-pix.gerencianet.com.br/v2/webhook/:chave você irá passar o body com sua URL, exemplo:
{
"webhookUrl": "https://seudominio.com.br/webhook"
}

No entanto, a URL será registrada com o /pix no final, assim: https://seudominio.com.br/webhook/pix.
Ou seja, esta adição do /pix também dever ser tratada nas configurações de seu servidor para que na rota /webhook/pix de seu servidor exija o certificado CA da Gerencianet.
Veja mais detalhes sobre o endpoint: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-configurar-o-webhook-pix

Com isto, todo Pix gerado com sua chave Pix e que possua um txid, serão enviados as notificações para sua URL.

Avatar discord do usuario edvandell.

edvandell.

Ver Respostas

Está sendo realizada exatamente igual a documentação. Fiz a geração do certificado, converti para .pem com o app da GerenciaNet, no postman > settings > Add Certificate e depois:
- Host: api-pix-h.gerencianet.com.br
- PFX file: anexei o certificado convertido (.pem)

Na requisição /oauth/token em Authorization inseri em username o client_id e password o client_secret.

Avatar discord do usuario brunomazaia

brunomazaia

Ver Respostas

Boa tarde, alguém do @Relacionamento poderia me ajudar a integrar um pix com dotnet? Estou olhando a documentação mas não entendi muito bem. Já consegui o token para transacionar mas não consigo descobrir como montar uma chamada pix via api