Histórico de mensagens sobre webhook pix

EXIBINDO CONVERSAS RECENTES:

Texto: webhook pix
# pix
Avatar discord do usuario micaelmths

micaelmths

Ver Respostas

Olá pessoal, bom dia!

Eu já sou cliente de vocês e utilizo a API PIX para realizar a cobrança de um assinatura de um aplicativo que eu possuo. Estou pretendendo criar um novo app capaz de guardar as informações da chave PIX dos meus clientes e eu observar se esse PIX já recebeu o pagamento esperado ou não, ou seja, a funcionalidade de webhook que eu já tenho no meu primeiro app, só que agora observando o PIX dos meus clientes.

Além do mais, sou iniciante nesse processo de pagamento, talvez a lógica disso possa ser manipulando pelo meu próprio PIX e transferindo o valor depois pro meu cliente, ou seja, eu faço o meio de campo entre o meu cliente e o cliente dele.

# devs
Avatar discord do usuario kaueribeiro

kaueribeiro

Sim, eh que eu não manjo muito de Webhook...

Então a forma que pensei foi ficar consultando a API de /pix a cada 30 minutos pra ver se recebi algum pix

# devs
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Para saber que foi pago, o mais rápido é o webhook. Mas dá para fazer também GET de /pix e GET de /cob, todos os 3 jeitos funcionam.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Pix não tem notification_url por transação. Tem que configurar webhook para a chave Pix, aí toda cobrança daquela chave é notificada nesse webhook.

# pix
Avatar discord do usuario hlyras

hlyras

Ver Respostas

Eu li isso mas não consegui entender exatamente o que fazer, esse é o corpo que devo enviar nesse PUT, certo?

{
"webhookUrl": "https://exemplo-pix/webhook"
}

Mas em qual momento eu devo fazer isso?

# pix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @hlyras!
O cadastro do webhook é realizado através do endpoint PUT /v2/webhook/:chave
Onde :chave é a chave Pix que você deseja cadastrar o webhook.
Você pode consultar mais informações sobre este procedimento em nossa documentação técnica: https://dev.efipay.com.br/docs/api-pix/webhooks

# pix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @hlyras!

Sugerimos as duas formas de validação a seguir, mas recomendamos fortemente que as utilize em conjunto:

Verifique o IP de comunicação: Você pode restringir a comunicação ao domínio do webhhook cadastrado para aceitar apenas mensagens do IP utilizado pela Efí.
IP utilizado atualmente em nossas comunicações: '34.193.116.226'.

Adicione uma hash à URL cadastrada no webhook: Crie um hmac (uma identificação própria) que será acrescentado ao final da URL no momento do cadastro do webhook. Essa hash será utilizada para validar a origem da notificação. Assim, todos os webhooks enviados ao seu servidor terão essa identificação final e sua aplicação deve validar a presença da mesma.

Exemplo:
URL de notificação original: https://seu_dominio.com.br/webhook
Como deverá ser cadastrada com a hash: https://seu_dominio.com.br/webhook?hmac=xyz&ignorar=. O termo ignorar= servirá para tratar a adição do /pix no final da URL.

# pix
Avatar discord do usuario hlyras

hlyras

Ver Respostas

Boa tarde, tenho um SaaS hospedado na Digital Ocean através de um servidor compartilhado, eu vi que na documentação existe uma forma de receber o webhook da API PIX sem precisar do servidor dedicado:
"Por isso, disponibilizamos a opção skip mTLS, que permite o cadastro do webhook sem a necessidade de validação mTLS."
Seria muito mais prático para eu implementar dessa forma, tem algum código ou vídeo onde explica como fazer as verificações de segurança?

# comercial
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O webhook é acionado por default para todos os recebimentos que tenham txid (QR-Code dinâmico sempre tem txid, QR-Code estático pode ou não ter txid), mas tem opção para em determinadas chaves acionar webhook mesmo sem txid. Só não me parece ter webhook possível para transferência Pix por dados bancários.

# comercial
Avatar discord do usuario .filipelopes

.filipelopes

Ver Respostas

Boa Tarde, eu consigo criar webhooks para ouvir todos os tipos de pagamento? E em sequência efetuar transferências (pix) de parte do valor creditado em conta da Efi ?

# pix
Avatar discord do usuario gabriel_efi

gabriel_efi

Ver Respostas

Olá, @pianaro! A confirmação de pagamento se dá por meio de webhooks, você pode verificar mais detalhes na nossa documentação: https://dev.efipay.com.br/docs/api-pix/webhooks/

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se o atendedor é /webhook/pix, vc deve passar /webhook na URL

# pix
Avatar discord do usuario pianaro

pianaro

Ver Respostas

Boa tarde, como consigo pegar uma flag que o pagamento do pix foi realizado, pois preciso disso para chamar uma função após o pagamento. Minha aplicação já está rodando em produção e o pix está tudo certo.

Aqui esta a rota de pagamento.
router.post("/payment", async (req: Request, res: Response) => {

const reqGN = await reqGNAlready;
const dataCob = {
calendario: {
expiracao: 3600,
},
valor: {
original: "0.10", //req.body.value,
},
chave: "b801ed6a-27ba-4927-a952-d44e2c8ab9cc",
solicitacaoPagador: "Informe o número ou identificador do pedido.",
};

const cobResponse = await reqGN.post("/v2/cob", dataCob);

const qrcodeResponse = await reqGN.get(
/v2/loc/${cobResponse.data.loc.id}/qrcode
);
res.send(qrcodeResponse.data);
});

