Histórico de mensagens sobre expiracao em pix

EXIBINDO CONVERSAS RECENTES:

Texto: expiracao
Canal: pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Neste exemplo, exibe um que contém esta informação. Segue um exemplo completo:

php
$curl = curl_init();

$txid = "seutxid";

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/v2/cob/$txid",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_SSLCERT => $config["certificate"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS =>'{
"calendario": {
"expiracao": 13600
},
"devedor": {
"cpf": "12345678909",
"nome": "Francisco da Silva"
},
"valor": {
"original": "0.02"
},
"chave": "[email protected]",
"solicitacaoPagador": "Teste pix."
}',
CURLOPT_HTTPHEADER => array(
"authorization: Bearer $accessToken",
'Content-Type: application/json'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Avatar discord do usuario gabrielaugustin

gabrielaugustin

Ver Respostas

Boa noite <@!671762828046106646>,

Após o PUT: /v2/cob/{txid}, o retornou:

{
"calendario": {
"criacao": "2021-02-25T23:35:16.000Z",
"expiracao": 172800
},
"txid": "EFBE283A2B9F4D67E4C51D9789423CF4",
"revisao": 0,
"loc": {
"id": 12,
"location": "qrcodes-pix-h.gerencianet.com.br/v2/f792b2f5b2474992b5b007ee90c7a18d",
"tipoCob": "cob",
"criacao": "2021-02-25T23:35:16.000Z"
},
"location": "qrcodes-pix-h.gerencianet.com.br/v2/f792b2f5b2474992b5b007ee90c7a18d",
"status": "ATIVA",
"devedor": {
"cpf": "11111111111",
"nome": "Humberto Bitt"
},
"valor": {
"original": "59.90"
},
"chave": "xxxxxxxxxxx"
}

Quando consumo GET: /v2/loc/12/qrcode o retorno é sempre:
{
"nome": "nao_encontrado",
"mensagem": "Recurso não encontrado"
}

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, <@!811410181933498421>.
O tempo de expiração de uma cobrança Pix caso não definido o parâmetro expiracao o padrão será de 86400 segundos (24 horas).
Caso queira definir um tempo, é possível definir um numero com valor máximo integer int32.

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Um exemplo de requisição em JS:

js
criarCobrancaImediata(body, token) {
let requisicao = {
method: 'POST',
url: config.pix_url_cob,
headers: {
authorization: 'Bearer ' + token,
'Content-Type': 'application/json',
},
httpsAgent: config.agent,
data: body,
};
const response = axios(requisicao)
.then()
.catch((error) => {
console.log(error.response.data);
});

return response.data;
}
A url e o body seguem o padrão que informei:
url: https://api-pix-h.gerencianet.com.br/v2/cob
body:
{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cnpj": "12345678000195",
"nome": "Empresa de Serviços SA"
},
"valor": {
"original": "00.01"
},
"chave": "sua_chave",
"solicitacaoPagador": "Serviço realizado.",
"infoAdicionais": [
{
"nome": "Despache",
"valor": "placa de carro"
},
{
"nome": "Campo 2",
"valor": "Informação Adicional2 do PSP-Recebedor"
}
]
}

Avatar discord do usuario andreimaraujo

andreimaraujo

const data = JSON.stringify({
grant_type: 'cob.write',
calendario: {
expiracao: 3600,
},
devedor: {
cpf: '12345678909',
nome: 'Francisco da Silva',
},
valor: {
original: value,
},
chave: key,
solicitacaoPagador: 'Cobrança dos serviços prestados.',
});

isso aqui tá certo?

Avatar discord do usuario andreimaraujo

andreimaraujo

Ver Respostas

async receive(receiveDto: { value: string, key: string }) {
const token = await this.auth();

const { value, key } = receiveDto;

const data = JSON.stringify({
grant_type: 'cob.write',
calendario: {
expiracao: 3600,
},
devedor: {
cpf: '12345678909',
nome: 'Francisco da Silva',
},
valor: {
original: value,
},
chave: key,
solicitacaoPagador: 'Cobrança dos serviços prestados.',
});

try {
const { data: response } = await this.httpService
.post(${this.GERENCIA_NET_URL}/cob, data, {
headers: {
Authorization: token,
'Content-Type': 'application/json',
},
})
.toPromise();

console.log(response);
} catch (error) {
console.log(error);
}

return true;
}

