Histórico de mensagens sobre expiracao

EXIBINDO CONVERSAS RECENTES:

Texto: expiracao
# pix
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.

# pix
Avatar discord do usuario edsonpinheiro_

edsonpinheiro_

Ver Respostas

curl --location 'https://pix.api.efipay.com.br/v2/cob' \
--header 'Authorization: Bearer Token {token aqui} \
--header 'Content-Type: application/json' \
--data '{
"calendario": {
"expiracao": 3600
},
"valor": {
"original": "124.45"
},
"chave": "61982030380",
"solicitacaoPagador": "Informe o número ou identificador do pedido."
}'

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @empreitas, tudo bem?
O campo expiracao em segundos já deve impedir o pagamento após passar o tempo definido, vou abrir um atendimento para você para verificarmos uma cobrança de exemplo.

# pix
Avatar discord do usuario empreitas

empreitas

Estoou criando uma cobrança imediata, e estou enviando a "expiracao" porém consigo pagar o QR code mesmo depois desse prazo

# pix
Avatar discord do usuario celsoalexandre

celsoalexandre

Ver Respostas

Bom dia,
estou tendo o seguinte erro ao criar uma charge pix com location e notification_url usando a sdk pra Go, ambiente homolog
{"nome":"json_invalido","mensagem":"Valores ou tipos de campo inválidos","erros":[{"chave":"additionalProperties","caminho":".body","mensagem":"não são permitidas propriedades adicionais"}]}

go
// Go
PUT /v2/cob/:txid
map[string]interface{}{
"calendario": map[string]interface{}{
"expiracao": 600,
},
"valor": map[string]interface{}{
"original": "0.01",
},
"loc": map[string]interface{}{
"id": 97,
},
"metadata": map[string]interface{}{
"notification_url": "https://meudominio:10021/efi/homolog/webhook",
},
"chave": "71cdf9ba-c695-4e3c-b010-abb521a3f1be",
"solicitacaoPagador": "Teste",
}

Se eu removo o campo "metadata" e seu conteúdo, funciona.
Não é mais possível criar a cobrança e registrar a callback na mesma chamada, ou seria de outra forma?

# pix
Avatar discord do usuario yasmin_efi

yasmin_efi

@marcosvinicius0759 o tempo de expiração é você que define no momento em que emite a cobrança. Ele é enviado no campo calendario >> expiracao, conforme é possível verificar em nossa documentação técnica: https://dev.efipay.com.br/docs/api-pix/cobrancas-imediatas

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Boa tarde, @celsoalexandre, tudo bem?
Você pode emitir uma cobrança Pix sem enviar o atributo devedor.
Quanto à expiração basta que você defina no campo calendario -> expiracao ao criar a cobrança o tempo que deseja.

# devs
Avatar discord do usuario mauricin

mauricin

Ver Respostas

bom dia pessoal,

qual o tempo de expiracao de um token oauth2, para que eu possa re-utilizar ?

1 hora ?

# devs
Avatar discord do usuario cleyton5212

cleyton5212

payload = {
"calendario": {"expiracao": time},
# "devedor": {"cpf": cpf, "nome": name},
"valor": {"original": two_case(value)},
"chave": self.key_pix,
"solicitacaoPagador": "Informe o número ou identificador do pedido.",
}
self.header = header
dados = await self.hc.post(
"https://pix.api.efipay.com.br/v2/cob",
headers=header,
json=payload,
)
djson = dados.json()

# Adicionando verificações de erro
if dados.status_code != 201:
raise Exception(f"Erro ao criar cobrança: {djson.get('mensagem')}")

ID = djson.get("loc", {}).get("id")
if not ID:
raise Exception("Erro: ID da localização não encontrado na resposta.")

url = f"https://pix.api.efipay.com.br/v2/loc/{ID}/qrcode"
rt = await self.hc.get(url, headers=header)
rjson = rt.json()

if rt.status_code != 200:
raise Exception(f"Erro ao obter QR Code: {rjson.get('mensagem')}")

self.payment_id = djson.get("txid")
self.user_id = user_id

return rjson

# pix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

pixGenerateQRCode não é a função que cria uma cobrança Pix, ela é utilizada para retornar um qrcode passando o id de um location.
Para emitir uma cobrança Pix, você precisa utilizar este exemplo:

ts
const body = {
calendario: {
expiracao: 3600,
},
devedor: {
cpf: '94271564656',
nome: 'Gorbadock Oldbuck',
},
valor: {
original: '123.45',
},
chave: 'SUACHAVEPIX', // Informe sua chave Pix cadastrada na efipay //o campo abaixo é opcional
infoAdicionais: [
{
nome: 'Pagamento em',
valor: 'NOME DO SEU ESTABELECIMENTO',
},
{
nome: 'Pedido',
valor: 'NUMERO DO PEDIDO DO CLIENTE',
},
],
};

const params = {
txid: 'dt9BHlyzrb5jrFNAdfEDVpHgiOmDbVq111',
};

const efipay = new EfiPay(options);

efipay
.pixCreateCharge(params, body)
.then((resposta: Promise) => {
console.log(resposta);
})
.catch((error: Promise) => {
console.log(error);
});

# pix
Avatar discord do usuario thomz45

thomz45

Ver Respostas

existe algum limite pra expiracao? tô querendo colocar pra um dia
imagem enviada na mensagem pelo usuario thomz45

# pix
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @raphas9! Tudo bem?

Sim, ao consultar uma cobrança via API, o status da cobrança é retornado. Quando a cobrança está paga, o status retornado é "CONCLUÍDA".
Quanto à devolução, as informações sobre ela são retornadas. Em nossa documentação, há um exemplo de JSON retornado quando ocorre uma devolução:

json
{
"status": "CONCLUIDA",
"calendario": {
"criacao": "2020-09-09T20:15:00.358Z",
"expiracao": "3600"
},
"location": "qrcodes-pix.gerencianet.com.br/1dd7f893-a58e-4172-8702-8dc33e21a403",
"txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",
"revisao": 1,
"devedor": {
"cnpj": "12345678000195",
"nome": "Empresa de Serviços SA"
},
"valor": {
"original": "100.00"
},
"chave": "40a0932d-1918-4eee-845d-35a2da1690dc",
"solicitacaoPagador": "Informe o número ou identificador do pedido.",
"pix": [
{
"endToEndId": "E12345678202009091221kkkkkkkkkkk",
"txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",
"valor": "110.00",
"horario": "2020-09-09T20:15:00.358Z",
"infoPagador": "0123456789",
"devolucoes": [
{
"id": "123ABC",
"rtrId": "Dxxxxxxxx202009091221kkkkkkkkkkk",
"valor": "10.00",
"horario": {
"solicitacao": "2020-09-09T20:15:00.358Z"
},
"status": "EM_PROCESSAMENTO"
}
]
}
]
}

# pagamento-contas
Avatar discord do usuario francinaldo0632

francinaldo0632

Ver Respostas

como posso gerar um qrcode estatico com a api, pois preciso reaaproveitar o qrcode para varios pagamentos o porblema e que se eu nao inserir o expiracao da erro

# pix
Avatar discord do usuario .thomasjackson

.thomasjackson

Ver Respostas

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