
eu fiz o teste de webhook em ambiente de produção utilizando a minha chave pix e funcionou.
fui testar em ambiente de homologação utilizando a chave pix de email da efipay e não gerou nenhum webhook
Termos mais procurados:
eu fiz o teste de webhook em ambiente de produção utilizando a minha chave pix e funcionou.
fui testar em ambiente de homologação utilizando a chave pix de email da efipay e não gerou nenhum webhook
o webhook com a minha chave está funcionando fiz pix para testar
eu vi na documentação que eu posso gerar um webhook se eu gerar um pix com a chave "[email protected]" eu preciso fazer mais alguma alteração para isso funcionar?
Hi everyone! Could someone help me please! I'm trying to implement EfiPay to send payment to pix with such code from python sdk from github repo https://github.com/efipay/sdk-python-apis-efi
Code looks like this now:
boa noite pessoal, estou tendo problemas para configurar o webhook pix sempre retona 403.
{
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 403"
}
já testei e sei que o erro está nessa parte da config do nginx:
location /api/webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
já baixei o certicado certificate-chain-homolog.crt
Bom dia, @excarplex_27431! Tudo bem?
1. Para configurar um split de pagamento em uma cobrança Pix, você precisará seguir alguns passos específicos e utilizar os endpoints adequados da API. Aqui está um resumo das informações para te orientar:
1.1. Configuração do Split de Pagamento:
Primeiro, é necessário criar uma configuração de split. Isso é feito através do endpoint específico para configuração de split, disponível aqui. Esta configuração pode ser reutilizada em múltiplas cobranças Pix, o que facilita o processo se você tiver uma estrutura de split recorrente.
1.2. Criação da Cobrança Pix:
Após configurar o split, o próximo passo é criar a cobrança Pix. Isso pode ser feito de duas maneiras, dependendo do tipo de cobrança:
1.2.1. Cobrança Imediata: Utilize o endpoint para criar uma cobrança imediata com um TXID, disponível aqui.
1.2.2Cobrança com Vencimento: Se a cobrança tiver vencimento, utilize este endpoint.
1.3. Associação da Configuração de Split à Cobrança Pix:
Com a cobrança Pix criada, você precisará associar a configuração de split à cobrança. Isso é feito através do endpoint específico para vinculação de cobrança com split, disponível aqui.
Além disso, para melhor compreensão do processo de split de pagamento, você pode consultar o fluxograma disponível neste link.
2. O Split de pagamento Pix só pode ser realizado entre contas Efí, com limite máximo de 20 contas para o repasse.
3. Para configurar o webhook, você precisará fazer isso através de uma requisição HTTP utilizando o endpoint específico fornecido pela Efí. Esse processo envolve associar uma chave Pix registrada na sua conta Efí, que é a mesma chave que será utilizada na criação da cobrança, à URL de retorno da sua aplicação.
Você pode seguir o passo a passo detalhado na nossa documentação sobre webhooks. Lá, você encontrará o endpoint que deve ser utilizado para essa configuração.
Além disso, é essencial que você configure o mTLS (Mutual TLS) no seu servidor web para garantir que a comunicação siga os padrões de segurança estabelecidos. Mais detalhes sobre essa configuração podem ser encontrados na seção sobre mTLS na nossa documentação.
Se precisar de mais ajuda, conte com a gente!
Isso, ele vai no webhook, mas você pode encontra-lo também na sua conta ou nas consultas via GET da nossa API Pix
Retorna sim. O webhook é enviado dessa forma:
Boa tarde @marcosvinicius0759 ! Não compreendi muito bem sua dúvida. Você vai cadastrar uma única url de webhook para uma chave Pix da sua conta. Todas as cobranças vinculadas àquela chave, quando houver um pagamento, será disparado o webhook pra você. Você terá a informação do e2eid e do txid daquela cobrança recebida.
Então! Fui testar agora, já criei o webhook e não estava conseguindo liberar o pagamento no qr code, (falava que tinha expirado), então mudei para ambiente de produção e funcionou, enviei o pix, mas a notificação, simplesmente não chega, e na aba de pix em produção nao tem a aba "notificação". Como posso resolver este problema?
Bom dia! Ao tentar integrar nosso aplicativo com pagamentos via pix, criamos o webhook, porém no vídeo foi ensinado a efetuar o pagamento via pix pelo smartphone para a notificação chegar no webhook. Eu entrei em minha conta da efi, e mirei para o qrcode, porém ficou piscando a camera e por fim, tive um bloqueio nas funcionalidades do aplicativo.
Bom dia @errorzadaa ! É possível sim. Existe uma configuração na conta, onde você pode ativar a opção de receber os dados do pagador via webhook. Seria (esse)(https://dev.efipay.com.br/docs/api-pix/endpoints-exclusivos-efi#criarmodificar-configura%C3%A7%C3%B5es-da-conta) endpoint. Em nossa documentação, você encontra todos os detalhes sobre esse endpoint, mas qualquer dúvida, estamos à disposição.
Sim, esta informação não é retornada via endpoint, somente via webhook caso seja adicionado a configuração de recebimento desta informação via endpoint de configuração: https://dev.efipay.com.br/docs/api-pix/endpoints-exclusivos-efi#criarmodificar-configura%C3%A7%C3%B5es-da-conta
Boa tarde!
Estou recebendo o seguinte erro ao criar um webhook de pix:
{
"code": 400,
"error": "json_invalido",
"errorDescription": "Parâmetro \".headers['x-skip-mtls-checking']\", deve ser igual a um dos valores predefinidos"
}
Estou usando o SDK, e todos endpoints funcionam (cartão, pix e boleto) porém não consigo gerar o webhook. Ou recebo o erro acima, ou recebo Curl 52 Error.
Precisa ativar o webhook para a chave Pix para a qual você vai criar a cobrança. Aí todas as cobranças dessa chave notificarão para essa URL.
/
Detailed endpoint documentation
https://dev.efipay.com.br/docs/api-pix/webhooks#configurar-o-webhook-pix
/
$autoload = realpath(__DIR__ . "../../../../../../../vendor/autoload.php");
if (!file_exists($autoload)) {
die("Autoload file not found or on path $autoload
.");
}
require_once $autoload;
use Efi\Exception\EfiException;
use Efi\EfiPay;
$optionsFile = __DIR__ . "/../../credentials/options.php";
if (!file_exists($optionsFile)) {
die("Options file not found or on path $options
.");
}
$options = include $optionsFile;
$options["headers"] = [
"x-skip-mtls-checking" => false
];
$params = [
"chave" => ""
];
$body = [
"webhookUrl" => ""
];
try {
$api = new EfiPay($options);
$response = $api->pixConfigWebhook($params, $body);
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("" . json_encode($response->body, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
print_r("" . json_encode($response->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
} else {
print_r("" . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (EfiException $e) {
print_r($e->code . "
");
print_r($e->error . "
");
print_r($e->errorDescription) . "
";
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("" . json_encode($e->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (Exception $e) {
print_r($e->getMessage());
}
/
Detailed endpoint documentation
https://dev.efipay.com.br/docs/api-pix/webhooks#configurar-o-webhook-pix
/
$autoload = realpath(__DIR__ . "/../../../vendor/autoload.php");
if (!file_exists($autoload)) {
die("Autoload file not found or on path $autoload
.");
}
require_once $autoload;
use Efi\Exception\EfiException;
use Efi\EfiPay;
$optionsFile = __DIR__ . "/../../credentials/options.php";
if (!file_exists($optionsFile)) {
die("Options file not found or on path $options
.");
}
$options = include $optionsFile;
$options["headers"] = [
"x-skip-mtls-checking" => false
];
$params = [
"chave" => "12345"
];
$body = [
"webhookUrl" => "www.meulink.com"
];
try {
$api = new EfiPay($options);
$response = $api->pixConfigWebhook($params, $body);
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("" . json_encode($response->body, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
print_r("" . json_encode($response->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
} else {
print_r("" . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (EfiException $e) {
print_r($e->code . "
");
print_r($e->error . "
");
print_r($e->errorDescription) . "
";
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("" . json_encode($e->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (Exception $e) {
print_r($e->getMessage());
}