Histórico

EXIBINDO CONVERSAS RECENTES:

Texto: location
# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver RespostasVer no Discord

Não é o location, é o id, que é 7716. Com ele você faz GET em /loc.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver RespostasVer no Discord

Opção 1: pega o pixCopiaeCola que já vem no retorno do /cob e usa um biblioteca para gerar o QR-Code (muitas linguagens tem). Esta opção é portável entre PSPs.
Opção 2: pega o loc.id que vem no retorno do /cob e faz em GET em /location aonde vem já a imagem do QR-Code. Esta opção não é portável.

# dúvidas
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver RespostasVer no Discord

cob.write, cob.read, location.write, location.read

# pix
Avatar discord do usuario igor_efi

igor_efi

Ver RespostasVer no Discord

Onde você tratou o location?

location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass /webhook;
}

# pix
Avatar discord do usuario .thomasjackson

.thomasjackson

Ver RespostasVer no Discord

dados de entrada
{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cpf": "31435600886",
"nome": "Doss App Official"
},
"valor": {
"original": "0.01"
},
"chave": "0aee45d3-0c50-4104-90f7-af6142f01b84",
"solicitacaoPagador": "Residencia"
}
dados de saida
{
"calendario": {
"criacao": "2024-04-24T21:30:02.789Z",
"expiracao": 3600
},
"txid": "5dbb6b24b81443e595b7aba488a0bd6e",
"revisao": 0,
"status": "ATIVA",
"valor": {
"original": "0.01"
},
"chave": "0aee45d3-0c50-4104-90f7-af6142f01b84",
"devedor": {
"cpf": "31435600886",
"nome": "Doss App Official"
},
"solicitacaoPagador": "Residencia",
"loc": {
"id": 20,
"location": "qrcodespix-h.sejaefi.com.br/v2/618748afff0d431381b862f438baf58d",
"tipoCob": "cob",
"criacao": "2024-04-24T21:30:02.814Z"
},
"location": "qrcodespix-h.sejaefi.com.br/v2/618748afff0d431381b862f438baf58d",
"pixCopiaECola": "00020101021226850014BR.GOV.BCB.PIX2563qrcodespix-h.sejaefi.com.br/v2/618748afff0d431381b862f438baf58d5204000053039865802BR5905EFISA6008SAOPAULO6207050363041473"
}
nao recebi nenhuma chamada no meu webhook

# pix
Avatar discord do usuario .thomasjackson

.thomasjackson

Ver no Discord

dados de saida
{
"calendario": {
"criacao": "2024-04-24T21:30:02.789Z",
"expiracao": 3600
},
"txid": "5dbb6b24b81443e595b7aba488a0bd6e",
"revisao": 0,
"status": "ATIVA",
"valor": {
"original": "0.01"
},
"chave": "0aee45d3-0c50-4104-90f7-af6142f01b84",
"devedor": {
"cpf": "31435600886",
"nome": "Doss App Official"
},
"solicitacaoPagador": "Residencia",
"loc": {
"id": 20,
"location": "qrcodespix-h.sejaefi.com.br/v2/618748afff0d431381b862f438baf58d",
"tipoCob": "cob",
"criacao": "2024-04-24T21:30:02.814Z"
},
"location": "qrcodespix-h.sejaefi.com.br/v2/618748afff0d431381b862f438baf58d",
"pixCopiaECola": "00020101021226850014BR.GOV.BCB.PIX2563qrcodespix-h.sejaefi.com.br/v2/618748afff0d431381b862f438baf58d5204000053039865802BR5905EFISA6008SAOPAULO6207050363041473"
}

# 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 .thomasjackson

.thomasjackson

Ver no Discord