Aqui está a do webhook:

router.post("/webhook(/pix)?", (req: Request, res: Response) => {
if (req.secure){
var body = req.body;
const filePath = __dirname + "/data.json";
fs.appendFile(filePath, JSON.stringify(body) + "\n", function (err) {
if (err) {
console.log(err);
} else {
res.status(200).end();
}
})
res.status(200).end();
}else{
res.status(401).end();
}
});

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Tem sim. Em qualquer das 3 formas, vem um objeto Pix e dentro dele o E2EID.

Por exemplo, no caso do webhook:

{
"pix": [
{
"endToEndId": "E1803615022211340s08793XPJ",
"txid": "fc9a43k6ff384ryP5f41719",
"chave": "2c3c7441-b91e-4982-3c25-6105581e18ae",
"valor": "0.01",
"horario": "2020-12-21T13:40:34.000Z",
"infoPagador": "pagando o pix"
}
]
}

É o endToEndId .

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O webhook do Pix não é informado por cobrança, mas por chave Pix. Você configura via /v2/webhook/:chave e depois qualquer Pix recebido para essa chave com txid aciona o webhook.

# pix
Avatar discord do usuario mcunha98

mcunha98

Ver Respostas

uma duvida, chamei POST : https://pix-h.api.efipay.com.br/v2/cob
mas havia colocado o metadata para a url de notificacao, tomei erro
{"nome":"json_invalido","mensagem":"Valores ou tipos de campo inválidos","erros":[{"chave":"additionalProperties","caminho":".body","mensagem":"não são permitidas propriedades adicionais"}]}
"metadata": { "notification_url": "http:\/\/webhook.site.com.br" }

e vendo na doc, realmente nao da suporte para metadata, entao como fazer para ligar o webhook do pix via notification_url ?

# dúvidas
Avatar discord do usuario tarcizio5821

tarcizio5821

Bom dia.
Gostaria saber se o retorno do webhook é sempre o padrão quando um pix é pago:
"pix":[
{"endToEndId":"EEEEEEEEEEEEEEEEEEEEEEEEEEE","txid":"444444444444444444444444444444444","chave":"00000000-0000000-00008-000-0000000","valor":"0.01","horario":"2024-03-26T20:51:56.000Z"}

No retorno acima, temos:
endToEndId:
txid:
chave:
valor:
horario:

Tem alguma coisa que eu possa fazer para que a entrega contenha mais dados?
Eu digo mais dados que foram passados na criação da cobrança, tipo "infoAdicionais"?

# pix
Avatar discord do usuario hspatz

hspatz

Ver Respostas

Eu estou utilizando o SDK-PHP de voces.
Cadastrei o webhook como "https://meudominio.com.br/pixefi"
Recebo os eventos da criação no endereço acima

( [{"evento":"teste_webhook","data_criacao":"2024-03-30T11:20:39.415Z"}] ).

O "index.php" nesta pasta é o mesmo do site.

Abaixo deste diretório existe uma pasta "pix" onde o mesmo "index.php"rdt's lá. ( "meusite.com.br/pixefi/pix" )
AO criar um pagamento PIX em produção e o mesmo pago, não recebo nenhuma informação de retorno da EFI.
Foi colocadouma função que salva qualquer acesso a pasta, como exemplo fiz um acesso pelo Chrome "https://meudominio.com.br/pixefi/pix" e o resultado salvo foi.


Metodo: GET
Parametros: a:2:{i:0;s:6:"pixefi";i:1;s:3:"pix";}
Body: null


Segue o parte do script "index.php" onde salva qualquer acesso a pasta

===============================================================
// Obtém o método HTTP, body e parâmetros da requisição
$metodo = $_SERVER['REQUEST_METHOD'];
$parametros = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$body = json_decode(file_get_contents('php://input'), true);


//
/
$nomeArquivo = 'dados/dados_recebidos.json';
$dadosJson = "\n Metodo: " .$metodo ."\n Parametros: " .serialize($parametros) ."\n" ."Body: " .json_encode($body) ."\n";
$arquivo = fopen($nomeArquivo, 'a');
fwrite($arquivo, $dadosJson);
fclose($arquivo);
//
/


try {
requisicao($metodo, $body, $parametros);
} catch (Exception $e) {
salvar ( $xdados);
resposta(400, $e->getMessage(), $e);
}
=================================================================

Estou tentando gerar cobranças no modo homologação de R$ 0,01 e não recebo notificação no modo de homologação também.

# pix
Avatar discord do usuario lidiamariano

lidiamariano

Ver Respostas

Boa noite! Alguem pode me ajudar com o recebimento do Webhook? Eu já tenho o webhook funcionando e recebendo as notificações. Mas agora eu preciso pegar a reposta dessas notificações pelo lado do cliente, no frontend. Como eu posso fazer isso? Estou printando, na minha api, o req.body (notificação). E é printado isso (substitui os valores com xxxx): {
pix: [
{
endToEndId: 'xxxx,
txid: 'xxxx',
chave: 'xxxx,
valor: 'xxxx',
horario: '2024-03-30T01:23:19.000Z',
infoPagador: 'Cobrança.'
}
]
} Mas quero pegar essa resposta em uma página especifica com Next Js. Desde já, agradeço!!!!

# pix
Avatar discord do usuario ryzenbergsjc

ryzenbergsjc

deixa eu ver se compreendi
no cadastro do webhook eu coloquei {
"webhookUrl": "https://blablbabla/pix" class="link-msg">https://blablbabla/pix"
}

o certo seria https://blablbabla/