Histórico de mensagens sobre url POST

EXIBINDO CONVERSAS RECENTES:

Texto: url POST
# devs
Avatar discord do usuario sshisbachza

sshisbachza

Ver Respostas

to recebendo isso: Error: connect ECONNREFUSED ::1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1138:16) {
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 80,
config: {
url: '/v2/cob',
method: 'post',
data: '{"calendario":{"expiracao":3600},"valor":{"original":"10.00"},"chave"
:"64f7548d-090b-4b68-aacf-7517117c02b4","ocultado":"ocultado"}',
headers: {

# assinaturas
Avatar discord do usuario palloma_efi

palloma_efi

Bom dia @carolineballes ! A notification_url também serve para assinaturas. Neste sentido, qualquer alteração no status das cobranças vinculadas à assinatura, você é notificada automaticamente. Caso o usuário queira alterar os dados do cartão de crédito, basta utilizar o campo update_card no endpoint de retentativa da cobrança (POST /v1/charge/:id/retry). https://sejaefi.link/Hyldf6Hae0
https://dev.efipay.com.br/docs/api-cobrancas/assinatura#retentativa-de-pagamento-de-assinatura-via-cart%C3%A3o-de-cr%C3%A9dito

# módulos-plugins
Avatar discord do usuario guilherme_efi

guilherme_efi

Segue um exemplo mais detalhado, onde é feito a autenticação e consumo do endpoint para criar um boleto.

php
$config = [
"client_id" => "Client_Id_...",
"client_secret" => "Client_Secret_..."
];

$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
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_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Basic ' . $autorizacao
),
));
$returnAuth = json_decode(curl_exec($curl), true);
$access_token = $returnAuth['access_token'];
curl_close($curl);

echo "
";
var_dump($returnAuth);
echo "
";

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/charge/one-step',
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 => '{
"items": [
{
"name": "Teste Gn",
"amount": 1,
"value": 500
}
],
"payment": {
"banking_billet": {
"expire_at": "2024-12-10",
"customer": {
"name": "Gorbadoc Oldbuck",
"cpf": "94271564656",
"email": "[email protected]"
}
}
}
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer ' . $returnAuth['access_token'],
'Content-Type: application/json'
),
));

$responseBillet = curl_exec($curl);
curl_close($curl);

echo "
";
var_dump($responseBillet);
echo "
";

# módulos-plugins
Avatar discord do usuario discovery_kids

discovery_kids

Ver Respostas

sim estou usando cURL.

