Emissão de QR Code estático

stable scopes: pix.qrcode.create

O QR Code estático foi planejado para ser utilizado em cobranças direcionadas a mais de um pagador. Ou seja, o mesmo QR Code pode ser usado várias vezes por pagadores diferentes.

Esse tipo de QR Code traz apenas informações sobre o recebedor do pagamento e possibilita definir um valor fixo ou editar o valor a ser pago pelo usuário pagador no momento de realizar a transação.

📘

Nota

O QR Code estático não possui validade e nem está sujeito a multas e juros.

Pré-requisito para a emissão

Antes de emitir qualquer QR Code Pix, certifique-se de que a chave de endereçamento Pix esteja válida. Caso contrário, não será possível fazer a emissão.

🚧

Importante

Se a chave de endereçamento atrelada ao QR Code for excluída após sua emissão, o QR Code ficará inválido para pagamento.

Etapas

Endpoint

Para uso deste endpoint, é preciso preencher os seguintes campos obrigatórios:

  • x-correlation-id: no header, informe um GUID v4, que deve ser gerado a cada nova requisição;
  • x-bkly-pix-user-id: no header da requisição, informe o número do documento do cliente que está solicitando a leitura do QR Code. Insira apenas números, sem formatação;
  • addressingKey:
    • type: informe o tipo de chave de endereçamento DICT (CPF, CNPJ ou EVP);
    • value: preencha com o valor da chave escolhida;
  • recipientName: informe o nome do recebedor do pagamento;
  • location:
    • city nome da cidade do recebedor do pagamento.

Opcionalmente, preencha os demais campos:

  • location:
    • zipCode: CEP do recebedor do pagamento;
  • amount: campo que define o valor do pagamento. Quando informado, não permite a alteração do valor pelo pagador;
  • conciliationId: o ID de conciliação é uma informação que pode ser passada na emissão do QR Code e utilizada para conciliação dos pagamentos. Importante: esse campo é limitado a 25 caracteres e não aceita nenhum caractere especial;
  • categoryCode: MCC (Merchant Category Code) é um número de quatro dígitos listado na ISO 18245 para serviços financeiros de varejo. Caso o usuário recebedor o possua, ele deve ser informado. Valor default: 0000.
  • additionalData: campo livre para informações adicionais. Importante: seu tamanho máximo é definido por 73 subtraído o tamanho da chave. Considerando que uma chave tem o tamanho mínimo de 9 caracteres, o tamanho máximo deste campo é 64.

📘

Nota

O campo additionalData não aceita caracteres especiais.

curl --location --request POST 'https://api-mtls.sandbox.bankly.com.br/pix/qrcodes' \ 
--header 'Accept: application/json' \ 
--header 'Content-Type: application/json' \ 
--header 'api-version: 1.0' \ 
--header 'x-correlation-id: {{correlationId}}' \
--header 'x-bkly-pix-user-id: {{clientDocument}}'\
--header 'Authorization: Bearer {{Token}} 
--data-raw '{ 
    "addressingKey": { 
        "type": "CPF", 
        "value": "12345678900" 
    }, 
    "location": { 
        "city": "São Paulo", 
        "zipCode": "05402100" 
    }, 
    "amount": 1, 
    "recipientName": "Peter Parker", 
    "conciliationId": "codigo1234" 
}'

Retorno

Caso obtenha sucesso em sua requisição, você receberá um código em base64, que contém todas as informações sobre o pagamento.

🚧

Importante

Cabe ao parceiro transformar o base64 em imagem.

{ 
    "encodedValue": "MDAwMjAxMjYzMzAwMTRici5nb3YuYmNiLnBpeDAxMTEwNTY3ODQwNDg0OTUyMDQwMDAwNTMwMzk4NjU0MDUxMC4wMTU4MDJCUjU5MTVGZXJuYW5kbyBTZWd1aW02MDA5U2FvIFBhdWxvNjEwODA0MjA1MDAwNjIwNzA1MDMqKio2MzA0Njc5Ng==" 
}

Erros

Status codeCódigoDescrição
400INVALID_PARAMETERO valor informado para a chave é inválido.
400INVALID_PARAMETERO tipo de chave informado é inválido.
400INVALID_PARAMETERO campo city não pode estar vazio.
400INVALID_PARAMETERO campo city não aceita números ou caracteres especiais.
400INVALID_PARAMETERO valor informado para zipCode é inválido.
400INVALID_PARAMETERO campo recipientName não pode estar vazio
400INVALID_PARAMETERO campo conciliationId não aceita caracteres especiais.
400ENTRY_NOT_FOUNDA chave que está sendo informada para gerar um QR Code não existe.
422EMV_FIELD_LENGTH_OUT_OF_RANGEComprimento do campo EMV (Merchant Account Information) fora do intervalo permitido.