Histórico de mensagens sobre Cpf em pix

EXIBINDO CONVERSAS RECENTES:

Texto: Cpf
Canal: pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Sim, é possível. Basta substituir o campo cpf por cnpj.

Avatar discord do usuario rafaelplay55

rafaelplay55

Ver Respostas

Existe a possibilidade de eu informar um campo cnpj invés de um cpf para esse objeto devedor?
imagem enviada na mensagem pelo usuario rafaelplay55

Avatar discord do usuario emceder

emceder

Bom dia tenho uma duvida: no split de pagamentos pix, a chave favorecido em todos os exemplos que vi está como cpf, eu posso utilizar cnpj do favorecido no repasse assim como sua conta?
"favorecido": {
"cpf": "xxx", //aqui no caso posso usar cnpj ao invez de cpf no nome da chave ou mantem cpf e só coloco o cnpj no valor da chave
"conta": "xxx"
}

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, para já receber o pagador no webhook sim. Mas o GET de /pix confirmando o CPF não precisa dessa mudança, caso você prefira dessa forma.

Avatar discord do usuario marshall0559

marshall0559

Ver Respostas

ótimo, vou colocar para printar o $pix[0] para eu entender todo o conteudo dessa resposta e vou aplicar esse filtro exigindo que o CPF informado seja o mesmo do titular da conta que pagou

Avatar discord do usuario rubenskuhl

rubenskuhl

... e se você tem o CPF integral esperado, dá para fazer GET em /pix com filtro e aí ter certeza que é idêntico em todos os dígitos, não só na parte que você recebe. Mas me parece exagero.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, vem mascarado. Mas como você recebe 6 dígitos, a chance de colisão com um outro CPF válido é 1 em 1 milhão...

Avatar discord do usuario marshall0559

marshall0559

Ver Respostas

O CPF do pagador fica mascarado na resposta do pagamento né
No caso fica em : $pix[0]

Avatar discord do usuario marshall0559

marshall0559

Ver Respostas

Tem uma opção para negar um Pix caso o CPF não coincida com o do pagador?
Ou eu teria que identificar isso após pago e reembolsar

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Mas uma deny-list de CPF pagador também tende a ajudar.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O CPF do pagador é informado sim, apesar de mascarado.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não. Você pode omitir a árvore devedor toda. Mas se citar o CPF/CNPJ, aí tem que fornecer o nome e vice-versa.

Avatar discord do usuario onlyimp

onlyimp

Ver Respostas

# encoding: utf-8

from efipay import EfiPay
from ...credentials import credentials

efi = EfiPay(credentials.CREDENTIALS)

body = {
'calendario': {
'expiracao': 3600
},
'devedor': {
'cpf': '',
'nome': ''
},
'valor': {
'original': ''
},
'chave': '',
'solicitacaoPagador': 'Cobrança dos serviços prestados.'
}

response = efi.pix_create_immediate_charge(body=body)
print(response)


para criar um qrcode de pagamento é realmente passar os dados do devedor?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, @delorme.onlineips! Tudo bem?
Entendi seu questionamento. Não temos uma opção que bloqueie o pagamento caso o pagador seja diferente do devedor na cobrança Pix.

Por isso, a sugestão seria que sua aplicação validasse essas informações após o recebimento do webhook. Assim, se o CPF do pagador for diferente do devedor, sua aplicação realiza a devolução da transação em seguida.

Avatar discord do usuario delorme.onlineips

delorme.onlineips

Ver Respostas

Boa tarde,

Estamos precisando bloquear pagamentos de cobrança PIX feitos de um CPF diferente do devedor.


A @adrianaolbrisch que nos atende informou:


Neste caso vocês teriam que implementar a verificação do lado de voce, nós fornecemos o documento mascarado do pagador no webhook, assim voce já consegue fazer uma conferencia com base nisso. Veja abaixo um exemplo pratico:
"pagador":{"nome":"NOME COMPLETO","cpf":".123.456-"}


Não consigo então entender, usando a API, criamos uma cobrança e depois geramos o QR Code com o location dela.

Até o momento não temos qualquer informação de quem efetivamente irá realizar o pagamento.

Se de posse do QR Code (ou dados do copia/cola) outra pessoa tentar realizar o pagamento não estamos mais “participando”, certo?