//Desenvolvido pela Consultoria Técnica da Efí
$config = [
"client_id" => "YOUR-CLIENT-ID",
"client_secret" => "YOUR-CLIENT-SECRET"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
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_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";
?>

com as devidas alterações no client_id e client_secret.

# pix
Avatar discord do usuario _alexandrehenrique

_alexandrehenrique

Ver Respostas

no caso eu to tentando configurar o webhook, eu faço a requisição paraefe enviando a url e a efi tem que testar se a url é valida, o retono que o web hook vem da efi, quando eu faço pelo postman ele fa respondendo normal

# assinaturas
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Bom dia @rian2965, tudo bem?

Você pode consumir o endpoint POST /v1/plan/:id/subscription/one-step para emitir a cobrança e ao mesmo tempo atribuir a URL de notificação com o atributo metadata.

Uma vez que a cobrança tenha uma URL de notificação, todas as alterações nela irão fazer com que seja disparado um POST para sua URL, nesta notificação terá um token que deve ser consultado para verificar a situação da cobrança
imagem enviada na mensagem pelo usuario joaolucas_efi

# assinaturas
Avatar discord do usuario rian2965

rian2965

Opa, boa noite

tenho duas duvidas referentes as assinaturas

no endpoint de criar uma assinatura e pagar pelo bolix, eu consigo informar a url de notification?
atualmente eu faço isso em 2 passos, primeiro crio e depois atribuo

após assinar, o cliente vai ficar recebendo a cobrança no cartão. Então todo mês, após o primeiro pagamento, sempre que ele pagar será recebido uma post notificação no meu sistema?

# pix
Avatar discord do usuario tieferson

tieferson

Mesmo se removo o CURLOPT_POSTFIELDS dá esse erro

# pix
Avatar discord do usuario kauan_bs

kauan_bs

Boa tarde. Estou tentando configurar o webhook no meu servidor porém estou recebendo 401. Estes são meus códigos :

js

const httpOptions = {
cert: fs.readFileSync("gd_bundle-g2-g1.crt"), // Certificado fullchain do dominio
key: fs.readFileSync("56092e4c5a31e0c5.crt"), // Chave privada do domínio
ca: fs.readFileSync("chain-pix-prod.crt"), // Certificado público da Efí
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Caso precise que os demais endpoints não rejeitem requisições sem mTLS, você pode alterar para false
};

app.post("/webhookEfi", (request, response) => {
if (request.socket.authorized) {
console.log("autorizado")
response.status(200).end();
} else {
console.log("não autorizado")
response.status(401).end();
}
});

app.post("/webhookEfiConfig", async (req, res) => {
try {
let body = {
webhookUrl: "{minhaurl}/webhookEfi",
};

let params = {
chave: "6e364195-3e3d-4ee5-8ca0-14db77d30593",
};

const efipay = new EfiPay(options);

await efipay.pixConfigWebhook(params, body);

// Se tudo correr bem, você pode enviar uma resposta de sucesso
res.status(200).send("Configuração do webhook concluída com sucesso!");
} catch (error) {
// Se ocorrer algum erro, você pode enviar uma resposta de erro e registrar o erro
console.error("Erro ao configurar o webhook:", error);
res.status(500).send("Ocorreu um erro ao configurar o webhook.");
}
});
Alguem sabe qual o motivo ?

# cartões
Avatar discord do usuario mcunha98

mcunha98

Ver Respostas

pessoal, uma duvida "conceitual"
como via jquery eu ficarei bom boa parte dos dados expostos (ao obter o installments por exemplo), obviamente que qualquer 'sobrinho' pode entender a lógica por trás da camada de tela e tentar burlar alguns payloads que só receberei em tempo de tela (não me refiro ao payment_token).
Como eu obtive installment, value e interest_percentage em tempo de tela, e vou passar no meu checkout, teria como via server side ao menos eu consultar a taxa cadastrada para aquela determinada parcela ?
Estou prevendo uma possivel brecha de meu pagamento parcelado ser alterado em tempo de tela, e minha finalizacao ficar 'aberta' para possiveis mexidas no valor, assim eu faria meu valor 'bruto' x resposta-api-efi-taxas-cartao-mastercard-parcela-3 (no fundo a mesma coisa que simular installments via server side, mas sem o JS e então obter para conferencia o valor que será simulado para pagamento).

-- edit --
Ops...acho que seria essa aqui pelo jeito : /v1/installments , correto ?

# bolix
Avatar discord do usuario rafaelogliari

rafaelogliari

Ver Respostas

Bom dia!

Estou com dificuldades de gerar boleto com PHP Curl. Sempre retorna: Unauthorized.
Utilizei credencias de Homologação.

Estou utilizando esse modelo:
$config = [
"client_id" => "Client_Id_....",
"client_secret" => "Client_Secret_...."
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/charge/one-step',
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 =>'{
"items": [{
"name": "Product 1",
"value": 500,
"amount": 1
}],
"shippings": [{
"name": "Default Shipping Cost",
"value": 100
}],
"payment": {
"banking_billet": {
"expire_at": "2024-04-16",
"customer": {
"name": "Gorbadoc Oldbuck",
"email": "[email protected]",
"cpf": "10617184682",
"birth": "1977-01-15",
"phone_number": "62986070247"

}
}
}
}',
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

# pagamento-contas
Avatar discord do usuario yasmin_efi

yasmin_efi

Sobre a informação do pagamento, você deve configurar uma URL de notificação, no momento em que envia a requisição de emissão, e a cada alteração no status da cobrança enviaremos uma notificação do tipo POST para esta sua URL configurada

# pix
Avatar discord do usuario m.h1604

m.h1604

Ver Respostas

Alguém poderia me ajudar sobre uma dúvida das notificações do Pix.

Configurei uma url de notificações com o skip-MTLs ativo seguindo esta estrutura: http://urldosite/notifications.php

Porém quando recebo a resposta, vem somente um requisição em branco, e no webhook inbox chega normalmente a notificação.

Alguém consegue me ajudar com isso?

# bolix
Avatar discord do usuario mayron1806

mayron1806

Ver Respostas

Bom dia, estou criando uma cobrança do tipo bolix, mas está sendo retornado como se fosse um boleto
Aqui esta o json de entrada "{
"items": [
{
"name": "Plano 1",
"value": 2000,
"amount": 1
}
],
"payment": {
"banking_billet": {
"expire_at": "2024-02-24",
"customer": {
"name": "mayron fernandes",
"cpf": ...,
"email": ...,
"phone_number": ...,
"birth": ...,
"address": {
...
}
}
}
},
"metadata": {
"custom_id": "f5e3fef8-01ca-4503-b08e-67aa194bf416",
"notification_url": ...
}
}", e aqui a resposta "{
barcode: '00000.00000 00000.000000 00000.000000 0 00000000000000',
link: 'https://download.gerencianet.com.br/v1/524831_14_SERCA5/524831-14-NEMCA0?sandbox=true',
billet_link: 'https://visualizacaosandbox.gerencianet.com.br/emissao/524831_14_SERCA5/A4XB-524831-14-NEMCA0',
pdf: {
charge: 'https://download.gerencianet.com.br/524831_14_SERCA5/524831-14-NEMCA0.pdf?sandbox=true'
},
expire_at: '2024-02-24',
charge_id: 44006663,
status: 'waiting',
total: 2000,
payment: 'banking_billet'
}"

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, @edvandell. Bom dia! Tudo bem?
Tente registrar sua URL novamente através do endpoint PUT /v2/webhook/:chave para verificar qual será a resposta.

