Histórico de mensagens sobre webhook pix em pix

EXIBINDO CONVERSAS RECENTES:

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

rfr0120

Ver Respostas

public void attachOurServerWebhookToEfiPayToReceivePaymentNotifications(String webhookUrl, String pixPaymentKey) {
HttpHeaders headers = new HttpHeaders();
String accessToken = authenticate().getAccessToken();
headers.setBearerAuth(accessToken);
headers.set("x-skip-mtls-checking", "true");

Map body = new HashMap();
body.put("webhookUrl", webhookUrl);

try {
Map response = restTemplate.exchange(URL + "/v2/webhook/" + pixPaymentKey, HttpMethod.PUT,
new HttpEntity<>(body, headers), new ParameterizedTypeReference>() {
}).getBody();
LOGGER.info(response.toString());

} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Você esta tratando o /pix que é acrescido ao enviarmos a notificação via POST ​/pix ?
Exemplo: Você configurou o webhook https://seudominio.com/webhook, a notificação vai para https://seudominio.com/webhook/pix

Avatar discord do usuario horfeus._33841

horfeus._33841

Ver Respostas

meu fluxo ta funcionando tudo certinho to com uma dificuldade terrivel em saber se na hora que a cobrança é paga se o efibank está me mandando a confirmação, pois o meu endpoint ta funcionando normal no postman então tecnicamente eu simulando como se o efibank tivesse me devolvido a resposta, a webhook funciona, ou seja do meu lado ta funcionando, ja cadastrei minha chave pix la mas até então nao ta rolando... o pior é que nao to vendo nenhum suporte...

Avatar discord do usuario danielamup_22728

danielamup_22728

olá bom dia, tem alguem que pode me auxiliar com a integração do webhook pix no meu backend? estou usando o firebase functions/clound run

Avatar discord do usuario gabrielz_fr

gabrielz_fr

Ver Respostas

Boa noite! Tudo bem com vocês? Alguem sabe me dizer se tem alguma regex para esse endToEndId e a chave? E que estou validando os dados recebidos no /webhook/pix

Avatar discord do usuario andre_94652

andre_94652

@guilherme_efi @jessica_efi eu chamei a url da api https://pix.api.efipay.com.br/v2/webhook/c0515522-4756-463d-aa1d-523bd63498c6 com o json abaixo. {
"webhookUrl": "https://walrus-app-kcenm.ondigitalocean.app/api/v1"
} e estou recebendo a mensagem de erro abaixo. {
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 400"
} Eu criei uma api em c# com a definição de rota abaixo. [HttpPost()]
public async Task ReceiveWebhook([FromBody] PixRecebidoEfi response, CancellationToken cancellationToken = default) O que eu devo fazer para resolver esse problema?

Avatar discord do usuario andre_94652

andre_94652

Ver Respostas

Olá amigos,

Tudo bem?

Eu estou chamando a url https://pix.api.efipay.com.br/v2/webhook/c0515522-4756-463d-aa1d-523bd63498c6

com o body da requisição contendo o json abaixo

{
"webhookUrl": "https://walrus-app-kcenm.ondigitalocean.app/api/v1"
}

Eu estou recebendo a mensagem de erro abaixo

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

A url do meu webhook é https://walrus-app-kcenm.ondigitalocean.app/api/v1/pix

A seguir segue a codificação da minha rota escrita em c#

[HttpPost("pix")]
public async Task ReceiveWebhook([FromBody] PixRecebidoEfi response, CancellationToken cancellationToken = default)
{
//Código a ser feito

return Ok();
}

Segue a classe da entrada que eu estou esperando

public class PixRecebidoEfi
{
public List Pix { get; set; }
}

public class PixRecebidoEfiResponse
{
public string endToEndId { get; set; }
public string txid { get; set; }
public string chave { get; set; }
public string valor { get; set; }
public string horario { get; set; }
public string infoPagador { get; set; }
}

Se você fizer uma requisição do tipo post a url https://walrus-app-kcenm.ondigitalocean.app/api/v1/pix

com o json abaixo você verá que a url retorna um "200"

