Histórico de mensagens sobre Client_ID

EXIBINDO CONVERSAS RECENTES:

Texto: Client_ID
# pix
Avatar discord do usuario gabdarkness

gabdarkness

Ver Respostas

[PixHandler] Gerando pagamento PIX
[PaymentAPI] DEBUG - Credenciais EFI:
[PaymentAPI] CLIENT_ID: Client_Id_...28d4 (50 caracteres)
[PaymentAPI] CLIENT_SECRET: Client_Sec...ea5c (54 caracteres)
[PaymentAPI] CLIENT_ID length: 50
[PaymentAPI] CLIENT_SECRET length: 54
[PaymentAPI] Verificando certificado em: ./certified/certificate-prod.p12
[PaymentAPI] Inicializando cliente Efí: {
sandbox: 'desativado',
clientId: 'Client_Id_...',
certificatePath: './certified/certificate-prod.p12'
}
[PaymentAPI] Cliente Efí inicializado com sucesso
[PaymentAPI] Gerando pagamento PIX: {
valor: '0.01',
descricao: 'Compra de 100 Robux - Ruby Verse',
correlationId: 'TICKET_1354463581768519831'
}
[PaymentAPI] Payload da cobrança: {"calendario":{"expiracao":3600},"valor":{"original":"0.01"},"solicitacaoPagador":"Compra de 100 Robux - Ruby Verse","infoAdicionais":[{"nome":"CorrelationID","valor":"TICKET_1354463581768519831"}]}
[PaymentAPI] Erro ao gerar pagamento PIX: {
nome: 'json_invalido',
mensagem: 'Valores ou tipos de campo inválidos',
erros: [
{
chave: 'required',
caminho: '.body',
mensagem: 'deve ter a propriedade obrigatória chave'
}
]
}
[PIX] Erro: Error: Falha ao gerar pagamento PIX: undefined
at PaymentAPI.generatePixPayment (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\utils\PaymentAPI.js:209:19)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async PixHandler.handlePixGeneration (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\services\ticket\pixHandler.js:32:33)
at async PixHandler.handleTermsAcceptance (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\services\ticket\pixHandler.js:173:13)
at async accept-terms (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\Events\ticket\ticketPurchaseHandler.js:66:9)
at async module.exports.run (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\Events\ticket\ticketPurchaseHandler.js:96:9)

# pix
Avatar discord do usuario gabdarkness

gabdarkness

Bom dia, existe alguma chave especifica para o pix, além do client_id e do client_secret?

# devs
Avatar discord do usuario enzovzy

enzovzy

Ver Respostas

opa, bom dia, estou tendo um erro ao logar com o oauth no postman e ambiente nodejs, fiz o passo a passo da doc de voces nos dois casos, o do postman eu copiei a collection de voces, troquei o client id e secret, adicionei o certificado e da o seguinte erro

json
{
"error": "invalid_client",
"error_description": "Invalid or inactive credentials"
}

imagem enviada na mensagem pelo usuario enzovzy
imagem enviada na mensagem pelo usuario enzovzy

# pix
Avatar discord do usuario luantrindny

luantrindny

entendi, tinham me mandando somente 1 client id e secret, mas 2 certificados

# pix
Avatar discord do usuario joao_efi

joao_efi

Ambos mudam, se está com o client_id e client_secret de produção, o certificado também precisa ser do mesmo ambiente

# pix
Avatar discord do usuario dauid64

dauid64

No momento estou fazendo da primeira forma

py
class PaymentService:
def __init__(self):
certificado_path = os.path.join(settings.BASE_DIR, os.getenv('EFI_CERTIFICADO'))
env = os.getenv('ENV_TYPE') if os.getenv('ENV_TYPE') else 'dev'
sandbox = False if env == 'prod' else True

options = {
"client_id": os.getenv('EFI_CLIENT_ID'),
"client_secret": os.getenv('EFI_CLIENT_SECRET'),
"sandbox": sandbox,
"certificate": certificado_path,
}

self.sdk = EfiPay(options)

e na minha view eu faço

