Histórico de mensagens sobre webhook pix em pix

EXIBINDO CONVERSAS RECENTES:

Texto: webhook pix
Canal: pix
Avatar discord do usuario catalunha

catalunha

Ver Respostas

Ciclo fechado no meu App PoCs (Frontend: Flutter Android/Web, backend para webhook com: Node.js, backend App: back4app):
1) Cliente pede via App
2) App organizar gera QRCode para pagto PIX
3) Cliente paga PIX
4) App identifica transação e informa ao cliente que ele ja pagou
5) Empresa prepara produto e entrega.
🙏🙌🙇‍♂️
🥳🥳🥳

Avatar discord do usuario joao_efi

joao_efi

Hey @dennisdev. ! How are you? 😄
To validate the user payment you have to implement a webhook in your system, and then register your pix key and the webhook URL in our API.

Here are some links that may be useful:
Understanding the webhooks (with examples): https://gerencianet.github.io/documentation/docs/PIX/Endpoints#webhook

Example of how to register your pix key and the webhook URL: https://github.com/gerencianet/gn-api-sdk-typescript/blob/main/examples/pix/webhook/pixConfigWebhook.ts

Avatar discord do usuario _grappi

_grappi

Ver Respostas

Fala pessoal, tô tendo o seguinte erro ao tentar configurar uma url de webhook para a API PIX:

{
nome: 'webhook_invalido',
mensagem: 'A requisição na URL informada falhou com o erro: UNABLE_TO_VERIFY_LEAF_SIGNATURE'
}

Avatar discord do usuario itcavalcante0868

itcavalcante0868

Ver Respostas

Grato Rubens!

Não tinha pensado em utilizar o QR-Code estático. Pode ser uma alternativa.

Em relação ao alerta via webhook para recebimento de qualquer Pix, sendo de fato é uma definição do Bacen não consigo imaginar o porquê, pois como havia dito existe o /pix que retorna tudo.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O webhook só alerta de Pix com txid, mas não necessariamente de uma cobrança. QR-Code estático pode ter txid, e você pode criar diretamente sem usar o /cob.

Avatar discord do usuario itcavalcante0868

itcavalcante0868

Ver Respostas

Boa noite.

Tenho uma "dúvida" sobre o webhook. Pesquisei bastante e realizei vários testes, mas acredito que consigo a resposta de forma mais direta com vocês aqui.

Por que o webhook só retorna/avisa sobre os Pix com txid (ou seja, oriundos de alguma cobrança)?

Não existe a possibilidade (alguma configuração) de ser notificado por todos os Pix que entram na minha conta (com ou sem txid)? Sei que consigo encontrar esses depósitos em Pix (sem cobrança/txid) pelo endpoint get do /v2/pix , mas teria que fazer diversas requisições durante o dia ou hora ou minuto sem necessidade.

Existe alguma alternativa?

Avatar discord do usuario catalunha

catalunha

Olá @rubenskuhl @Efí e demais colegas
Refiz todo o processo na tentativa de usar Gateway da AWS, Google Domains e Back4app para integrar WebHook PIX. Baseado no tutorial do Ciolfi em https://www.youtube.com/playlist?list=PLR5GUTqrcwXiA_JVKx8NDSJtaECeQO9AZ
Com sucesso ate no ponto em que peço :

Parse.Cloud.define('config-webhook',async(req)=>{
// options['validateMtls'] = true;
let body = {
"webhookUrl": "https://api1.brintec.org/prod/webhookpix1"
}

let params = {
chave: "[email protected]"
}
let gerencianet = new Gerencianet(options);


const result = await gerencianet.pixConfigWebhook(params, body);
return result;
});

E o return é:

{
"code": 141,
"error": {
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ERR_TLS_CERT_ALTNAME_INVALID"
}
}

Alguma sugestão ?

Avatar discord do usuario catalunha

catalunha

A chamada dentro do CloudCode do back4app esta assim:

Parse.Cloud.define('config-webhook',async(req)=>{

let body = {
"webhookUrl": "https://api1.brintec.org/prod/gn2gtwpix"
}

let params = {
chave: "[email protected]"
}
let gerencianet = new Gerencianet(options);


const result = await gerencianet.pixConfigWebhook(params, body);
return result;
});

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Tem uma opção que é o pix.ae...

Pra quem tem dificuldades de implementar os webhooks por falta de suporte em hospedagem compartilhada para configurar mTLS, o Pix.ae agora oferece proxy de callbacks com mTLS.

Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:

Para: https://exemplo.com.br/webhookpix
Use: https://mtls.pix.ae/exemplo.com.br/webhookpix

Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

No webhook você só recebe o Pix, que quita a cobrança, e os dados estão na cobrança. Você pode dar GET /cob/:txid para recuperar os dados que você colocou na criação da cobrança.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se você gerar com txid, ele vai sinalizar no webhook. Mas além disso, todo Pix que você recebe aparece no GET em /pix, seja ele manual, por chave, estático ou dinâmico.

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 rubenskuhl

rubenskuhl

Ver Respostas

Você precisa de 2 coisas para receber webhook:
1) Configuração do servidor web para que numa pasta ou sub-domínio seja exigido mTLS com CA da Gerencianet
2) Um atendedor nessa pasta ou sub-domínio para / e para /pix.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Então com seu servidor configurado com mTLS em seu domínio (ex: https://seudominio.com.br/webhook), você irá consumir o endpoint PUT /v2​/webhook/:chave uma única vez para registrar seu webhookUrl vinculado à sua chave 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 rubenskuhl

rubenskuhl

Ver Respostas

Mesmo sem o webhook, você podia ter scripts no back-end fazendo GET do /cob/:txid e assim que o GET tiver um objeto Pix no retorno, aprovar o pedido.

Avatar discord do usuario marcosvinicius1489

marcosvinicius1489

Ver Respostas

Boa tarde, algum consultor pode me ajudar com o webhook pix no php. ?

Avatar discord do usuario rubenskuhl

rubenskuhl

Uma opção para serviços onde não seja fácil configurar mTLS com CA privada é o mtls.pix.ae:

Pra quem tem dificuldades de implementar os webhooks por falta de suporte em hospedagem compartilhada para configurar mTLS, o Pix.ae agora oferece proxy de callbacks com mTLS.

Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:

Para: https://exemplo.com.br/webhookpix
Use: https://mtls.pix.ae/exemplo.com.br/webhookpix

Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/