Histórico de mensagens sobre url pix txid em pix

EXIBINDO CONVERSAS RECENTES:

Texto: url pix txid
Canal: pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Um exemplo de um acionamento de webhook é o POST em {sua_url}/pix com um body da forma:

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

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

$url = "https://pix-h.api.efipay.com.br/v2/cobv/7978c0c97ea847e78e8849634473c1f1'";

O txid é um path parameter, não é nem no query nem no body

Avatar discord do usuario .viniciusc

.viniciusc

java
public static Cob createCharge(String token, String payload) {
Cob cob = null;
try {
Generex txid = new Generex("[a-zA-Z0-9]{26,35}");
URL url = new URL("https://api-pix-h.gerencianet.com.br/v2/cob/" + txid.random());
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("PUT");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer " + token);

OutputStream os = conn.getOutputStream(); // O erro do connection reset ocorre aqui
os.write(payload.getBytes());
os.flush();

int responseCode = conn.getResponseCode();

StringBuilder responseBuilder = new StringBuilder();
BufferedReader br;

if (responseCode >= 400) {
br = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
} else {
br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
}

String response;
while ((response = br.readLine()) != null) {
responseBuilder.append(response);
}

//System.out.println("Código de resposta HTTP: " + responseCode);
//System.out.println("Resposta do servidor: " + responseBuilder);

JsonMapper mapper = JsonMapper
.builder()
.configure(MapperFeature.USE_ANNOTATIONS, false)
.build();

cob = mapper.readValue(responseBuilder.toString(), Cob.class);

conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return (cob != null) ? cob : new Cob();
}

Avatar discord do usuario joao_efi

joao_efi

Bom dia @tiagooops tudo certo?
A url de webhook do Pix só pode ser cadastrada via API, através do endpoint abaixo.
https://dev.gerencianet.com.br/docs/api-pix-endpoints#configurar-o-webhook-pix

Nele você vincula aquela URL a uma chave Pix, dessa forma sempre que for paga uma cobrança para aquela chave (e essa cobrança tiver txid) será acionado o webhook.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @deivson7351.
Segue um exemplo cURL para consultar um Pix a partir de seu txid.

php
$access_token = 'resultado da autenticação';
$certificado = 'caminho do certificado'
$txid = 'identificador do pix';

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix.gerencianet.com.br/v2/cob/' . $txid,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_SSLCERT => $certificado,
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
'authorization: Bearer ' . $access_token
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde! Segue o exemplo:


$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix.gerencianet.com.br/v2/cob/' + $txid,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'authorization: Bearer $access_token',
'x-client-cert-pem: {{X-Certificate-Pem}}'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

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 em um servidor dedicado, você deve inserir uma chave pública da Gerencianet nas configurações de 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, Nginx, Node, etc: 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:

json
{
"webhookUrl": "https://seudominio.com.br/webhook"
}
No entanto, as notificações serão enviadas para sua URL com o /pix no final, assim: https://seudominio.com.br/webhook/pix.

Desta forma, 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 também 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 guilherme_efi

guilherme_efi

Ver Respostas

Primeiro você deve autenticar na API e obter o access_token.

php
$curl = curl_init();

$authorization = base64_encode("$client_id:$client_secret");

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, desenvolvimento ou produção
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $arq_certificado, // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $authorization",
"Content-Type: application/json"
),
));

$auth = json_decode(curl_exec($curl), true);

curl_close($curl);

$tokenType = $auth['token_type'];
$accessToken = $auth['access_token'];

Depois emitir o pix
php
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/v2/cob/$txID",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_SSLCERT => $arq_certificado, // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS => '{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cpf": "02279112312",
"nome": "Maria apareciada monteiro"
},
"valor": {
"original": "10.21"
},
"chave": "",
"solicitacaoPagador": "Mensaldiade Monteiro Sistemas"
}',
CURLOPT_HTTPHEADER => array(
"authorization: $tokenType $accessToken",
"Content-Type: application/json"
),
));

$dadosPix = json_decode(curl_exec($curl), true);
curl_close($curl);

return $dadosPix;

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Com o pix.ae especificamente dá para fazer algumas coisas:
- Colocar a URL do webhook num diretório não óbvio, tipo api.exemplo.com.br/sduasiduasiduai . Aí quem sabe é pq foi informado pela GN.
- Checar o IP de conexão para ver se é o IP que você já costuma receber.
- Checar a chave Pix do webhook e comparar com a chave da cobrança daquele txid.

Com AWS dá pra fechar melhor, sim, mas dá para mitigar um pouco via pix.ae mesmo.

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 lucapwn

lucapwn

Ver Respostas

Olá, boa noite! Tudo bem? 😀
Estou tentando criar meu próprio webhook em PHP (no meu servidor dedicado) para receber as notificações de pagamentos realizados via Pix, e há algum problema, pois não recebo as notificações de pagamentos. Segue o código em PHP abaixo:

header("Content-Type: application/json");
$request = file_get_contents("php://input");
file_put_contents("webhook.json", print_r($request, true));
print_r($request);
?>

