Histórico

EXIBINDO CONVERSAS RECENTES:

Texto: efi pix erro
# pix
Avatar discord do usuario kaykyramos

kaykyramos

Ver no Discord

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)
}
}
}

# devs
Avatar discord do usuario nicolasvascaafobado

nicolasvascaafobado

Ver RespostasVer no Discord

Uma duvida no ambiente de sandbox para o a rota: https://pix-h.api.efipay.com.br/v2/gn/pix/:idEnvio

tem algum cpf que posso colocar que ele entende como valido da conta?

{
"valor": "5.00",
"pagador": {
"chave": "50925568000191",
"infoPagador": "Segue o pagamento da conta"
},
"favorecido": {
"chave": "[email protected]",
"cpf": "58629188090"
}
}

exemplo:
do erro enviado:

{
"nome": "chave_nao_pertence_ao_documento",
"mensagem": "O cpf do favorecido é diferente do documento em posse da chave"
}

# pix
Avatar discord do usuario allgood.eth

allgood.eth

Ver RespostasVer no Discord

Ola, Estou testando a plataforma do EFI mas estou com alguns problemas

Estou tentando criar uma chave pix no meu servidor de homologaçao usando o endpoint

POST /v2/gn/evp

porem estou recebendo o seguinte erro:

data: {
nome: 'erro_aplicacao',
mensagem: 'Ocorreu um erro ao solicitar a criação da chave'
}


http 500

O ambiente de homologaçao esta funcionando corretamente??

ps: estou conseguindo obter o acess_token e criar cobranca PUT /v2/cob/:txid em homologacao.

# pix
Avatar discord do usuario carlossulzer

carlossulzer

Ver RespostasVer no Discord

Boa noite. Como faço para consultar um pix gerado para saber se foi pago ou não em .net core. Vi alguns exemplos mas utiliza E2EID e não tenho essa informação. Isso funciona em homologação ou só em produção?

dynamic efi = new EfiPay(JObject.Parse(File.ReadAllText("credentials.json")));

var param = new
{
e2eId = ""
};

try
{
var response = efi.PixDetailReceived(param);
Console.WriteLine(response);
}
catch (EfiException e)
{
Console.WriteLine(e.ErrorType);
Console.WriteLine(e.Message);
}

# pix
Avatar discord do usuario ronaldo_pertec

ronaldo_pertec

Ver RespostasVer no Discord

processing: https://pix.api.efipay.com.br/oauth/token
Trying 52.5.41.74:443...
Connected to pix.api.efipay.com.br (52.5.41.74) port 443
CAfile: none
CApath: none
ALPN: offers http/1.1
NSS: client certificate from file
subject: C=BR,CN=301970
start date: May 02 14:50:05 2024 GMT
expire date: May 02 14:50:05 2027 GMT
common name: 301970
issuer: [email protected],CN=apis.efipay.com.br,OU=Infraestrutura,O=Efi S.A. - Instituicao de Pagamento,ST=Minas Gerais,C=BR
NSS error -8191 (SEC_ERROR_LIBRARY_FAILURE)
security library failure.
Closing connection

# pix
Avatar discord do usuario ronaldo_pertec

ronaldo_pertec

Ver no Discord

processing: https://pix.api.efipay.com.br/oauth/token
Trying 52.5.41.74:443...
Connected to pix.api.efipay.com.br (52.5.41.74) port 443
CAfile: none
CApath: none
ALPN: offers http/1.1
NSS: client certificate from file
subject: C=BR,CN=301970
start date: May 02 14:50:05 2024 GMT
expire date: May 02 14:50:05 2027 GMT
common name: 301970
issuer: [email protected],CN=apis.efipay.com.br,OU=Infraestrutura,O=Efi S.A. - Instituicao de Pagamento,ST=Minas Gerais,C=BR
NSS error -8191 (SEC_ERROR_LIBRARY_FAILURE)
security library failure.
Closing connection

