Histórico de mensagens sobre Pix

EXIBINDO CONVERSAS RECENTES:

Texto: Pix
Data: 24/05/2024
# pix
Avatar discord do usuario walissonhmsouza

walissonhmsouza

pessoal, boa tarde
a efi existe webhook de confirmação de pagamento por pix?

# pix
Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

Ver Respostas

Olá, preciso de um atendimento sobre pix, alguém pode iniciar por gentileza? Havia chamado o @guilherme_efi, mas não obtive retorno @Consultoria Técnica

# pix
Avatar discord do usuario ronierys2

ronierys2

Ver Respostas

achei o problema!

para requisições cob: criar, consultar, cancelar e pix: consultar estou fazendo assim e esta funcionando: ContentType := 'application/json; application/x-www-form-urlencoded; charset=UTF-8;';

para o solicitação de devolução de pix so funcionou assim: ContentType := 'application/json';

# devs
Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

to passando as infos do header por interceptors

ts
efiPixApiHomolog.interceptors.request.use(async (config) => {
const auth = await getPixAuthorization();

config.headers.Authorization = Bearer ${auth.access_token};
config.httpsAgent = agent;

return config;
});

# devs
Avatar discord do usuario jonadabir

jonadabir

hostname: 'pix-h.api.efipay.com.br',
port: '',
agent: undefined,

# devs
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@jonadabir há uma falha na forma com que você está montando a requisição.

Ela deve ser da seguinte forma:

js
const certificatePath = path.join(
__dirname,
'../../../certificates/pix_certificate.p12',
);

const certificate = fs.readFileSync(certificatePath);

const getPixAuthorization = async () => {
const agent = new https.Agent({
pfx: certificate,
passphrase: '',
});

let authParams = {
method: 'POST',
url: 'https://pix-h.api.efipay.com.br/oauth/token',
data: {
grant_type: 'client_credentials',
},
httpsAgent: agent,
};
let token = Buffer.from(credentials.client_id + ':' + credentials.client_secret).toString('base64')
authParams.headers['Authorization'] = 'Basic ' + token
authParams.headers['Content-Type'] = 'application/json'
const authRes = await axios(authParams);

return authRes.data;
};

# devs
Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

entao, mas eu estou mandando o certificado nessa requisiçao, é a unica que estou fazendo de pix

# devs
Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

estou tentando fazer a req de obter autorização PIX porem estou recebendo o seguinte erro:

ts
cause: Error: socket hang up
at TLSSocket.socketOnEnd (node:_http_client:524:23)
at TLSSocket.emit (node:events:531:35)
at endReadableNT (node:internal/streams/readable:1696:12)
at processTicksAndRejections (node:internal/process/task_queues:82:21) {
code: 'ECONNRESET'
}
Meu código:
ts
const certificatePath = path.join(
__dirname,
'../../../certificates/pix_certificate.p12',
);

const certificate = fs.readFileSync(certificatePath);

const getPixAuthorization = async () => {
const agent = new https.Agent({
pfx: certificate,
passphrase: '',
});

const authParams = {
method: 'POST',
url: 'https://pix-h.api.efipay.com.br/oauth/token',
auth: {
username: credentials.client_id,
password: credentials.client_secret,
},
data: {
grant_type: 'client_credentials',
},
httpsAgent: agent,
};

const authRes = await axios(authParams);

return authRes.data;
};

# cartões
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

As transações de cartão tem um outro mecanismo de notificação, aonde há um webhook para cada transação, diferente do Pix que é um webhook por chave Pix. Mas tem sim notificação.

# dúvidas
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Gera sim, ao criar retorna o campo pixCopiaECola você pode transformar ele em QrCode.

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

A requisição não esta enviado os campos corretos, um exemplo de envio seria esse aqui:

py

# encoding: utf-8

from efipay import EfiPay
from ...credentials import credentials

efi = EfiPay(credentials.CREDENTIALS)


params = {
'idEnvio': 1
}

body = {
'valor': '0.01',
'pagador': {
'chave': '' # Sua chave aqui
},
'favorecido': {
'chave': '' # Chave de quem vai receber aqui
}
}

response = efi.pix_send(params=params, body=body)
print(response)

Também informamos que é para habilitar o endpoint de Envio de Pix em produção, é necessário preencher este formulário. Após o preenchimento, basta aguardar que entraremos em contato.

# dúvidas
Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

o pix cobrança imediata gera um QrCode?

# pix
Avatar discord do usuario diogojunior.

diogojunior.

def enviar_pagamento_pix(chave_pix, valor):
try:
efi = EfiPay(credentials)

# Corpo da requisição para enviar um pagamento PIX
body = {
'valor': {
'original': valor # Valor da transferência
},
'chave': chave_pix, # Chave PIX do destinatário
'infoPagador': 'Pagamento pelos serviços prestados.' # Informação adicional
}

# Tentando diferentes métodos para enviar o pagamento PIX
response = None
if hasattr(efi, 'pix_send_payment'):
response = efi.pix_send_payment(body=body)
elif hasattr(efi, 'pix_transfer'):
response = efi.pix_transfer(body=body)
else:
raise AttributeError("Nenhum método encontrado para enviar pagamento PIX.")

print("Resposta da API:", response)

except Exception as e:
print(f"Erro ao enviar pagamento PIX: {e}")
sys.exit(1)

if __name__ == "__main__":
chave_pix, valor = obter_dados_usuario()
enviar_pagamento_pix(chave_pix, valor)

# pix
Avatar discord do usuario diogojunior.

diogojunior.

# encoding: utf-8

from efipay import EfiPay
import sys

# Configurações de credenciais
credentials = {
'client_id': '',
'client_secret': '',
'sandbox': False, # Altere para True se estiver usando o ambiente de sandbox
'certificate': r''
}

def obter_dados_usuario():
try:
chave_pix = input("Informe a chave PIX do destinatário: ")
valor = input("Informe o valor da transferência: ")

# Verificando se os valores informados são válidos
if not chave_pix:
raise ValueError("A chave PIX não pode ser vazia.")

# Substituir vírgula por ponto e converter para float
valor_float = float(valor.replace(',', '.'))

if valor_float <= 0:
raise ValueError("O valor deve ser um número positivo.")

return chave_pix, "{:.2f}".format(valor_float)
except ValueError as ve:
print(f"Erro de validação: {ve}")
sys.exit(1)

# cartões
Avatar discord do usuario edufaria7

edufaria7

Ver Respostas

Bom dia, as notificações webhook são somente para pix ou informam também o status de cobrança por cartão?

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

This is correct, but in this case the credentials that you use are not from the account that own the self.EFI_FT_PIX_KEY.

# pix
Avatar discord do usuario andrii1303

andrii1303

Ver Respostas

body = {
"valor": f"{payment.ticket.price_seller_formatted}.00",
"pagador": {
"chave": self.EFI_FT_PIX_KEY,
},
"favorecido": {
"chave": payment.ticket.seller.efi_key,
},
}

Is it not correct request?
pagador = from
favorecido = to

# dúvidas
Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

Bom dia! O campo de valor para uma cobrança pix tem que ser em centavos ou o valor em real?

# pix
Avatar discord do usuario ronierys2

ronierys2

{
"nome": "json_invalido",
"mensagem": "Valores ou tipos de campo inv?lidos",
"erros": [
{
"chave": "required",
"caminho": "",
"mensagem": "deve ter a propriedade obrigat?ria body"
}
]
}

ao solicitar uma devolução pix estou recebendo esse erro!
podem me dizer do que se trata ?