Histórico de mensagens sobre js em pix

EXIBINDO CONVERSAS RECENTES:

Texto: js
Canal: pix
Avatar discord do usuario j.alvares_07469

j.alvares_07469

Boa tarde
Estou homologando a cobrança imediata (com txid), já consigo obter o token da efiBAnk.
Porém quando enviando .json de cob/:txid, homologação, retorna um response com .json vazio. alguem pode ajudar na efiBAnk.
O script em php. Não uso o SDK.

Avatar discord do usuario leandro_24465

leandro_24465

Ver Respostas

esse meu código deu o seguinte erro "Erro durante o processamento: HTTPSConnectionPool(host='pix-h.api.efipay.com.br', port=443): Max retries exceeded with url: /oauth/token (Caused by SSLError(SSLError(524297, '[SSL] PEM lib (_ssl.c:3845)')))" alguem como resolver isso?

import json
from efipay import EfiPay

# Carrega as credenciais do arquivo JSON
with open('C:\\Users\\LANAS\\OneDrive\\Documents\\Nova pasta\\venv\\Scripts\\credentials.json') as file:
options = json.load(file)

# Dados da cobrança
body = {
"calendario": {
"expiracao": 3600 # Tempo para expirar em segundos
},
"devedor": {
"cpf": "12345678909", # CPF do pagador
"nome": "Nome do Cliente"
},
"valor": {
"original": "0.01" # Valor do pagamento
},
"chave": "46aadfb3-50d6-4fa4-ae00-e6b8813b0dbe", # Chave Pix da conta Efí do recebedor
"infoAdicionais": [
{
"nome": "Produto/Serviço",
"valor": "Descrição do produto/serviço"
}
]
}

try:
# Instancia a API com as credenciais carregadas
api = EfiPay(options)

# Cria a cobrança Pix imediata
pix = api.pix_create_immediate_charge(params={}, body=body)

if 'txid' in pix:
# Se a cobrança foi criada com sucesso, gera o QR Code
params = {
'id': pix['loc']['id']
}
qrcode = api.pix_generate_qr_code(params)

# Exibe os dados do Pix e do QR Code no console
print("Cobrança Pix criada com sucesso!")
print("TXID:", pix['txid'])
print("QR Code gerado:", qrcode['imagemQrcode'])
print("Código Pix (copia e cola):", qrcode['qrcode'])

else:
print("Erro ao criar a cobrança Pix:", pix)

except Exception as e:
# Trata qualquer outro erro de forma genérica
print(f"Erro durante o processamento: {str(e)}")


Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Ah, sim. Não se preocupe com essa propriedade "Token", ela é preenchida automaticamente pela SDK durante a autenticação. Você só precisa preencher as informações que estão no arquivo credentials.json.

Avatar discord do usuario _.merce

_.merce

Ver Respostas

@guilherme_efi, boa tarde.
No projeto de exemplo C# da EFi na classe PixSend.cs,
Na linha:
dynamic efi = new EfiPay(JObject.Parse(File.ReadAllText("credentials.json")));

O token já vem preenchido, sendo que no credentials.json só temos o client_id, secret, sandbox e certificate.

Sabe me informar em qual momento/classe esse token é obtido?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Oi, @daniel.d3v. Bom dia!
Existem algumas diferenças no JSON enviado em uma transação de Pix recebido e Pix enviado.

Primeiro, como o Rubens mencionou, você pode usar uma chave Pix para recebimento e outra para envio, usando o mesmo webhook URL. Dessa forma, ao receber a notificação, você já pode diferenciar pela chave.

Outro ponto que pode verificar é que o JSON de Pix enviado possui o parâmetro "tipo": "SOLICITACAO", além disso, tem também o parâmetro gnExtras>idEnvio.

Veja em nossa documentação alguns exemplos de JSON: https://dev.efipay.com.br/docs/api-pix/webhooks#requisi%C3%A7%C3%A3o

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @eu_jonas. Tudo bem?
Existem algumas alterações a serem feitas no seu código, primeiramente você deve autenticar na API antes de consumir outra rota para obter o token de autenticação. Sugiro que dê uma olhada nas etapas que são realizadas em nosso SDK, você pode conferir o código aqui.

