Histórico de mensagens sobre chave pix em pix

EXIBINDO CONVERSAS RECENTES:

Texto: chave pix
Canal: pix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @mesenga.! Tudo bem?
O status não é enviado na notificação. Segue o json de uma notificação de pagamento:

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"
}
]
}
A notificação é enviada somente quando o pagamento é confirmado.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Na verdade você nem passa o link do webhook na criação da Cobrança... você já criou anteriormente o link de webhook para aquela chave Pix, e aí toda cobrança com aquela chave como recebedora aciona o webhook.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @lostbean79. Como vai?
Como mencionado pelo Rubens, a Efí disponibiliza o endpoint de envio de Pix via API, que lhe permite a transferência de valores para determinada chave Pix e ou conta bancária. O endpoint que você precisa usar é PUT /v2/gn/pix/:idEnvio, onde :idEnvio é o Identificador da transação criado por seu sistema seguindo a regex ^[a-zA-Z0-9]{1,35}$.

Pontuando que, para enviar Pix em produção, é necessário preencher este formulário.

Em homologação, você pode realizar testes seguindo as intruções detalhadas em nossa documentação técnica.

Qualquer dúvida, conte com a gente!

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se é para fazer transferência Pix, tem sim. Você passa a chave do Pix do destinatário, em qualquer instituição do arranjo Pix, e dinheiro vai para ela.
Mas não tem pagamento de QR-Code Pix, por exemplo.

Avatar discord do usuario hernanefron

hernanefron

Ver Respostas

pessoal, estamos com um problema pra puxar extrato pela API PIX

requisicao do extrato

url = "https://pix.api.efipay.com.br/v2/gn/relatorios/extrato-conciliacao"
body = {
'dataMovimento': '2022-04-24',
'tipoRegistros': {
'pixRecebido': True,
'pixDevolucaoEnviada': False,
'tarifaPixRecebido': True,
'pixEnviadoChave': True,
'pixEnviadoDadosBancarios': False,
'pixDevolucaoRecebida': True
}
}
extrato = requests.request("POST",
url,
headers=headers,
data=body,
cert=certificado)
extrato.text

{"type":"https://pix.bcb.gov.br/api/v2/error/ExtratoConciliacaoOperacaoInvalida","title":"Operação Inválida","status":400,"detail":"A requisição que busca alterar ou criar um extrato de conciliação não respeita o schema ou está semanticamente errada.","violacoes":[{"razao":"deve ter a propriedade obrigatória dataMovimento","propriedade":"extrato-conciliacao"}]}


alguem pode nos ajudar a entender o que está errado?

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.

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)

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)

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

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 ?

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @pedrohp7! Tudo bem?
Não existe pergunta básica; todas as perguntas são sempre bem-vindas! 😀
Na nossa API Pix, você encontrará um endpoint para solicitar o envio de transferências Pix (usando chave Pix ou dados bancários): https://dev.efipay.com.br/docs/api-pix/gestao-de-pix#requisitar-envio-de-pix.
Atualmente, não é possível agendar essas transferências via API. No entanto, você pode realizar o agendamento do seu lado e utilizar o endpoint no momento em que desejar efetuar a transferência dos valores.

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @raphas9! Tudo bem?

Sim, ao consultar uma cobrança via API, o status da cobrança é retornado. Quando a cobrança está paga, o status retornado é "CONCLUÍDA".
Quanto à devolução, as informações sobre ela são retornadas. Em nossa documentação, há um exemplo de JSON retornado quando ocorre uma devolução:

json
{
"status": "CONCLUIDA",
"calendario": {
"criacao": "2020-09-09T20:15:00.358Z",
"expiracao": "3600"
},
"location": "qrcodes-pix.gerencianet.com.br/1dd7f893-a58e-4172-8702-8dc33e21a403",
"txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",
"revisao": 1,
"devedor": {
"cnpj": "12345678000195",
"nome": "Empresa de Serviços SA"
},
"valor": {
"original": "100.00"
},
"chave": "40a0932d-1918-4eee-845d-35a2da1690dc",
"solicitacaoPagador": "Informe o número ou identificador do pedido.",
"pix": [
{
"endToEndId": "E12345678202009091221kkkkkkkkkkk",
"txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",
"valor": "110.00",
"horario": "2020-09-09T20:15:00.358Z",
"infoPagador": "0123456789",
"devolucoes": [
{
"id": "123ABC",
"rtrId": "Dxxxxxxxx202009091221kkkkkkkkkkk",
"valor": "10.00",
"horario": {
"solicitacao": "2020-09-09T20:15:00.358Z"
},
"status": "EM_PROCESSAMENTO"
}
]
}
]
}

Avatar discord do usuario joao_efi

joao_efi

Nós temos o endpoint de envio de Pix onde você informa o valor da transferência, cpf e a chave de destino.
Caso o documento não seja condizente com o titular da chave Pix informada, o endpoint retorna um erro.
Vale ressaltar que o endpoint só é liberado mediante a um aditivo contratual na conta.
https://dev.efipay.com.br/docs/api-pix/gestao-de-pix#requisitar-envio-de-pix

Avatar discord do usuario diogojunior.

diogojunior.

Ver Respostas

tem alguma api que possa fazer algo semelhante ? ou ate mesmo efetuar um pagamento para a chave pix mais as chaves que nao for cadastrada ou encontrada retorna algum erro

Avatar discord do usuario diogojunior.

diogojunior.

Olá pessoal tudo bem. Não tenho cadastro na efi ainda mais gostaria de sabem se alguém consegue me tirar uma dúvida. A efi consegue me disponibilizar api para que eu possa consultar se uma determina chave pix está castrada ou não em algum lugar ?

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Boa tarde @relance_ ! Em produção, você vai gerar da mesma forma, inserir o client_id, client_secret e certificado de produção e a chave Pix. Nossas sdks já têm implementado a autenticação.

Avatar discord do usuario relance_

relance_

Ver Respostas

Olá, estou utilizando o sdk da efipay e estou com uma duvida ao implementar no meu sistema. estou desenvolvendo um script que no cenario atual ele consegue gerar o pix qrcode somente com a client_id, secret_id, certificado e chave pix, a minha duvida é no ambiente de produção tem que fazer algum lógica de autenticação para gerar o qrcode de pix?

Avatar discord do usuario errorzadaa

errorzadaa

caso você seja liberado você pode enviar pra qualquer tipo de chave pix

Avatar discord do usuario errorzadaa

errorzadaa

pix.Send você pode enviar um pix pra qualquer conta(banco) pela chave Pix, o split é quando você recebe um pagamento e pode dividir o valor entre contas do Efí

Avatar discord do usuario kaykyramos

kaykyramos

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

import { Injectable } from '@nestjs/common'

import 'dotenv/config'

@Injectable()
export class PixService {
private efiPay = new EfiPay({
sandbox: false,
client_id: process.env.EFIPAY_CLIENT_ID,
client_secret: process.env.EFIPAY_CLIENT_SECRET,
certificate: './certs/producao-453290-LinkZap-v2.p12',
})

constructor() {
//
}

public async getBalance() {
const { saldo } = await this.efiPay.getAccountBalance()
return Number(saldo)
}

public async payPix(pixCode: string, amount: number) {
const balance = await this.getBalance()
if (balance < amount) {
throw new Error('Saldo insuficiente')
}

try {
const response = await this.efiPay.pixSend(
{ idEnvio: '01' },
{
valor: amount,
pagador: {
chave: 'a4c3dcd3-0005-454e-957f-df416a63c4ed',
},
favorecido: {
chave: pixCode,
},
},
)
return response
} catch (error) {
console.log(error)
}
}
}