No ambiente sandbox, quando eu fizer uma emissão de bolix, eu consigo colocar um valor específico para o sistema enviar uma notificação "paid" algum tempo depois?
No ambiente sandbox, quando eu fizer uma emissão de bolix, eu consigo colocar um valor específico para o sistema enviar uma notificação "paid" algum tempo depois?
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)
}
}
}
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"
}
Bom dia @synctracker ! Basta marcar a opção "Sandbox": https://sejaefi.link/BkeTGQB0GA
Boa tarde @frn.lucas! Não existe nenhuma tarifa cobrada em cima da utilização de nossa API, seja em Produção ou em Homologação. A taxa acontece apenas quando há uma compensação, de um cobrança emitida em produção. Portanto pode utilizar nossos serviços em sandbox tranquilamente, caso já tenha uma conta criada
Olá, é possível acessar o ambiente de sandbox de forma gratuita? Estou criando um sistema do 0 e é estritamente ligado à cobranças pix, pix parcelado, boleto e cartão de crédito
opa, bom dia!
como faço para confirmar uma cob pix gerada no sandbox?
estou testando o envio de webhook, mas não sei como mudar o status da cobrança kk
Boa noite pessoal,
Estou tentando rodar o código de exemplo para pagamento com cartão de crédito, mas estou recebendo Connection Refused. Alguém sabe dizer o que pode ser esse erro? Configurei o credentials.json com as informações pedidas client_id, client_secret, sandbox e timeout.
Alguém sabe informar o que poderia estar faltando para realizar os testes?
Esqueci de trocar o Sandbox
Sim estamos utilizando a SDK do node e sandbox tá false e as credenciais estão conferidas.
Você esta usando alguma SDK?
Alterou a flag sandbox e as credenciais (client_id e client_secret)?
Efi\EfiPay {#348 ▼ // routes/web.php:39
-requester: null
-endpoints: array:5 [▼
"CHARGES" => array:2 [▶]
"PIX" => array:2 [▼
"URL" => array:2 [▼
"production" => "https://pix.api.efipay.com.br"
"sandbox" => "https://pix-h.api.efipay.com.br"
]
"ENDPOINTS" => array:48 [▶]
]
"OPEN-FINANCE" => array:2 [▶]
"PAYMENTS" => array:2 [▶]
"OPENING-ACCOUNTS" => array:2 [▶]
]
-methods: null
-options: array:12 [▼
"sandbox" => true
"debug" => false
"cache" => true
"timeout" => 60
"clientId" => "xxxxxxxxx"
"clientSecret" => "xxxxxxxx"
"partnerToken" => null
"headers" => null
"baseUri" => null
"api" => null
"certificate" => false
"pwdCertificate" => ""
]
}
este é o retorno que estou tendo quando instacio a class EfiPay, acredito que deu certo, mas vou fazer mais testes
Ah legal. Muito Obrigado Guilherme.
No sandbox retorna sempre o pagamento aprovado? Ou preciso enviar algum parâmetro?
Boa tarde.
Qual o número de cartão usado para testes no ambiente sandbox?
Que seja válido para a API.
ja verifiquei se os certificados estão conseguindo ser acessados nesses locais, e estou fazendo as chamadas no o link de sandbox, se eu desabilitar a verificação do certificado consigo cadastrar a chave normalmente, e recebo um webhook avisando que foi cadastrado, mas quando habilito a verificação ele consegue concluir.
Boa tarde, @geovannisc! Tudo bem?
Parece que o certificado utilizado está configurado para o ambiente sandbox, e isso pode causar uma falha 403 ao tentar cadastrar o webhook no ambiente de produção.
Outra possível causa para essa falha pode estar relacionada ao local onde o arquivo está armazenado. Se o caminho do arquivo contém espaços ou caracteres especiais, isso pode estar causando impacto na configuração e resultar na falha mencionada.
Para resolver esses problemas:
1 - Certifique-se de que está utilizando o certificado correto para o ambiente de produção, se aplicável. Verifique se o certificado está configurado corretamente para o ambiente em questão.
2 - Verifique o caminho do arquivo do certificado e certifique-se de que não há espaços ou caracteres especiais que possam causar problemas na configuração. Renomeie o arquivo ou mova-o para um local sem espaços ou caracteres especiais, se necessário.
Ao resolver essas questões, você poderá evitar a falha 403 e garantir uma configuração adequada do webhook.
public async Task SaveWebhookUrl(Guid chavePix, string webhoookUrl)
{
dynamic efi = new EfiPay(
appSettings.Payment.ClientId,
appSettings.Payment.ClientSecret,
appSettings.Payment.Sandbox,
appSettings.Payment.Certificate
);
var headers = "{\"x-skip-mtls-checking\": \"true\"}";
var param = new
{
chave = chavePix.ToString()
};
var body = new
{
webhookUrl = webhoookUrl
};
var result = Task.FromResult(efi.PixConfigWebhook(param, body, headers));
await Task.FromResult(efi.PixConfigWebhook(param, body, headers));
}
ok, eu fiz essa implementacao
public async Task SaveWebhookUrl(Guid chavePix, string webhoookUrl)
{
dynamic efi = new EfiPay(
appSettings.Payment.ClientId,
appSettings.Payment.ClientSecret,
appSettings.Payment.Sandbox,
appSettings.Payment.Certificate
);
var headers = "{\"x-skip-mtls-checking\": \"true\"}";
var param = new
{
chave = chavePix.ToString()
};
var body = new
{
webhookUrl = webhoookUrl
};
await Task.FromResult(efi.PixConfigWebhook(param, body, headers));
}
Tanto o certificado quanto o par Client ID e Client Secret são diferentes à depender do ambiente, o parâmetro sandbox nas credenciais diz à qual ambiente você vai tentar fazer requisição.
Com sandbox = true você fará requisição para homologação, portanto suas credenciais (Client ID, Client Secrect e certificado) devem ser de homologação.