isso pra criação de pagamentos, caso você tiver usando o send de pix os ids são fixos não da pra você criar eles
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í
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)
}
}
}
@rian2965, atualmente não está sendo listado mesmo os registros de notificações no painel da aplicação. Neste caso, sugiro verificar nos logs do seu servidor HTTP.
Você registrou uma webhhok URL no endpoint [PUT /v2/webhook/:chave](https://dev.efipay.com.br/docs/api-pix/webhooks#configurar-o-webhook-pix)?
mas parece que o pagseguro está sendo mais vantajoso para o uso de api de envio pix.
Bom dia, estou fazendo testes com a api pix de vocês, mas como para ela funcionar, com as principais funcionalidas é necessário usa-la em produção, estou gerando transações reais.
Fiz uma consulta a situação do pix usando a chamada pixDetailCharge passando como parâmetro txid, observe que ao chamar esta função os dados são retornados e o pix esta com a situação ATIVA:
Coloquei alguns XXXXX no meio para mascarar os dados, apesar de ser fornecido o TXID
TXID - 66afcfc1dafe41bdb6a59dd565a09479
Response = {"devedor":{"cpf":"XXXXXXXXX","nome":"XXXXXXXXXXXX"},"loc":{"location":"qrcodespix.sejaefi.com.br/v2/c90653b52bb34c8dbd5584313a499103","id":31,"criacao":"2024-03-20T04:42:09.000Z","tipoCob":"cob"},"pixCopiaECola":"00020101021226830014BR.GOV.BCB.PIX2561qrcodespix.sejaefi.com.br/v2/c90653b52bb34c8dbdXXXXXXXXXXXXXXX65802BR5905EFISA6008SAOPAULO6207050363042BC5","valor":{"original":"96.90"},"chave":"1cbXXXXXXX-810f-4967-b302-7d94425c49f5","calendario":{"expiracao":7776000,"criacao":"2024-03-20T04:42:09.000Z"},"txid":"66afcfc1dafe41bdb6a59dd565a09479","location":"qrcodespix.sejaefi.com.br/v2/c90653b5XXXXXXXXXX313a499103","revisao":0,"solicitacaoPagador":"Pagamento Adesão\n2 ou mais filhos","status":"ATIVA"}
Veja que com o mesmo TXID fiz a chamada a pixUpdadeDueCharge e esta retorna que o pix não existe:
TXID - 66afcfc1dafe41bdb6a59dd565a09479
{"detail":"Cobrança com vencimento não encontrada para o txid informado","type":"https://pix.bcb.gov.br/api/v2/error/CobvNaoEncontrado","title":"Não Encontrado","status":404}
Alguém do suporte da EFI pode dizer o que esta sendo feito de errado para tal pix ser consultado pelo txid ser encontrado e ao tentar cancela-lo não se encontra?
Desde já agradeço.
Bom dia @cfuent.es tudo bem?
Esses retornos significam que sua URL foi registrada com sucesso, não sendo necessário repetir o registro.
Agora sempre que um QrCode gerado por essa conta for pago, nossa API já enviará a confirmação de pagamento para a URL cadastrada.
É importante lembrar que por determinação do Banco Central, nossa API adiciona o /pix ao final da URL cadastrada, sendo assim
- Se você cadastra o webhook com a URL:
Na documentação fala:
Para utilização do endpoint de Requisitar envio de Pix, além da liberação do escopo pix.send é necessário que a chave Pix do pagador tenha um webhook associado a ela. Por meio do webhook a Efí irá informar a você se o envio do Pix foi realizado com sucesso ou não.
Mas n recebo nesse webhook a resposta. Vou confirmar novamente.
A Base URL para a configuração de split e para setar a configuração em uma transação continua sendo (https://api-pix.gerencianet.com.br) ?
Tentei utilizar a https://pix.api.efipay.com.br e os endpoints /v2/gn/split/config e /v2/gn/split/cob/:txid/vinculo/:split_id não funcionam.
app.post('/pixDevolution', async (req, res) => {
const { valor, txid, id } = req.body;
const payment = await Payment.findOne({ where: { txid:txid} })
const order = await Orders.findOne({ where: { txid:txid} })
let body = {
valor: valor,
}
let params = {
e2eId: payment.endToEndId,
id: new Date().getTime(),
}
if(order.pagamento !== 'realizado'){
res.status(400).send('Pedido Não está Pago!')
}
await gerencianet.pixDevolution(params, body)
.then((resposta) => {
console.log(resposta)
})
.catch((error) => {
console.log(error)
})
await Orders.update({
pagamento: "reembolso_solicitado"
}, {
where: {
id: id
}
});
res.status(200).send('Gerou o Reembolso');
});
Boa tarde, como consigo pegar uma flag que o pagamento do pix foi realizado, pois preciso disso para chamar uma função após o pagamento. Minha aplicação já está rodando em produção e o pix está tudo certo.
Aqui esta a rota de pagamento.
router.post("/payment", async (req: Request, res: Response) => {
const reqGN = await reqGNAlready;
const dataCob = {
calendario: {
expiracao: 3600,
},
valor: {
original: "0.10", //req.body.value,
},
chave: "b801ed6a-27ba-4927-a952-d44e2c8ab9cc",
solicitacaoPagador: "Informe o número ou identificador do pedido.",
};
const cobResponse = await reqGN.post("/v2/cob", dataCob);
const qrcodeResponse = await reqGN.get(
/v2/loc/${cobResponse.data.loc.id}/qrcode
);
res.send(qrcodeResponse.data);
});
Aqui está a do webhook:
router.post("/webhook(/pix)?", (req: Request, res: Response) => {
if (req.secure){
var body = req.body;
const filePath = __dirname + "/data.json";
fs.appendFile(filePath, JSON.stringify(body) + "\n", function (err) {
if (err) {
console.log(err);
} else {
res.status(200).end();
}
})
res.status(200).end();
}else{
res.status(401).end();
}
});
@tarcizio5821 você pode informar o txid no momento da emissão também no COB através do seguinte endpoint, https://dev.efipay.com.br/docs/api-pix/cobrancas-imediatas#criar-cobran%C3%A7a-imediata-com-txid, sendo o exemplo na SDK de php o https://github.com/efipay/sdk-php-apis-efi/blob/main/examples/pix/cob/pixCreateCharge.php.
Boa tarde, estou usando o sdk java para testar o envio de pix, mas o endpoint pixSend está retornando o seguinte erro: java.lang.IllegalStateException: Already connected
Alguém sabe o motivo?
Minha aplicação tem o escopo para o envio de pix como mostrado no print!
Olá estou com dificuldade no retorno de um webhook,consegui cadastrar com sucesso o webhook, configurei o proxy_pass do nginx para o retorno correto "dominio/webhook(/pix)?" sendo que sempre que utilizo o dominio retorna um código 403 Forbiden, porém nos logs quando eu efetuo o pagamento constam as informações do pix realizado, me ajudem a ter o retorno correto diretamente no meu webhook cadastrado.