Recebo a notificação de configuração do link do webhook normalmente:

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

Mas não recebo a notificação quando realizo o pagamento:

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

Tentei utilizar o exemplo de configuração de servidor em Python desenvolvido em Flask (https://dev.gerencianet.com.br/v1/docs/api-pix#section-exemplos-de-uma-configura-o-de-servidor-), mas não consegui seguir esse exemplo. ☹️

Já testei em sites de terceiros (como o https://webhook.site), e funciona normalmente (recebi a notificação do pagamento).

O meu servidor possui certificado SSL e a versão do TLS é 1.2.

Preciso receber essas notificações e armazená-las em algum lugar para verificar se o pagamento foi realizado. Vocês podem me ajudar? Irei ficar muito grato! Muito obrigado! 😀

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 rubenskuhl

rubenskuhl

Ver Respostas

Não, na API Pix a URL é definida para chave Pix. E o que você tem para dar match são chave e txid.

Avatar discord do usuario suricatobr

suricatobr

Ver Respostas

bom dia @Consultoria Técnica , o callback via post na url, é dado na variável pix contendo endToEndId,txid,valor ou é dada individualmente em cada um dos valores?
// Pix recebido
{
"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"
}
]
}

Avatar discord do usuario Deleted User

Deleted User

Boa tarde, pessoal!

Estou tendo um problema com o recebimento do webhook.

Na rota de webhook eu programei pra registrar um log das requests pra eu ver se está tudo ok. Quando eu faço um PUT pra configurar o webhook, o site faz o log do evento teste certinho e tenho o retorno HTTP 200 OK.

[2021-05-21 12:09:58] production.INFO: {"evento":"teste_webhook","data_criacao":"2021-05-21T15:09:58.047Z"}

Quando faço um pagamento real, eu não encontro log nenhum do webhook no site e nem na rota de consulta dos webhooks.

URL: https://api-pix.gerencianet.com.br/v2/webhook?inicio=2020-05-20T21:00:00Z&fim=2020-05-22T21:01:35Z (GET)

json
{
"parametros": {
"inicio": "2020-05-20T21:00:00.000Z",
"fim": "2020-05-22T21:01:35.000Z",
"paginacao": {
"paginaAtual": 0,
"itensPorPagina": 100,
"quantidadeDePaginas": 0,
"quantidadeTotalDeItens": 0
}
},
"webhooks": []
}

Cobrança que eu fiz teste
json
{
"calendario": {
"criacao": "2021-05-21T14:51:23.000Z",
"expiracao": 115200
},
"txid": "1a0cbe16ec6a44baade5f93784ff7273",
"revisao": 0,
"loc": {
"id": 68,
"location": "qrcodes-pix.gerencianet.com.br/v2/75363c7ef9e64723955d5ed656924c2f",
"tipoCob": "cob",
"criacao": "2021-05-21T14:51:23.000Z"
},
"location": "qrcodes-pix.gerencianet.com.br/v2/75363c7ef9e64723955d5ed656924c2f",
"status": "CONCLUIDA",
"valor": {
"original": "0.50"
},
"chave": "ff70834e-483e-4ece-bd9f-77ae46ca350b",
"pix": [
{
"endToEndId": "E0036030520210521145244d044acecd",
"txid": "1a0cbe16ec6a44baade5f93784ff7273",
"valor": "0.50",
"chave": "ff70834e-483e-4ece-bd9f-77ae46ca350b",
"horario": "2021-05-21T14:52:35.000Z"
}
]
}

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Exatamente. Os callbacks são enviados pela Gerencianet via POST {$request.body#​/webhookUrl}​/pix quando houver uma alteração no status do PIX. O seguinte é um exemplo de um Pix recebido

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

Avatar discord do usuario rubenskuhl

rubenskuhl

A consulta pela URL é só com o e2eid. Dá para consultar /pix pelo txid mandando inicio/fim/txid, mas se não foi pago vai ter resposta nula.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

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 mais detalhes em: https://dev.gerencianet.com.br/v1/docs/api-pix#section-webhook

Então com seu servidor configurado com mTLS em seu domínio (ex: 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. Na SDK de PHP você pode utilizar do exemplo: /examples/pix/webhooks/update.php

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.

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 guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!257617133595262977>. As notificações do Pix funcionam um pouco diferentes da API de cobranças.
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.

Então com seu servidor configurado com mTLS em seu domínio, ex 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.

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 guilherme_efi

guilherme_efi

Ver Respostas

<@!723278999236771916> o que o Rubens lhe exemplificou é no momento que você for vincular sua chave Pix a uma URL do Webhook.

Ou seja, para que seu sistema receba estas notificações, primeiramente você deve consumir a rota PUT /v2​/webhook/:chave, no caso da SDK utilize o arquivo examples\pix\webhooks\update.php passando como parâmetro sua chave Pix, no body sua URL do webhook e 'x-skip-mtls-checking' => 'false', // Para validar o mTLS

Desta forma, , os PIX associados a um txid gerados com sua chave serão notificados.