Caso tenha alguma dúvida basta nos perguntar para que possamos lhe auxiliar da maneira mais assertiva possível.

Avatar discord do usuario eu_jonas

eu_jonas

Ver Respostas

TS
const rawResult = await axios({
url: https://pix-h.api.efipay.com.br/v2/cob/${txid},
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
auth: {
username: process.env.EFI_CLIENT_ID,
password: process.env.EFI_CLIENT_SECRET
},
httpsAgent: agent,
data: body
})

Avatar discord do usuario luizcubas

luizcubas

Ver Respostas

Bom dia equipe Efi, espero que estejam bem. Por gentileza, estou utilizando a SDK de vocês para NodeJS e estou com uma dúvida, nas opções de inicialização do EfyPay, eu posso passar diretamente o certificado em Base64 através de uma variável de ambiente ou é obrigatório o uso de um arquivo?

Exemplo da documentação:

module.exports = {
sandbox: true,
client_id: 'seuClientId',
client_secret: 'seuClientSecret',
certificate: 'caminho/Ate/O/Certificado/Pix',
cert_base64: false, // Indica se o certificado está em base64 ou não
}

Como pretendo utilizar:

const options = {
sandbox: true,
client_id: process.env.EFIAPI_CLIENTID || "",
client_secret: process.env.EFIAPI_CLIENTSECRET || "",
certificate: process.env.EFIAPI_CERT,
cert_base64: true,
}
A ideia é que a variável de ambiente EFIAPI_CERT contenha diretamente o valor do certificado em BASE64, dessa forma evito ter que subir o arquivo para o servidor, seria possível?

Avatar discord do usuario leandroberg

leandroberg

Ver Respostas

Bom dia 😎 estou tentando configurar um split de pagamento porém estou tendo falha no retorno dizendo que meu JSON está inválido (Valores ou tipos de campo inválidos). Veja retorno:

{
"chave": "additionalProperties",
"caminho": ".body",
"mensagem": "não são permitidas propriedades adicionais"
}

Poderiam me ajudar? Segue anexo screenshot da minha chamada utilizando o SDK PHP da EFI atravez da cobrança imediata via PIX. Bem basicamente o que eu preciso no momento é reter 1% da transação em minha conta e enviar 99% para conta do cliente.
imagem enviada na mensagem pelo usuario leandroberg

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @danilops90! Tudo bem?
O correto é utilizar a estrutura do json conforme especificado em nossa documentação.

Avatar discord do usuario danilops90

danilops90

Ver Respostas

Boa tarde, eu já utilizo o EFÍ em minha empresa e gostaria de saber desde que dia vocês estão validando em camelCase os atributos enviados via JSON? Pois na nossa implantação aceitava dessa primeira forma;

Forma que eu estava enviando (dava certo) e agora da o erro de atributos:

{
"Valor": "12.34",
"Pagador": {
"Chave": "19974764017"
},
"Favorecido": {
"Chave": "joã[email protected]"
}
}


o certo:

{
"valor": "12.34",
"pagador": {
"chave": "19974764017"
},
"favorecido": {
"chave": "joã[email protected]"
}
}

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @tanzin7! Tudo bem?

Sim, você pode ativar o recebimento do nome e CPF mascarado do pagador. Para isso, basta usar o endpoint PUT /v2/gn/config (Criar/modificar configurações da conta) e incluir o atributo recebimento>webhook>notificacao>pagador: true.

Com essa configuração ativa, o seu sistema vai receber uma notificação parecida com esta:

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",
"gnExtras": {
"pagador": {
"nome": "GORBADOCK OLDBUCK",
"cpf": ".123.456-",
"codigoBanco":"00416968"
}
}
}
]

Para mais exemplos de notificações, você pode conferir na nossa documentação técnica.

Avatar discord do usuario daviroquedev

daviroquedev

Ver Respostas