Somente após o pagamento realizado recebemos o webhook, aí sim, teremos ciência que o CPF não foi o mesmo que indicamos na cobrança como devedor, correto?
Mas o pagamento já foi feito, ou seja, não tivemos como bloquear o recebimento.

Conseguem me orientar melhor como fazer o bloqueio?

Avatar discord do usuario daviroquedev

daviroquedev

Ver Respostas

opa, nao sabia desse historico.. ajudou bastante, era o cpf invalido, tava testando aqui com um cpf errado

Avatar discord do usuario daviroquedev

daviroquedev

Ver Respostas

{"valor":"00.01","customerName":"DAVI","customerCPF":"06250102222","serviceDescription":"Corte de Cabelo"}

estou enviando esse json e ta retornando valor invalido

Avatar discord do usuario elielpsoares

elielpsoares

const data = {
calendario: {
expiracao: 3600,
},
devedor: {
cpf: req.body.cpf,
nome: req.body.nome,
},
valor: {
original: (Math.ceil(await value()) / 100).toFixed(2),
},
chave: ${process.env.EFI_PIX},
infoAdicionais: [
{
nome: "Compra de tickets em",
valor: "Acessu Livre (acessulivre.com.br)",
},
],
};

const efipay = new EfiPay(options);

try {
var payment = await efipay.pixCreateImmediateCharge({}, data);
} catch (err) {
console.error(Erro:${err},Erro description: ${payment});
ret.status(500).json({ msg: "Erro ao tentar gerar cobrança." });
}

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @ricardoquintino_10790.
Não temos um endpoint de API para consultar a chave Pix. É importante destacar que consultar a chave Pix sem fazer uma transferência imediatamente pode não ser seguro. Isso acontece porque a chave pode ser excluída ou transferida para outro titular a qualquer momento. A única exceção são as chaves do tipo CPF ou CNPJ, que só podem estar associadas às contas vinculadas ao respectivo documento. Ou seja, validar uma chave agora não garante que ela continue válida logo em seguida.

Se você deseja realizar uma transferência para uma chave Pix, recomendamos usar nosso endpoint. A melhor prática é validar a chave informando o CPF/CNPJ e a chave __no momento do envio do Pix__, usando o endpoint PUT /v2/gn/pix/:idEnvio. Nesse processo, nossa API verifica se a chave Pix pertence ao titular do documento informado no momento da transação. Caso contrário, a transferência é recusada.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @roxzin! Como vai?
Aqui está um código que funciona:

php

$homolog = true; // false para produção

$config = [
"certificado" => realpath(__DIR__ . "/certificado.pem"), // certificado em .pem de produção ou homologação
"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 => $homolog ? "https://pix-h.api.efipay.com.br/oauth/token" : "https://pix.api.efipay.com.br/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 8,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));
var_dump(curl_exec($curl));
$returnAuth = json_decode(curl_exec($curl), true);
$access_token = $returnAuth['access_token'];
curl_close($curl);


//Criação da cobrança
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? 'https://pix-h.api.efipay.com.br/v2/cob/' : 'https://pix.api.efipay.com.br/v2/cob/',
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 => '{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cpf": "12345678909",
"nome": "Francisco da Silva"
},
"valor": {
"original": "0.45"
},
"chave": "[email protected]"
}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $access_token",
"Content-Type: application/json"
),
));
$responsePix = json_decode(curl_exec($curl), true);
curl_close($curl);

echo '
' . json_encode($responsePix, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

if ($responsePix['loc']['id']) {
$idlocationPix = $responsePix['loc']['id'];

// Obtêm o Pix Copia e Cola e QR Code
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? 'https://pix-h.api.efipay.com.br/v2/loc/' . $idlocationPix . '/qrcode' : 'https://pix.api.efipay.com.br/v2/loc/' . $idlocationPix . '/qrcode',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $access_token",
),
));

$response = json_decode(curl_exec($curl), true);

curl_close($curl);


$PixCopiaCola = $response['qrcode'];
$imagemQrcode = $response['imagemQrcode'];


echo 'QR Code:';
echo '
' . json_encode($PixCopiaCola, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

echo 'Imagem:
';
echo '';
}
Também temos nossa SDK de PHP (https://github.com/efipay/sdk-php-apis-efi), que usa o Guzzle.