py
@method_decorator(csrf_exempt, name='dispatch')
class ProcessPayment(generic.View):
def post(self, request, args, kwargs):
payment_service = PaymentService()

# devs
Avatar discord do usuario gobbiautomatik_32218

gobbiautomatik_32218

Ver Respostas

opa Guilherme, valeu ai pela resposta, no typebot temos a opçao de um http request, porem ate coloquei na head username ( client_id) , password ( client_secret), porem o p12 nao entendi como colocar, hospedei ele no banco de dados online, como arquivo, consigo acessa-lo pelo link, assim como o postmann acessa na minha maquina pelo endereco do arquivo ne, porem nao entendi como inseri-lo, deve ser no header tbem, no body, sabe me informar ?

# pix
Avatar discord do usuario mreisme

mreisme

Ver Respostas

Tive um problema parecido e resolvi dessa forma no nestjs

import EfiPay from 'sdk-typescript-apis-efi';
import dotenv from 'dotenv';
dotenv.config();

const options = {
sandbox: true, // false = PRODUÇÃO, true = HOMOLOGAÇÃO,
client_id: process.env.EFI_CLIENT_ID!,
client_secret: process.env.EFI_CLIENT_SECRET!,
certificate: process.env.EFI_CERT!,
validate_mtls: false
};

const efipay = new EfiPay(options)

export default efipay;

# devs
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Entendi, Ricado! Boletos gerados diretamente pela plataforma web não podem ser consultados via API, pois não estão vinculados a nenhuma aplicação específica (client_id e client_secret). A API só permite consultar boletos emitidos através de uma aplicação autenticada.

# devs
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Bom dia @ricardo_oliveira_souza ! O erro 3500010 - property_does_not_exists: A propriedade [id] informada não existe ocorre porque a tentativa de acesso à cobrança está sendo feita por uma aplicação diferente daquela que a criou. Cada cobrança (charge_id) está vinculada à aplicação (client_id e client_secret) que a gerou. Se outra aplicação tentar acessá-la, a API não conseguirá localizar o identificador, resultando nesse erro.

Para resolver isso, certifique-se de que está utilizando as credenciais (client_id e client_secret) da mesma aplicação que criou a cobrança.

# pix
Avatar discord do usuario _paocareca

_paocareca

credentials = {
"client_id": "Client_Id_0000",
"client_secret": "Client_Secret_0000",
"sandbox": False,
}

certificado = r'C:\Users\User\Downloads\conversor-p12-efi-main\conversor-p12-efi-main\producao-552927-Bot_dominus_cert.pem'

auth = base64.b64encode(
(f"{credentials['client_id']}:{credentials['client_secret']}"
).encode()).decode()

url = "https://pix.api.efipay.com.br/oauth/token"

payload="{\r\n \"grant_type\": \"client_credentials\"\r\n}"
headers = {
'Authorization': f"Basic {auth}",
'Content-Type': 'application/json'
}

response = requests.request("POST",
url,
headers=headers,
data=payload,
cert=certificado)

print(response.text)

# pix
Avatar discord do usuario shoutonplay

shoutonplay

Ver Respostas

Bom dia, estou tentando integrar utilizando nestjs com a lib sdk-node-apis-efi

import EfiPay from 'sdk-node-apis-efi';

export const efiPay = new EfiPay({
sandbox: process.env.NODE_ENV !== 'production',
client_id: process.env.EFI_CLIENT_ID,
client_secret: process.env.EFI_CLIENT_SECRET,
pix_cert: process.env.EFI_PIX_CERTIFICATE,
certificate: process.env.EFI_CERTIFICATE,
cert_base64: true,
});

porém estou tendo este erro:

TypeError: sdk_node_apis_efi_1.default is not a constructor

# cartões
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Nesse link gera em homologação. Então, ao criar a cobrança, você precisa usaro Client_Id e e Cliente_Secret de homologação também.
Verifique se está usando as credenciais de produção. Talvez por isso está apresentado a falha 401.

# devs
Avatar discord do usuario thyagomax

thyagomax

Aqui está o código
-
require __DIR__ . '/vendor/autoload.php';

use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;
use Dotenv\Dotenv;