{
"calendario": {
"criacao": "2024-04-15T14:12:09.667Z",
"expiracao": 3600
},
"txid": "3759d538329141a38d325a2c42886279",
"revisao": 0,
"status": "ATIVA",
"valor": {
"original": "0.01"
},
"chave": "0aee45d3-0c50-4104-90f7-af6142f01b84",
"devedor": {
"cpf": "12345678909",
"nome": "Francisco da Silva"
},
"solicitacaoPagador": "Informe o número ou identificador do pedido.",
"loc": {
"id": 2,
"location": "qrcodespix-h.sejaefi.com.br/v2/e227bec994f64e398b897131ff2fd640",
"tipoCob": "cob",
"criacao": "2024-04-15T14:12:09.731Z"
},
"location": "qrcodespix-h.sejaefi.com.br/v2/e227bec994f64e398b897131ff2fd640",
"pixCopiaECola": "00020101021226850014BR.GOV.BCB.PIX2563qrcodespix-h.sejaefi.com.br/v2/e227bec994f64e398b897131ff2fd6405204000053039865802BR5905EFISA6008SAOPAULO620705036304AEBF"
}

# módulos-plugins
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver no Discord

Segue um exemplo mais detalhado, onde é feito a autenticação e consumo do endpoint para criar um boleto.

php
$config = [
"client_id" => "Client_Id_...",
"client_secret" => "Client_Secret_..."
];

$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Basic ' . $autorizacao
),
));
$returnAuth = json_decode(curl_exec($curl), true);
$access_token = $returnAuth['access_token'];
curl_close($curl);

echo "
";
var_dump($returnAuth);
echo "
";

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/charge/one-step',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{
"items": [
{
"name": "Teste Gn",
"amount": 1,
"value": 500
}
],
"payment": {
"banking_billet": {
"expire_at": "2024-12-10",
"customer": {
"name": "Gorbadoc Oldbuck",
"cpf": "94271564656",
"email": "[email protected]"
}
}
}
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer ' . $returnAuth['access_token'],
'Content-Type: application/json'
),
));

$responseBillet = curl_exec($curl);
curl_close($curl);

echo "
";
var_dump($responseBillet);
echo "
";

# módulos-plugins
Avatar discord do usuario discovery_kids

discovery_kids

Ver RespostasVer no Discord

sim estou usando cURL.

//Desenvolvido pela Consultoria Técnica da Efí
$config = [
"client_id" => "YOUR-CLIENT-ID",
"client_secret" => "YOUR-CLIENT-SECRET"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{ "grant_type": "client_credentials"}',
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";
?>

com as devidas alterações no client_id e client_secret.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver RespostasVer no Discord

Bom dia, @.andregomes!
Neste caso, você pode consumir diretamente os endpoints.
1- Faz a autenticação na API: https://dev.efipay.com.br/docs/api-pix/credenciais/#obter-autorização
2-Cria a cobrança Pix imediada: https://dev.efipay.com.br/docs/api-pix/cobrancas-imediatas#criar-cobrança-imediata-com-txid
3-Obtêm o QR Code da cobrança gerada: https://dev.efipay.com.br/docs/api-pix/payload-locations#gerar-qrcode-de-um-location

# pix
Avatar discord do usuario cfuent.es

cfuent.es

Ver no Discord

location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
linha 61: proxy_pass /webhook;
}

# devs
Avatar discord do usuario yuraji.

yuraji.

Ver RespostasVer no Discord

Bom dia a todos!

Criei um fork da biblioteca da Efí Pay (efipay/sdk-node-apis-efi) sdk em nodejs da api, que é na verdade um exemplo completo de como fazer a chamada da API de Pix da Efí em nodeJS, usando js puro e axios (inspirado pelo próprio sdk) e mais importante, rodando em um AWS Lambda recuperando o certficidado .p12 diretamente de um AWS S3 Bucket.
Logo irei publicar um incremento para que o exemplo também recupere o QRCode (location api da Efí) e grave a imagem do QRCode também em um S3 Bucket.

Como eu apenas uso AWS Lambda, tecnologias serverless e mais recentemente Cloudflare workers, senti falta de uma versão para estes ambientes.

Segue link do repo no git:
https://github.com/pipeu/sdk-node-apis-efi-lambda

Qualquer dúvida, sugestão ou crítica (será muito bem recebida), estou à disposição!
Luiz Couto