conseguiu resolver o seu? acho que é o mesmo problema q o meu..aqui tb esta igual o exemplo e quebra no JSONObject response = efi.call(

Avatar discord do usuario he128

he128

Eu criei o servidor webhook com certificado configurado no virtual host do apache e o arquivo php no diretório e subdomínio apontado, quando gerar um pix aonde coloco a url de retorno dentro do json ou como cadastro a url do webhook, no mercadopago cada transação que faço informo a url de retorno em cada transação pix, só funciona via SDK ou posso fazer tudo com CURL ?

Avatar discord do usuario jaxx3_

jaxx3_

Ver Respostas

Bom dia. Estou integrando o sdk java em meu sistema, e quando chamo o endpoint "pixUpdateCharge" , como nesse exemplo: https://github.com/efipay/sdk-java-examples-apis-efi/blob/main/src/main/java/br/com/efi/pix/cob/json/PixUpdateCharge.java
sempre me retorna a exception "Recurso não encontrado" br.com.efi.efisdk.exceptions.EfiPayException: Error: Recurso não encontrado. Esse exemplo do github está certou ou desatualizado? faço exatamente igual a ele, passando uma txid válida e sempre dá isso

Avatar discord do usuario boblee_sw

boblee_sw

Ver Respostas

Opa pessoal bom dia,
Eu estou passando por uma situação aqui, quero testar uma aplicação, no entanto, ela esta sempre retornando o erro 404 - null. Isso foi o que eu tenho feito:
- gerei token de homologação
- habilitei todos os campos da área pix na parte de homologação
- criei uma chave aleatória
Estava solicitando uma requisição de listagem de chaves, coloquei:
url: https://pix-h.api.efipay.com.br/v2/gn/evp
método: get
Headers:
- Authorization: Bearer [Token]
- Content-Type: application/json

esta faltando mais alguma coisa? não sou programador kk..

Avatar discord do usuario j34nm4rc0nd35_54662

j34nm4rc0nd35_54662

Aparentimente passou, agora tenho outro erro de schema, mas estou usando o payload da Doc Efi

json
{
"type": "https://pix.bcb.gov.br/api/v2/error/LoteCobVOperacaoInvalida",
"title": "Operação Inválida",
"status": 400,
"detail": "A requisição que busca alterar ou criar um lote de cobranças com vencimento não respeita o schema ou está semanticamente errada.",
"violacoes": [
{
"razao": "O campo loteCobV.params.id não respeita o schema.",
"propriedade": "loteCobV.params.id"
}
]
}

Avatar discord do usuario j34nm4rc0nd35_54662

j34nm4rc0nd35_54662

Boa tarde, estou com uma dificudade em criar pgtos por lote
Doc Efi

PUT /v2/lotecobv/:id
Requer autorização para o escopo: lotecobv.read

Minha request auth
"scope": "cob.write gn.settings.read gn.settings.write lotecobv.read"

Meu response ao tentar criar um lote de pgtos
json
{
"error": "insufficient_scope",
"error_description": "Access token has insufficient scope"
}
Onde estou errado?

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@daviqsh sugerimos que você utilize nosso SDK que já contem os processos de montagem das requisições prontos e abstraidos, onde só é preciso chamar o método desejado. Você pode encontrar nosso SDK de Node nosso Github ou no próprio NPM.

Caso tenha alguma dúvida basta nos perguntar para que possamos lhe auxiliar da maneira mais assertiva possível.

Avatar discord do usuario daviqsh

daviqsh

Ver Respostas

//Desenvolvido pela Consultoria Técnica da Efí

"use strict";
const https = require("https");
var axios = require("axios");
var fs = require("fs");

//Insira o caminho de seu certificado .p12 dentro de seu projeto
var certificado = fs.readFileSync("./certs/SorteioCabelo_hml_cert.pem");

//Insira os valores de suas credenciais em desenvolvimento do pix
var credenciais = {
client_id: process.env.CLIENT_ID_HML,
client_secret: process.env.CLIENT_SECRET_HML,
};


var data = JSON.stringify({ grant_type: "client_credentials" });
var data_credentials = credenciais.client_id + ":" + credenciais.client_secret;

// Codificando as credenciais em base64
var auth = Buffer.from(data_credentials).toString("base64");

const agent = new https.Agent({
cert: certificado,
passphrase: '',
});

//Consumo em desenvolvimento da rota post oauth/token
const config = {
method: "POST",
url: "https://pix-h.api.efipay.com.br/oauth/token",
headers: {
Authorization: "Basic " + auth,
"Content-Type": "application/json"
},
httpsAgent: agent,
data: data,
};

axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});