Avatar discord do usuario monteira1

monteira1

Ver Respostas

$request = [
'calendario' => [
'expiracao' => 3600
],
'devedor' => [
'cpf' => '12345678909',
'nome' => 'Fulano de Tal'
],
'valor' => [
'original' => '10.00'
],
'chave' => PIX_KEY,
'solicitacaoPagador' => 'Pagamento do pedido 123'
];
eu tenho essa requisicao, queria saber qual seria essa 'chave' => PIX_KEY.

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

São diferentes os retornos dependendo do endpoint consumido, se você se refere a criação da cobrança o retorno é:

json
{
"calendario": {
"criacao": "2020-09-09T20:15:00.358Z",
"expiracao": 3600
},
"txid": "7978c0c97ea847e78e8849634473c1f1",
"revisao": 0,
"loc": {
"id": 789,
"location": "pix.example.com/qr/v2/9d36b84fc70b478fb95c12729b90ca25",
"tipoCob": "cob"
},
"location": "pix.example.com/qr/v2/9d36b84fc70b478fb95c12729b90ca25",
"status": "ATIVA",
"devedor": {
"cnpj": "12345678000195",
"nome": "Empresa de Serviços SA"
},
"valor": {
"original": "567.89"
},
"chave": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",
"solicitacaoPagador": "Informar cartão fidelidade"
}
Já o retorno para gerar QRCode a partir do location, é retornado o copia e cola e a imagemQRCode em base 64:
json
{
"qrcode": "00020126880014BR.GOV.BCB.PIX2566qrcodes-pix.gerencianet.com.b...",
"imagemQrcode": "data:image/png;base64,iVBORw0KGgoAAAAOQAAADkCAYAAACIV4s..."
}

Avatar discord do usuario danielteodoro

danielteodoro

https://api-pix.gerencianet.com.br/v2/cob PUT

{
"calendario": {
"criacao": "2021-02-08T13:24:57.508Z",
"expiracao": 3600
},
"txid": "7978c0c97ea847e78e884963a4473c1f2",
"revisao": 0,
"loc": {
"id": 2,
"location": "qrcodes-pix.gerencianet.com.br/v2/bba3f7429ab34da6bfcd6a47b216dfd0",
"tipoCob": "cob",
"criacao": "2021-02-08T13:24:57.532Z"
},
"location": "qrcodes-pix.gerencianet.com.br/v2/bba3f7429ab34da6bfcd6a47b216dfd0",
"status": "ATIVA",
"devedor": {
"cpf": "00586549250",
"nome": "Matheus Torrente"
},
"valor": {
"original": "0.01"
},
"chave": "94fa0387-e550-4383-be40-622c2f58ac06",
"solicitacaoPagador": "Cobrança dos serviços prestados."
}

Avatar discord do usuario rubenskuhl

rubenskuhl

{
"txid": "d84e95ed10274fdca3ce81a15bebb48c",
"revisao": 0,
"calendario": {
"criacao": "2021-02-05T18:11:02.000Z",
"apresentacao": "2021-02-05T18:51:52.626Z",
"expiracao": 3833340
},
"status": "ATIVA",
"valor": {
"original": "1.00"
},
"chave": "0a4313be-2d49-4c01-a2ac-8ff2cffd94bc",
"devedor": {
"nome": "FABRICIO MOTA CAMARGO",
"cpf": "01257398695"
},
"solicitacaoPagador": "Mensalidade de internet referente ao vencimento 22/03/2021 cod:911504."
}

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Bom dia, o prazo máximo é o valor do int 32 que tem seus valores contabilizados em segundos.
Como citado pelo Rubens, você Pode utilizar o PATCH /v2/cob/:txid informando o txid e alterado o atributo calendario.expiracao.

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Tente dar um PATCH alterando a expiracao

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Neste PATCH você alterou o atributo expiracao?

Avatar discord do usuario franciscorsobrinho

franciscorsobrinho

Ver Respostas

Atualizando o caso do calendario.expiracao
O problema da leitura de uma cobrança expirada ocorre da seguinte maneira:
- Existe uma cobrança ATIVA com expiração futura
- Usar a rota PATCH /v2/cob/{txid} para redefinir o tempo de expiração para um tempo passado
- Os bancos leram o qr code, mas não é possível pagar devido a rejeição de recebimento por parte do PSP recebedor (GN)