{
"pix": [
{
"endToEndId": "1",
"txid": "1",
"chave": "1",
"valor": "1.00",
"horario": "1",
"infoPagador": "1"
}
]
}

O que eu estou fazendo de errado?
O que eu tenho que fazer para fazer funcionar?

Avatar discord do usuario andre_94652

andre_94652

Ver Respostas

Olá amigos,

Tudo bem?

Eu estou chamando a url https://pix.api.efipay.com.br/v2/webhook/c0515522-4756-463d-aa1d-523bd63498c6

com o body da requisição contendo o json abaixo

{
"webhookUrl": "https://walrus-app-kcenm.ondigitalocean.app/api/v1"
}

Eu estou recebendo a mensagem de erro abaixo

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

A url do meu webhook é https://walrus-app-kcenm.ondigitalocean.app/api/v1/pix

A seguinte segue a codificação da minha rota escrita em c#

[HttpPost("pix")]
public async Task ReceiveWebhook([FromBody] PixRecebidoEfi response, CancellationToken cancellationToken = default)
{
//Código a ser feito

return Ok();
}

Segue a classe da entrada que eu estou esperando

public class PixRecebidoEfi
{
public List Pix { get; set; }
}

public class PixRecebidoEfiResponse
{
public string endToEndId { get; set; }
public string txid { get; set; }
public string chave { get; set; }
public string valor { get; set; }
public string horario { get; set; }
public string infoPagador { get; set; }
}

O que eu estou fazendo de errado?
O que eu tenho que fazer para fazer funcionar?

Avatar discord do usuario gabriel_efi

gabriel_efi

Ver Respostas

Olá, @andre_94652! Isso mesmo!
Lembrando que as notificações seram enviadas para a sua URL + /pix, então se você cadastrar, por exemplo:

https://exemplo.de.url.com/webhook

Nós enviaremos as notificações para:

https://exemplo.de.url.com/webhook/pix

Avatar discord do usuario andre_94652

andre_94652

Ver Respostas

Olá amigos, tudo bem?

Eu criei uma api chamada webbookcobranca

Eu criei uma rota do tipo HttpPost para ser utilizada para fazer webhook dentro da plataforma.

Eu estou usando a rota do tipo put para configurar o webhook de resposta.

Segue a url que estou usando para chamar para fazer a configuração

https://pix.api.efipay.com.br/v2/webhook/Chave:1525

Segue o json que estou enviando

{
"webhookUrl": "https://walrus-app-kcenm.ondigitalocean.app/api/v1/webbookcobranca"
}

Essa url que eu informei no parâmetro webhookurl está correto. É isso mesmo?

Alguém aqui no grupo pode me responder?

Avatar discord do usuario alessandrodev

alessandrodev

Alguém poderia me auxiliar no cadastro do webhook?
Qualquer parametro que eu passe só recebo essa mensagem:


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

Curl:


curl --location --request PUT 'https://pix-h.api.efipay.com.br/v2/webhook/:chave' \
--header 'x-skip-mtls-checking: false' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhb...' \
--data '{
"webhookUrl": "https://.com/webhook?hmac=TEST"
}
'

Obs: retorna esse mesmo erro até informando x-skip-mtls-checking: true

Meu serviço webhook tem observabilidade então qualquer chamada tenho logs e quando tento realizar o cadastro não tem nenhum registro de chamada ao meu webhook nem que seja de handshake, então aparentemente parece que nem está chamando o meu serviço

Avatar discord do usuario gabrielz_fr

gabrielz_fr

Meu server.ts

const server = fastify({
logger: true,
https: {
cert: fs.readFileSync("certificates/cert.crt"),
key: fs.readFileSync("certificates/cert.key"),
ca: fs.readFileSync("ca.crt"),
minVersion: "TLSv1.2",
},
});

server.register(cors, {
origin: true,
credentials: true,
});

server.register(cookie, {
secret: process.env.SECRET_KEY,
});

server.register(userRoutes);
server.register(addressRoutes);
server.register(orderRoutes);
server.register(webhooksRoutes);

server.get("/", (req, res) => {
res.code(200).send({ message: "Live Seed" });
});

