Histórico de mensagens sobre webhook pix em pix

EXIBINDO CONVERSAS RECENTES:

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

rubenskuhl

Ver Respostas

O que você vai receber no webhook é algo assim:

{
"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"
}
]
}

Então o txid que você mandou ao fazer PUT no /cob, é o que você usa para fazer match desse Pix com a cobrança.
E você confere também chave (tem que ser a mesma chave que você usou no /cob) e o valor (tem que ser o mesmo valor). Se tudo certo, você dá como pago.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Vc mandou para a configuração do webhook https:/exemplo.com.br/pix ? Pq aí a Efí vai acionar https://exemplo.com.,br/pix/pix ...

Avatar discord do usuario rubenskuhl

rubenskuhl

Então você precisa colocar /webhook mesmo no cadastro, mas ter o teste funcionando em /webhook e o recebimento funcionando em /webhook/pix .

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se você colocar webhook/pix, a Efí vai acionar webhook/pix/pix .

Avatar discord do usuario nandinhatnl

nandinhatnl

Ver Respostas

engraçado, se eu estar o put no webhook/pix funciona... só não recebo quando faço o pagametno mesmo

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Então, significa que /webhook está ok, mas /webhook/pix não está. E você precisa dos dois.

Avatar discord do usuario nandinhatnl

nandinhatnl

Ver Respostas

eu cadastrei /webhook ? então será /webhook/pix?

Avatar discord do usuario nandinhatnl

nandinhatnl

Boa tarde ! Eu consegui configurar o certicado, o proxy e o estou recebendo a resposta 200 no webhook, porém quando eu faço um pix não recebo absolutamente nada ... não estou recebendo o retorno algum.. o que falta?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se você enviar o request para /webhook e ele der "200 OK" como resposta, a partir daí você receberá webhooks para pagamentos feitos para aquela chave Pix.

Avatar discord do usuario saviobraz

saviobraz

Ver Respostas

Estou desenvolvendo fluxo de caixa e gostaria de saber o procedimento de webhook para receber notificações de débitos, ou seja, gostaria de receber notificações via webhook quando um pagamento ou transferencia pix for realizado. Poderiam me ajudar?

Avatar discord do usuario vinicius_cs

vinicius_cs

Ver Respostas

É que eu queria alterar o status para pago pra poder testar o webhook, gerei um Pix com qrcode no meu site, gostaria de "pagar" ele e ver se o webhook está funcionando corretamente

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Além do webhook, o que você quer dizer como simulação de pagamento ? Se for aparecer o objeto pix no /cob, a Efí ainda não faz isso em homologação.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

É que os dois cenários de webhook são esses... ou o cliente vai pagar, ou o cliente não vai pagar. O valor é só para escolher qual cenário você vai testar.

Agora, mais de 1 quatrilhão de Reais eu não sei se funciona, só recebi Pix de 1 quatrilhão... só o Tio Patinhas para fazer Pix de 1 quaquilhão.

Avatar discord do usuario vinicius_cs

vinicius_cs

Ver Respostas

É possível testar Webhook em homolog?

Estou desenvolvendo em Laravel, fiz a rota com o /webhook, no entanto ao executar:
https://pix-h.api.efipay.com.br/v2/webhook/:chave

É retornado:
{
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 419"
}

No WebhookController eu coloquei apenas isso para testar:

php
public function handle(Request $request)
{
$payload = $request->all();

return response()->json(['status' => 200]);
}

Nas rotas coloquei assim:
php
Route::prefix('webhook')->group(function () {
Route::get('/', [WebhookController::class, 'handle'])->name('webhook.handle');
Route::post('/', [WebhookController::class, 'handle'])->name('webhook.handle');
Route::put('/', [WebhookController::class, 'handle'])->name('webhook.handle');
});

Avatar discord do usuario peterfritz

peterfritz

Algo assim funcionaria:

js
import axios from "axios";
import https from "https";

const subdomain = process.env.NODE_ENV === "production" ? "pix" : "pix-h";

const clientCreds = clientId + ":" + clientSecret;
const authorization = Basic ${Buffer.from(clientCreds).toString("base64")};

const certificate = Buffer.from(certificateBase64Encoded, "base64");

const httpsAgent = new https.Agent({
pfx: certificate,
passphrase: "",
});

const oAuthResponse = await axios.post(
https://${subdomain}.api.efipay.com.br/oauth/token,
{
grant_type: "client_credentials",
},
{
headers: {
Authorization: authorization,
"Content-Type": "application/json",
},
httpsAgent,
}
);

const token = oAuthResponse.data.access_token;

const efiApi = axios.create({
baseURL: https://${subdomain}.api.efipay.com.br,
headers: {
Authorization: Bearer ${token},
"Content-Type": "application/json",
},
httpsAgent,
});

await efiApi.put(
/v2/webhook/${process.env.PIX_KEY},
{
webhookUrl:
${process.env.WEBHOOK_BASE_URL}/api/webhook/efi?secret=${process.env.WEBHOOK_SECRET}&ignore=.replace(
"//api",
"/api"
),
},
{
headers: {
"x-skip-mtls-checking": "true",
},
}
);

Avatar discord do usuario peterfritz

peterfritz

Ver Respostas

Fala @blini_10032, tem sim, uso serverless e edge para receber os callbacks, então pra mim também não foi possível usar mTLS. Mas a Efí suporta um cabeçado x-skip-mtls-checking na criação do webhook que, se tiver como valor true, irá pular a validação do mTLS.
https://dev.efipay.com.br/docs/api-pix/webhooks/#:~:text=Certbot%20por%20exemplo.-,Skip%2DmTLS,-Para%20hospedagem%20em>">Documentação do Skip-mTLS.

> Só lembre-se de verificar se o IP que envia a requisição https://sejaefi.com.br/central-de-ajuda/api/quais-enderecos-de-ip-gerencianet-utiliza#conteudo>">pertence à Efí e enviar um segredo conhecido apenas pelo seu servidor na URL quando criar o seu webhook como recomendado na documentação.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, faz. Segue o texto do autor do 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 peterfritz

peterfritz

Ver Respostas

Oi, boa tarde. Vocês sabem se existe algum jeito de consultar o pagador de um QR Code ou BR Code que foi cadastrado sem informar um devedor?
Na secção de https://dev.efipay.com.br/docs/api-pix/webhooks#requisi%C3%A7%C3%A3o>">requisição (callback) da documentação de webhooks, vi que é possível que os dados do pagador sejam recebidos no callback através da propriedade gnExtras.pagador, porém o objeto gnExtras é opcional e, até então, só tenho recebido através de callbacks os seguintes dados:

json
{
"pix": [
{
"endToEndId": "...",
"txid": "...",
"chave": "...",
"valor": "...",
"horario": "..."
}
]
}
No extrato é possível visualizar pagador, documento e instituição, então imagino que há alguma forma de solicitar esses dados através da API.
Agradeço desde já e peço perdão pela mensagem longa.