# módulos-plugins
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O outro módulo ficava numa URL que não existe mais... o autor é o @joelemanoel então se ele ler a msg no Discord talvez poste a URL atualizada.

# pix
Avatar discord do usuario wendellasevedo

wendellasevedo

@jessica_efi estou com a seguinte dúvida, quando eu crio uma cobrança (homologação) sem txid o STATUS fica ATIVO, ai quando eu acesso a URL do location "location": "qrcodespix-h.sejaefi.com.br/v2/cbaa695db80545559dee3ddf93c9e142", a resposta diz que a cobrança já não está mais ativa. Esse procedimento é normal ?

# devs
Avatar discord do usuario itms.

itms.

Boa noite, tenho uma aplicação em Java e Spring Boot e estou utilizando a API fornecida por vocês. Realizei toda a integração, porém estou enfrentando um problema em meu ambiente produtivo. Ao tentar criar um plano de assinatura, estou recebendo o erro "br.com.efi.efisdk.exceptions.AuthorizationException: Authorization Error: Client_id or Client_secret are wrong".

Verifiquei todas as configurações, e parecia estar tudo correto; no entanto, o erro persistia. Para facilitar a investigação, subi a aplicação em minha máquina e apontei tudo para o ambiente de produção. Para minha surpresa, a API conseguiu se autenticar e criar um plano de assinatura.

Fiz a seguinte verificações:

1. Client_Id e Client_Secret estão corretos;
2. O corpo da requisição está correto;
3. Realizei a chamada via Postman utilizando o mesmo Client_Id, Client_Secret e corpo para a URL https://cobrancas.api.efipay.com.br/v1/plan e obtive sucesso;
4. Verifiquei o fuso horário da máquina e da JVM no ambiente de produção.

Não sei mais o que devo verificar, já que na minha máquina e via Postman funciona conforme o esperado. Encontro esse problema de autenticação apenas na máquina da AWS.

# assinaturas
Avatar discord do usuario itms.

itms.

Ver Respostas

Boa noite, tenho uma aplicação em Java e Spring Boot e estou utilizando a API fornecida por vocês. Realizei toda a integração, porém estou enfrentando um problema em meu ambiente produtivo. Ao tentar criar um plano de assinatura, estou recebendo o erro "br.com.efi.efisdk.exceptions.AuthorizationException: Authorization Error: Client_id or Client_secret are wrong".

Verifiquei todas as configurações, e parecia estar tudo correto; no entanto, o erro persistia. Para facilitar a investigação, subi a aplicação em minha máquina e apontei tudo para o ambiente de produção. Para minha surpresa, a API conseguiu se autenticar e criar um plano de assinatura.

Fiz a seguinte verificações:

1. Client_Id e Client_Secret estão corretos;
2. O corpo da requisição está correto;
3. Realizei a chamada via Postman utilizando o mesmo Client_Id, Client_Secret e corpo para a URL https://cobrancas.api.efipay.com.br/v1/plan e obtive sucesso;
4. Verifiquei o fuso horário da máquina e da JVM no ambiente de produção.

Não sei mais o que devo verificar, já que na minha máquina e via Postman funciona conforme o esperado. Encontro esse problema de autenticação apenas na máquina da AWS.

# bolix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @divinocardozo! Tudo bem e com você?
O processo de emissão via API é simplificado em comparação ao formato antigo utilizado pelos bancos.
Ao utilizar nossa API para gerar boletos, você não precisa mais lidar com a submissão de arquivos de remessa. Basta enviar uma requisição para nossa API, incluindo as informações da cobrança, e retornaremos as informações do boleto gerado.
Quanto às baixas, também simplificamos o processo. Não é necessário gerar um arquivo de retorno. Durante a emissão do boleto, você apenas informa uma URL específica. Sempre que houver uma alteração no status da cobrança, realizaremos automaticamente uma requisição do tipo POST para a URL indicada.
Em resumo, nosso sistema permite que você automatize completamente o processo de emissão e confirmação das cobranças.