// Carrega as variáveis de ambiente
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();

// Credenciais da API (carregadas do .env)
$options = [
'client_id' => $_ENV['GERENCIANET_CLIENT_ID'],
'client_secret' => $_ENV['GERENCIANET_CLIENT_SECRET'],
'sandbox' => $_ENV['GERENCIANET_SANDBOX'] === 'true',
];

try {
// Inicializa a API da Gerencianet
$api = new Gerencianet($options);

// Faz a requisição para obter o saldo
$response = $api->call('gnGetBalance', [], []);

// Exibe o saldo formatado
$saldo = $response['saldo'];
echo "Saldo disponível: R$ " . number_format($saldo, 2, ',', '.');
} catch (GerencianetException $e) {
echo "Erro ao consultar saldo: " . $e->getMessage();
} catch (Exception $e) {
echo "Erro: " . $e->getMessage();
}
?>

# abertura-contas
Avatar discord do usuario abralvs

abralvs

Ver Respostas

Bom dia!

Se eu solicitar a abertura de uma conta que já existe (tendo permissão para isso), a API retornará o identificador da conta existente, permitindo que eu recupere os demais dados e gere o certificado? Ou isso não seria possível?

Nosso objetivo é utilizar a API de cobrança, que requer apenas o client_id e o client_secret. Como muitos clientes já possuem essas credenciais, apenas solicitaríamos essas informações. No entanto, caso fosse necessário mais informações, como código do split, poderíamos obter mais dados tendo o identificador da conta, por isso a pergunta.

# devs
Avatar discord do usuario gabriel_efi

gabriel_efi

Ver Respostas

Olá, @serrrgio.!
As credenciais estão disponíveis para as contas modalidades Efí Pró (CPF) e Efí Empresas (CNPJ), ambas não possuem anuidade.
Caso você esteja utilizando uma conta Efí Para Você basta realizar a atualização pelo menu "Efí para meu negócio".

Após isso, o menu API irá aparecer, por meio dele você pode criar uma aplicação e assim ter acesso às credenciais Client ID e Client Secret dessa atualização.

# devs
Avatar discord do usuario serrrgio.

serrrgio.

Ver Respostas

Olá gente, procurei e não encontrei onde pego as credenciais client_id e client_secret dentro da plataforma da efi

# devs
Avatar discord do usuario znuuxx

znuuxx

Ver Respostas

@jessica_efi , eu vi o curso, segui o passo a passo, modifiquei para pagamento com cartão e quando tento rodar o teste da erro de certificado:

Erro ao processar pagamento: self-signed cer
tificate in certificate chain

const EfiPay = require('sdk-node-apis-efi')

const options = {
clientId: process.env.EFI_CLIENT_SECRET,
clientSecret: process.env.EFI_CLIENT_ID,
sandbox: true,
};

const efi = new EfiPay(options);

async function createCreditCardPayment() {
const body = {
payment: {
credit_card: {
customer: {
name: 'João Silva',
cpf: '94271564656',
birth: '1990-01-01',
phone_number: '5144916523'
},
billing_address: {
street: 'Rua Júpter',
number: '174',
neighborhood: 'Bauxita',
zipcode: '35400000',
city: 'Ouro Preto',
state: 'MG'
},
card: {
number: '4012001038443335',
cvv: '123',
expiration_month: '12',
expiration_year: '2028',
brand: 'visa'
}
}
},
items: [
{
name: 'Produto Teste',
value: 1000,
amount: 1
}
],
shippings: [
{
name: 'Frete Padrão',
value: 100
}
]
};

try {
const response = await efi.createOneStepCharge([], body);
console.log('Resposta da API:', response);
} catch (error) {
console.error('Erro ao processar pagamento:', error.message);
}
}

createCreditCardPayment();

# devs
Avatar discord do usuario znuuxx

znuuxx

Então, eu não alterei nada... como você vê no snippet, só acrescentei meu client_id e o secret... e da erro de certificado

# devs
Avatar discord do usuario jessica_efi

jessica_efi

executando esse exemplo não é necessário o certificado. Você vai informar apenas o client_id e client_secret nesse arquivo