server.post("/webhook/pix", async (req, res) => {
const socket = req.raw.socket as TLSSocket

if (socket.authorized) {
const body = req.body;
const filePath = path.join(__dirname, "data.json");

fs.appendFile(filePath, JSON.stringify(body) + "\n", (err) => {
if (err) {
server.log.error(err);
res.status(500).send();
} else {
res.status(200).send();
}
});
} else {
res.status(401).send();
}
});


server.listen({ port: process.env.PORT || 8080 }, async (err) => {
if (err) {
console.error(err);
process.exit(1);
}

const url = await ngrok.connect(process.env.PORT || 8080);
console.log(Ngrok tunnel opened at: ${url});

console.log(Server is listening on port ${process.env.PORT || 8080});
});

ts

Avatar discord do usuario renanmoraes.

renanmoraes.

Ver Respostas

Estou fora do pc agora para mandar aqui, ele comenta que precisa ter uma rota /webhook/pix

Avatar discord do usuario renanmoraes.

renanmoraes.

Ver Respostas

Pessoal, li a documentação do Pix mais tive algumas duvidas, será que alguem consegue ir maximo 10 minutos em uma call para sanar essas duvidas ??

E relacionado ao webhook do pix para notificações

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Bom dia, @matheusramos.! Tudo bem?
Para utilizar o envio de Pix é preciso vincular uma URL de notificação na chave utilizada nos dados do pagador.
Quando não existe webhook cadastrado, a falha "A chave informada não tem webhook cadastrado na conta Efí autenticada" é retornada.
Você pode consultar mais informações sobre este recurso em nossa documentação: https://dev.efipay.com.br/docs/api-pix/webhookshttps://dev.efipay.com.br/docs/api-pix/webhooks
Qualquer duvida, ficamos a disposição

Avatar discord do usuario matheusramos.

matheusramos.

Ver Respostas

Bom dia. Estou com dificuldades em implementar o envio do pix, já mudei do modo homologação para a produção. Porem recebo o seguinte erro "A chave informada não tem webhook cadastrado na conta Efí autenticada", verifiquei em algumas respostas anteriores que se tratava de uma chave valida, criei a chave e o problema persistiu. Consultei os exemplo de sdk do Java, para configurar o webhook mas me sinto perdido como configurar isso, já lí a docs mas ainda não consigo entender. Poderiam me ajudar a como posso fazer essa configuração do webhook e conseguir utilizar o recurso de envio de pix?

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Bom dia @gabrielz_fr ! Consumindo a rota POST http://localhost:8080/webhook, esta retornando essa mensagem. Essa configuração do certificado é utilizado, ao consumir nossa API. Consumindo as rotas de nossa API, o que é retornado?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Mas o que nos parece mais efetivo é olhar o CN de quem está fazendo conexão, que é gn-webhook-pix.

Avatar discord do usuario renanmoraes.

renanmoraes.

Preciso de um apoio na configuração do webhook para notificação do pix.

https://dev.efipay.com.br/docs/api-pix/webhooks/

Contexto: Tenho servidor rodando em uma EC2 que é uma maquina micro que tem instalado ubuntu server e uma instancia do nginx, para gerencia meus certifidos utilizo uma integração de certbot com letsencrypt, todas minhas requisições de dev e prod vao para esse mesmo lugar e la faço redirecionamento para meu serviço que roda internamente no Kubernets.

Pelo que tava lendo na documentação preciso ter uma rota com segurança para que isso aconteça (ao meu ver uma seguarnça https)

O que deveria implementar na minha arquitetura para validar...

Nao sei se tenho que fazer algo a mais ou se é apenas configurar minha rota de notificação

Avatar discord do usuario palloma_efi

palloma_efi

Bom dia @gigio1 ! Você recebeu o webhook informando se a solicitação de envio foi realizada ou não?
Quando você realiza a requisição PUT /v2/gn/pix/:idEnvio com sucesso, você obtém o status EM_PROCESSAMENTO.
Porém, a confirmação de REALIZADO ou NAO_REALIZADO é enviada pelo webhook.