Histórico de mensagens sobre Client_ID

EXIBINDO CONVERSAS RECENTES:

Texto: Client_ID
# pix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @edsonpinheiro_! Tudo bem?
O username e password é o client_id e client_secret da aplicação registrada dentro da sua conta digital.
Nesta parte da nossa documentação citamos como é feito o registro de uma nova aplicação: https://dev.efipay.com.br/docs/api-pix/credenciais/#criar-uma-aplica%C3%A7%C3%A3o-ou-configurar-uma-j%C3%A1-existente

# marketplace
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Não temos um tempo estimado desde a abertura até a integração, porque depende de quem esta realizando todo o processo. Mas a abertura da conta, obtenção do client_id e client_secret e configuração do plugin é bem simples e rápida.

# pix
Avatar discord do usuario yasmin_efi

yasmin_efi

Caso for produção, mantenha sandbox = false e o certificado de produção. Caso o client_id e client_secret repassados sejam de homologaão, sandox = true e o certificado deve ser o de homologação

# pix
Avatar discord do usuario aguiar.dev

aguiar.dev

py
from efipay import EfiPay
from dotenv import dotenv_values
import os

env = dotenv_values(".env")

class EfiPayImpl():

def __init__(self) -> None:
credentials = {
"client_id": env["EFI_BANK_CLIENT_ID"],
"client_secret": env["EFI_BANK_CLIENT_SECRET"],
"sandbox": env["EFI_BANK_SANDBOX"],
"certificate": f"{os.getcwd()}/{env["EFI_BANK_CERTIFICATE"]}"
}
self.api = EfiPay(credentials)
um exemplo da implementação que fiz usando py. Ali em certificate eu pego a raiz do meu projeto e passo a variavel do .env pra ele saber qual arquivo devo usar, se é homol ou prod

# dúvidas
Avatar discord do usuario .mateus009

.mateus009

Ver Respostas

Esta dando isso. Adicionei o certificado no Postman como informa na documentação, adicionei o client_id e secret também
imagem enviada na mensagem pelo usuario .mateus009

# pix
Avatar discord do usuario hiagosilvas

hiagosilvas

Ver Respostas

php
$config [
"certificado" => "../certificados/homologacao-certificado_cert.pem",
"client_id" => "???",
"client_secret" => "???"
];

# pix
Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

$config = [
"certificado" => "./certificados/homologacao-certificado_cert.pem",
"client_id" => "???",
"client_secret" => "???"
];

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

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://pix-h.api.efipay.com.br/oauth/token',
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 => $config["certificado"],
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

if(curl_errno($curl)) {
echo 'Erro no cURL: ' . curl_error($curl);
} else {
echo $response;
}

# pix
Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

eu enviaria as credenciais novamente?
CURLOPT_POSTFIELDS =>'{
"grant_type": "client_credentials",
"client_id": "' . CLIENT_ID . '",
"client_secret": "' . CLIENT_SECRET . '"
}',

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Entendido. Sem problemas.
O erro provavelmente está no certificado. O CURL não reconhece o caminho do certificado sendo uma URL como havia colocado. Você deve colocar o caminho para o certificado no local do servidor.
Exemplo:

php
$config = [
"certificado" => "../certificado.pem",
"clientid" => "Client_Id???",
"client_secret" => "Client_Secret???"
];

# pix
Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