# dúvidas
Avatar discord do usuario davidgaleno

davidgaleno

Ver RespostasVer no Discord

Alguém sabe me dizer qual permissão preciso na aplicação para gerar um qrcode?
Estou recebendo esse erro na função efi.pix_generate_qrcode()
{'error': 'insufficient_scope', 'error_description': 'Access token has insufficient scope'}

# devs
Avatar discord do usuario nicolasvascaafobado

nicolasvascaafobado

Ver RespostasVer no Discord

Toda vez que utilizo a rota:
https://pix-h.api.efipay.com.br/v2/pix/:e2eid/devolucao/:id
body:
{
"valor": "5.5"
}

pelo postman ou por minha api recebo:

{
"nome": "json_invalido",
"mensagem": "Valores ou tipos de campo inválidos",
"erros": [
{
"chave": "pattern",
"caminho": ".body.valor",
"mensagem": "deve corresponder ao padrão \"^[0-9]{1,10}\\.[0-9]{2}$\""
}
]
}

# pix
Avatar discord do usuario thiagorobles

thiagorobles

Ver RespostasVer no Discord

fiz a alteração abaixo, adicionei o cert e a key que baixei no momento da criação da aplicação

private instance = axios.create({
httpsAgent: new https.Agent({
cert: Buffer.from(process.env.EFI_CERT, 'base64'),
key: Buffer.from(process.env.EFI_KEY, 'base64'),
ca: Buffer.from(process.env.CHAIN_PIX_PROD_CRT_BASE64, 'base64'),
requestCert: true,
rejectUnauthorized: true,
}),
headers: {
'x-skip-mtls-checking': true,
},
});

Agora o erro que recebo é unable to get local issuer certificate

parece ser algo relacionado ao SSL, porem está configurado corretamente pelo ACM do heroku

essas variaveis de ambiente estao configuradas pelo heroku, fiz o encode para base64, loguei o resultado do Buffer.from, e está logando os certificados corretamente (cert, key e ca)

# pix
Avatar discord do usuario thiagorobles

thiagorobles

Ver RespostasVer no Discord

@rubenskuhl obrigado pelo retorno, eu tentei integrar no meu Controller (uso nestjs) na minha API que está no heroku, aqui está o código:

import {
ClassSerializerInterceptor,
Controller,
HttpCode,
HttpStatus,
Logger,
Post,
Req,
UseInterceptors,
} from '@nestjs/common';
import { LoggerInterceptor } from '@src/common/logger/logger-interceptor';
import configuration from '@src/config/configuration';
import axios from 'axios';
import { Request } from 'express';
import as https from 'https';

const { httpsOptions } = configuration();
@Controller('efi-gerencianet')
@UseInterceptors(ClassSerializerInterceptor, LoggerInterceptor)
export class EfiGerencianetController {
private readonly logger = new Logger(EfiGerencianetController.name);

private instance = axios.create({
httpsAgent: new https.Agent({
ca: httpsOptions.ca,
requestCert: true,
rejectUnauthorized: true,
}),
headers: {
'x-skip-mtls-checking': true,
},
});

@Post('webhook/pix')
@HttpCode(HttpStatus.OK)
handlePixCallback(@Req() req: Request) {
const body = req.body;

this.logger.log(Received callback from Gerencianet);
this.logger.debug(body);
return body;
}

@Post('configure-webhook')
async configureWebhook() {
const url =
'https://api-pix.gerencianet.com.br/v2/webhook/4114c4e9-202c-4979-8534-34a4e5a29ad0';
const data = {
webhookUrl: '',
};

try {
const response = await this.instance.put(url, data);
this.logger.log(
Webhook configured successfully. Status code: ${response.status},
);
return response.data;
} catch (error) {
this.logger.error(Error configuring webhook: ${error.message});
throw new Error(Error configuring webhook: ${error.message});
}
}
}


subi pra produção, e ao chamar o endpoint recebo o erro: Error: Error configuring webhook: read ECONNRESET