Obs.: se a cobrança já estiver com expiração vencida antes do PATCH, o leitor nem lê o qr code.
Como não é possível pagar o qr code, vejo como algo irrelevante.
Acredito que seja algo relacionado ao location, pois após o PATCH o location continua o mesmo.

Obs 2: tentei redefinir o expiracao para tempo passado porque estava tentando "excluir" a cobrança, antes do <@!440035527127990273> me alertar sobre a possibilidade de se alterar o status da cobrança via PATCH

Avatar discord do usuario franciscorsobrinho

franciscorsobrinho

Puxa vida, fui tentar simular aqui, alterando o expiracao e a cobrança passou para CONCLUIDA sem ter sido recebida

Avatar discord do usuario franciscorsobrinho

franciscorsobrinho

Ver Respostas

Pelo jeito o campo calendario.expiracao não serve para nada. Era para a cobrança estar expirada em função do valor da expiracao

Avatar discord do usuario franciscorsobrinho

franciscorsobrinho

Ver Respostas

Como faço para excluir uma cobrança? Tentei redefinir o calendario.expiracao para 900 (valor mínimo aceito), mas mesmo assim a cobrança ainda é lida.
O calendário da cobrança está assim:

"calendario":{"criacao":"2020-12-19T23:26:01.000Z","expiracao":900}

Avatar discord do usuario juizmill

juizmill

Ver Respostas

Seria este os dados que a GN vai enviar para o meu sistema pelo WebHook

{
"txId": "fc9a4366ff3d4964b5dbc6c91a8722d3",
"revisao": "3",
"calendario": {
"criacao": "2020-09-15T19:39:54.013Z",
"apresentacao": "2020-04-01T18:00:00Z",
"expiracao": 3600
},
"status": "ATIVA",
"valor": {
"original": "500.00"
},
"chave": "7407c9c8-f78b-11ea-adc1-0242ac120002",
"solicitacaoPagador": "Informar cartão fidelidade",
"infoAdicionais": [
{
"nome": "quantidade",
"valor": "2"
}
]
}

Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

você está passando os dados do Body ?

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/v2/cob/fc9a4366ff3d4964b5dbc6c91a8724d5",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS =>"{\r\n \"calendario\": {\r\n \"expiracao\": 3600\r\n },\r\n \"devedor\": {\r\n \"cpf\": \"12345678909\",\r\n \"nome\": \"Francisco da Silva\"\r\n },\r\n \"valor\": {\r\n \"original\": \"124.45\"\r\n },\r\n \"chave\": \"\",\r\n \"solicitacaoPagador\": \"Cobrança dos serviços prestados.\"\r\n}",
CURLOPT_HTTPHEADER => array(
"authorization: {{Authorization}}",
"x-client-cert-pem: {{X-Certificate-Pem}}"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Avatar discord do usuario mmhospedagem

mmhospedagem

Array
(
[calendario] => Array
(
[criacao] => 2020-12-13T04:01:01.000Z
[expiracao] => 3600
)

[txid] => PIX5B4T2KW7M8QXFJSV0APUD7E
[revisao] => 0
[loc] => Array
(
[id] => 72
[location] => qrcodes-pix.gerencianet.com.br/v2/e05e58d660f44e14bc652819c385f4c9
[tipoCob] => cob
[criacao] => 2020-12-13T04:01:01.000Z
)

[location] => qrcodes-pix.gerencianet.com.br/v2/e05e58d660f44e14bc652819c385f4c9
[status] => CONCLUIDA
[devedor] => Array
(
[cpf] => 04698640369
[nome] => Maik Venancio de Oliveira
)

[valor] => Array
(
[original] => 0.01
)

[chave] => 382ce08f-7200-4997-9616-613cade4f7e6
[solicitacaoPagador] => FATURA_2
[pix] => Array
(
[0] => Array
(
[endToEndId] => E18236120202012130408s0636219IRW
[txid] => PIX5B4T2KW7M8QXFJSV0APUD7E
[valor] => 0.01
[horario] => 2020-12-13T04:08:37.000Z
)

)

)