-
Notifications
You must be signed in to change notification settings - Fork 2
Home
marcioamr edited this page Aug 19, 2018
·
5 revisions
O código QR é formado por informações da transações em texto plano separados por ";" conforme abaixo;
version;id;label;valor;moeda;emissor;isbn;nome;agencia;conta;destinatario;url_detalhe;metadados;created_at;valid_until;assinatura
Todos os campos estão detalhados na tabela abaixo:
Ordem | Obrigatório | Campo | Descrição |
---|---|---|---|
0 | * | version | Versão do token QRPague. |
1 | * | id | Número único (UUID) do token QRPague. |
2 | label | Descrição da transação. | |
3 | * | valor | Valor da transação em formato (9999.99). |
4 | * | moeda | Moeda da transação (BRL) |
5 | * | emissor | CPF/CNPJ do emissor do token. |
6 | * | isbn | ISBN da instituição financeira emissora. |
7 | * | nome | Nome do emissor do token. |
8 | * | agencia | Número da agência do emissor. |
9 | * | conta | Número da conta do emissor. |
10 | destinatario | CPF/CNPJ do destinatário (quando um token só pode ser pago por um destinatário) | |
11 | url_detalhe | URL de detalhamento da transação. | |
12 | metadados | Qualquer metadados de livre escolha de cada instituição financeira. | |
13 | * | created_at | Timestamp da data de criação do token QRPague. |
14 | valid_until | Timestamp da data de expiração do token. Quando não informado significa que o token não expira. | |
14 | * | assinatura | Hash (ECDSA) da assinatura efetuada pela instituição financeira que gerou o token. |
let qrPagueToken = "0.1.0;5afad42239ee9f000fe92189;;10;BRL;99999999999;756;Fulano de Tal;0001;700000001;;;1526387746083;;3046022100c1bf3a2fd92766e82022cf5202a2d7520dead8a432b048b7d5f3e8cf78247f4f022100a34b2b6dc6622daf981566f45eb40c756abb8c4026ce98ce0c3fa78e1c942766"
let qrPagueArray = qrPagueToken.split(';')
console.log(qrPagueArray)
[
"0.1.0",
"5afad42239ee9f000fe92189",
"",
"10",
"BRL",
"99999999999",
"756",
"Fulano de Tal",
"0001",
"700000001",
"",
"",
"1526387746083",
"",
"3046022100c1bf3a2fd92766e82022cf5202a2d7520dead8a432b048b7d5f3e8cf78247f4f022100a34b2b6dc6622daf981566f45eb40c756abb8c4026ce98ce0c3fa78e1c942766"
]
O último campo que representa a assinatura, é um HASH assinado com a chave privada da instiutição financeira, que deve ser respeitado o algoritmo de curva elíptica ECDSA.
Essa assinatura deve ser validada com a chave pública da instituição financeira pagadora do QRPague. Dessa forma, as IFs participantes do deste modelo devem compartilhar e manter atualizado sua chave pública (ECDSA).
A estratégia de usar chave de Curva Elíptica, se deu com a finalidade de diminuir a densidade do código QR, para evitar dificuldades de leituras por parte de alguns smartphones mais antigos.