Para SSL estou usando o heroku ACM (auto managed).


Sabem o que posso estar fazendo errado?

# pix
Avatar discord do usuario ricardo_oliveira_souza

ricardo_oliveira_souza

Ver RespostasVer no Discord

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.

# pix
Avatar discord do usuario .ilselangnar

.ilselangnar

Ver RespostasVer no Discord

Oi Guilherme:

Estou com um problema com o webhook

Consigo listar os webhooks configurados sem problema.

O problema vem quando quero configurar um novo webhook para receber notificações de pagamento

Aqui esta meu codigo:


const efipay = new EfiPay(options)

async function api_configure_webhook_efipay( req, res, next ) {

let body = {
webhookUrl: 'https://origami.ink/webhook_paymentefipay',
}

let params = {
chave: '8712f01e-e8e6-4eab-a636-ddc8e13fe8b7',
}

try {
let object_result = await efipay.pixConfigWebhook(params, body)
printf( "[configure_webhook] -> object_result -> ", object_result )
res.json( object_result )
} catch( e ) {
// throw e
res.json( e )
}

}

module.exports = api_configure_webhook_efipay


Aqui esta o erro:

{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ECONNRESET"
}

# pix
Avatar discord do usuario .ilselangnar

.ilselangnar

Ver no Discord

Estou com um problema com o webhook

Consigo listar os webhooks configurados sem problema.

O problema vem quando quero configurar um novo webhook para receber notificações de pagamento

Aqui esta meu codigo:


const efipay = new EfiPay(options)

async function api_configure_webhook_efipay( req, res, next ) {

let body = {
webhookUrl: 'https://origami.ink/webhook_paymentefipay',
}

let params = {
chave: '8712f01e-e8e6-4eab-a636-ddc8e13fe8b7',
}

try {
let object_result = await efipay.pixConfigWebhook(params, body)
printf( "[configure_webhook] -> object_result -> ", object_result )
res.json( object_result )
} catch( e ) {
// throw e
res.json( e )
}

}

module.exports = api_configure_webhook_efipay


Aqui esta o erro:

{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ECONNRESET"
}

# pix
Avatar discord do usuario .ilselangnar

.ilselangnar

Ver no Discord

Boa Tarde

Estou tendo dificuldades para gerar um link de pagamento pix

Eu somente preciso gerar um pix de um certo valor e depois ourvir o webhook e fazer uma ação

Aqui esta meu codigo:


let body = {
calendario: {
expiracao: 3600,
},
devedor: {
cpf: '94271564656',
nome: 'Gorbadock Oldbuck',
},
valor: {
original: float_amount.toString(),
},
chave: '14.359.846/0001-27', // Informe sua chave Pix cadastrada na efipay. //o campo abaixo é opcional
infoAdicionais: [
{
nome: 'Pagamento em',
valor: 'StartPro Treinamentos',
},
{
nome: string_name,
valor: float_amount,
},
],
}

let params = {
txid: 'dt9BHlyzrb5jrFNAdfEDVpHgiOmDbVq111',
}

const efipay = new EfiPay(options)

try {
let object_result = efipay.pixCreateCharge(params, body)
return object_result
} catch( e ) {
throw e
}



Aqui esta o error que ele me da

"erros": [
{
"chave": "pattern",
"caminho": ".body.valor.original",
"mensagem": "deve corresponder ao padrão \"^[0-9]{1,10}\\.[0-9]{2}$\""
}
]

o "body.valor.original" é "10"

se eu colocar um 10 como number ele me informa que ele precisa ser um texto, por isso deixei ".toString()"

Eu basicamente estou tentanto fazer uma API na qual a pessoa escolhe o valor que quer gerar um pix e o nome do produto, a API deve retornar o codigo pix copia e cola para a pessoa pagar.

No mercado livre você so coloca o endpoint do seu servidor para onde a notificação POST dever ser enviada, como faço isso no efipay?