Tudo bem Guilherme.
Eu gostaria de utilizar o CURL mesmo, não quero utilizar o SDK em minha aplicação, tem como me ajudar?
$config = [
"certificado" => "certificado.pem",
"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://pix-h.api.efipay.com.br/oauth/token",
CURLOPT_URL => "https://pagarcontas.api.efipay.com.br/v1/oauth/token",
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 => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";

# pix
Avatar discord do usuario aguiar.dev

aguiar.dev

But I believe you don't need to change this class. The code I sent above solved it for me. My implementation:

py
from efipay import EfiPay
from dotenv import dotenv_values
import os

env = dotenv_values(".env")

class EfiPayImpl():

def __init__(self) -> None:
credentials = {
"client_id": env["EFI_BANK_CLIENT_ID"],
"client_secret": env["EFI_BANK_CLIENT_SECRET"],
"sandbox": env["EFI_BANK_SANDBOX"],
"certificate": f"{os.getcwd()}/{env["EFI_BANK_CERTIFICATE"]}"
}
self.api = EfiPay(credentials)

# pix
Avatar discord do usuario stoliarskiykostiantyn

stoliarskiykostiantyn

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:

class EfiClient:
EFI_FT_PIX_KEY: str
EFI_FT_PIX_WEBHOOK_URL: str
efi: EfiPay
creds: s.EfiCredentials

def configure(self, config: BaseConfig):
# Notion: Sandbox = False on prod machine
self.creds = s.EfiCredentials(
client_id=config.EFI_CLIENT_ID,
client_secret=config.EFI_CLIENT_SECRET,
sandbox=config.EFI_IS_SANDBOX,
certificate=config.EFI_CERTIFICATE,
)

self.efi = EfiPay(self.creds.model_dump())
self.EFI_FT_PIX_KEY = config.EFI_FT_PIX_KEY
self.EFI_FT_PIX_WEBHOOK_URL = config.EFI_FT_PIX_WEBHOOK_URL

And the toruble is that efipay class doesn't acceprt certificates, support told me to chage base_url BUT there no way to do it! Help please) Would be very grateful!

# devs
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Exemplificando o que o Rubens disse, como você vai usar a mesma URL para vários clientes, ao emitir o boleto e passar a URL, inclua um parâmetro que identifique o cliente, como por exemplo: https://seudominio.com.br/webhook/?cliente=idCliente123&sandbox=false. Além do parâmetro cliente, é interessante passar algo que indique o ambiente, para que sua aplicação saiba se deve usar o Client_id/Client_secret de produção ou homologação para consultar o token de notificação.

# pix
Avatar discord do usuario _acb09

_acb09

Ver Respostas

{
"certificate": "CAMINHO_ABSOLUTO/web\\certificates\\efipay\\homologacao-544374-cert.pem",
"clientId": "Client_Id_????",
"clientSecret": "Client_Secret_???",
"debug": false,
"pwdCertificate": "",
"responseHeaders": true,
"sandbox": true,
"timeout": 30,
"headers": {
"x-skip-mtls-checking": true
}
}

# pix
Avatar discord do usuario felipenunes0714

felipenunes0714

Ver Respostas

$config = [
"certificado" => "./producao.pem",
"client_id" => "",
"client_secret" => ""
];


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

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://pix-h.api.efipay.com.br/oauth/token", // Rota base, homologação 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 => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

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

eu estou chamando essa chamada simples da documentação, e ela me retorna a pagina em branco ao invés de retornar o token

# bolix
Avatar discord do usuario gabriel.barros

gabriel.barros

Ver Respostas

Boa tarde. Uma empresa consegue emitir boletos para o cnpj da matriz e da filial utilizando o mesmo client Id e secret?

# pix
Avatar discord do usuario _acb09

_acb09

Ver Respostas

O meu código está assim:

$config = [];
$config["certificado"] = config("services.efipay.certificate_path");
$config["client_id"] = config("services.efipay.client_id");
$config["client_secret"] = config("services.efipay.client_secret");

$headers = [];
$headers['Authorization'] = "Basic " . base64_encode($config["client_id"] . ":" . $config["client_secret"]);
$headers['Content-Type'] = 'application/json';

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://pix-h.api.efipay.com.br/oauth/token", // Rota base, homologação ou produção
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 60,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => $headers
));

$response = curl_exec($curl);

if (curl_errno($curl)) {
dd('Error:' . curl_error($curl));
}

curl_close($curl);

dd($response);

# pix
Avatar discord do usuario _acb09

_acb09

Ver Respostas

Bom dia!
Obtive sucesso ao criar a API de boleto no sistema da empresa onde trabalho. Agora, preciso implementar via PIX.
Considerando que estou implementando para a empresa e já possuo Client_secret, Client_id e chave pix aleatória (gerada no painel da Efi). Em todos os cenários via PIX, eu preciso de OAuth para apenas gerar o QR Code para o cliente efetuar o pagamento, assim como via boleto (que não necessita de OAuth)?

# pix
Avatar discord do usuario marilia_05972

marilia_05972

Ver Respostas

Olá, boa noite.
Eu estou fazendo uma integração usando o sdk (gn-api-sdk-typescript": "^2.0.1") , estou tomando um erro de Forbidden na chamada ao pixCreateImmediateCharge([], body) quando tento chamar em ambiente de produção (ou creds de prod). A única mensagem de retorno é essa, "forbidden".
Porém, quando uso credenciais de homologação, funciona perfeitamente, e quando mudo para as de produção, tomo essa exceção. Como a mensagem não está clara, eu não consegui decifrar o que pode ser.
Parâmetros corretos, sandbox=true quando homol, false quando prod, client_secret, client_id,
certificate corretos, chave pix informada corretamente.
Meu único vacilo, foi que não fiz o download do certificado de produção no ato em que ele foi gerado, então eu excluí e gerei outro. Poderia ser esse o problema? Caso positivo, o que eu tenho que fazer agora?
Também testei com o "sdk-typescript-apis-efi": "^1.0.2" e ocorre o mesmo cenário.