Emitir uma cobrança - QR Code

Emissão de QR Code para cobrança via PIX

Uma cobrança Pix é uma forma de solicitar o pagamento de recursos através da geração de um QR Code, que pode ser liquidado através do sistema Pix.

Em termos técnicos, você estará criando uma solicitação de pagamento que será atendida por uma terceira parte, seja uma pessoa física ou jurídica. Os fundos recebidos como pagamento dessa solicitação serão então creditados na carteira associada à chave EVP especificada no corpo da requisição.

Esta carteira está associada a uma conta bancária que é custodiada pelo Banco Parati.

Usado para:

  • Emitir uma cobrança para terceiros, a ser pago por qualquer aplicativo que utilize sistema Pix;

Como emitir uma cobrança - QR Code

ENDPOINT:https://kaizen.bt-staging.app/pix-service/wallets/:walletId/qrcodes?type=dynamic&output=json

Esse endpoint utiliza o método POST.

Modelo de requisição:

 https://{{API}}/pix-service/wallets/:walletId/qrcodes?type=dynamic&output=json
curl --location 'https://kaizen.bt-staging.app/pix-service/wallets/85deb14d-abde-4030-ba2d-deb066854da3/qrcodes?type=dynamic&output=json' \
--header 'x-client-external-id: COBCOBwR8hTJlr54y851quLDgtD5A2' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--data '{
    "destination": "94473443-d89d-4829-848a-2594482f52e0", 
    "amount": "100.28",
    "city": "Sao Paulo",
    "description": "Descricao de PIX",
    "customID": "customPXHUBAY1073",
    "expiresAt": "2023-10-30T16:00:00.000Z",
    "mcc": "7399",
    "payer": {
        "validateTaxId": false,
        "name": "Nome do pagador PF com CPF 99988899999",
        "taxId": "99988899999"
    }
}
'
{
    "destination": "{{chaveEVP}}",
    "modalityChange": true,
    "amount": "{{amountArred}}", 
    "city": "Belgrano", 
    "description": "Descricao de PIX", 
    "customID": "custom_{{$randomBankAccountBic}}",
    "expiresAt": "2023-11-30T16:00:00.000Z", 
    "mcc": "7399", 
    "externalCustomerName": "customerName {{$randomBankAccountBic}}", 
    "payer": {
        "validateTaxId": {
        "name": "Nome do pagador PF com CPF 72974107214",
        "taxId": "99999999999"
    }
}

Parâmetros da requisição:

Os parâmetros para essa requisição são:

parâmetrodescrição
outputDefine o formato da saída desejado
- raw
- json
- png
- svg
- url
- base64
type- dynamic

❗️

Observações

  • O campo type deve ser informado nos parâmetros sempre como "dynamic".
  • O output raw equivale ao link do formato "Pix copia e cola" conhecido nos meios de pagamentos.

Campos em negrito são obrigatórios.

CampoTipoDescrição
destinationstring(uuid)- chave EVP que receberá o valor da cobrança emitida, após o seu pagamento
amountstring("00.00")- valores da cobrança com casa decimal separada por ponto (.)
citystring(15)- por questões de PLDFT é necessário declarar a cidade que esta sendo criada o QR Code
descriptionstring(72)- campo destinado a personalização de uma descrição da cobrança sendo gerada
- possui limite de 72 caracteres
- é visível no pagamento do QR Code
mccstring(4)- é um código numérico de quatro dígitos usado no sistema de pagamento de cartão de crédito para categorizar o tipo de atividade comercial de um estabelecimento. Isso ajuda a classificar as transações de acordo com o tipo de compra, como em restaurantes, lojas de eletrônicos ou postos de gasolina.
externalCustomerNamestring(5~50,A-Z,0-9, uppercase)- campo disponibilizado para uso personalizado para informar o nome do subcliente, ou seja para uma operação BaaS. Quando o Cliente BIT Capital utiliza a plataforma para seus clientes. Esse campo é destinado para identificação desses clientes, pode ser um código ou nome.
- caracteres em minúsculo serão convertidos para "Uppercase"
- os espações serão convertidos para "_"(underline)
- pode ou não ser obrigatório dependendo da configuração desejada
customIdstring(50)- campo disponibilizado para personalização com a inclusão de um identificador único, caso seja necessário adaptá-lo a um sistema personalizado desenvolvido para o cliente.
- Este campo permite até 50 caracteres, oferecendo flexibilidade na personalização.
- É importante destacar que essa customização não é visível no pagamento do QR Code
expiresAtstring(ISO8601)- O campo designado para a data e hora de expiração do QR Code deve ser preenchido.
- Caso a data de expiração não seja informada, será automaticamente estabelecida uma expiração de 24 horas a partir do momento da emissão.
- O formato da data e hora deve seguir o padrão ISO8601, considerando o fuso horário UTC0.
payer.validateTaxIdboolean- Esse campo aceita valores "true" ou "false" e seu propósito é determinar se é necessário validar o CPF do emissor da cobrança em relação ao CPF do pagador.
payer.namestring(50)- Nome do pagador
payer.taxIdstring(11)- CPF do pagador
modalityChangeboolean- Esse campo aceita valores "true" ou "false" e seu propósito é determinar se o valor do QR Code pode ou não ser alterado pelo usuário pagador no momento do pagamento.

📘

Utilização do "modalityChange" - QR Code com valor aberto

O campo "modalityChange" é um campo designado a informar a modalidade de pagamento aceita para um determinado QR Code, ou seja, através da utilização desse campo é possível emitir um QR Code com um valor apenas sugestivo, onde no momento do pagamento, esse valor poderá ser definido pelo pagador. Ou até mesmo emitir um QR Code sem valor (R$ 0,00) onde o pagador vai definir qual valor pagar. E em cenários mais comuns, NÃO permitir a alteração de valor no momento do pagamento.

Abaixo instruções de utilização:

O campo "modalityChange" é opcional e indica a possibilidade de alterar uma cobrança. Se não estiver presente, presume-se que a cobrança não pode ser modificada ("false"). Se "modalityChange" for definido como "true", o pagador pode ajustar o valor da cobrança. Se o valor sugerido for zero, o pagador deverá inserir um valor válido maior que zero.

🚧

Utilização do "externalCustomerName"

Para utilização do campo "externalCustomerName" deverá ser efetuada uma configuração na wallet de operação, para definir a obrigatoriedade ou não desse campo na emissão do QR Code, para isso, consulte a equipe de Integração BIT Capital.

A utilização desse campo identificador é de suma importância para operações BaaS, pois quanto mais informações a IF detentora do serviço de cobrança possuir, melhor será o fluxo operacional do PIX, que possui vários subfluxos que exigem análises e regulamentações do Bacen, como por exemplo o fluxo de Infrações.

👍

Informação!

MCC é um código numérico de quatro dígitos usado no sistema de pagamento de cartão de crédito para categorizar o tipo de atividade comercial de um estabelecimento. Isso ajuda a classificar as transações de acordo com o tipo de compra, como em restaurantes, lojas de eletrônicos ou postos de gasolina.

MCCs 0001–1499: Agricultural Services
MCCs 1500–2999: Contracted Services
MCCs 4000–4799: Transportation Services
MCCs 4800–4999: Utility Services
MCCs 5000–5599: Retail Outlet Services
MCCs 5600–5699: Clothing Stores
MCCs 5700–7299: Miscellaneous Stores
MCCs 7300–7999: Business Services
MCCs 8000–8999: Professional Services and Membership Organizations
MCCs 9000–9999: Government Services

Modelo de resposta:

00020101021226850014br.gov.bcb.pix2563qrcode-h.pixame.app/pix/v2/1fad356d-2e9f-40e0-914f-cc95915e3fdb520400005303986540588.005802BR5924Kaizen pix-cobranca prod6009Sao Paulo62070503***6304C26A
{
	"createdAt": "2022-08-05T20:05:44.349Z",
	"updatedAt": "2022-08-05T20:05:44.349Z",
	"deletedAt": null,
	"walletId": "95159c64-1b2b-4ed9-af62-424d9e025af4",
	"emv": {
		"payloadFormatIndicator": "01",
		"pointOfInitiationMethod": "12",
		"merchantCategoryCode": "0000",
		"transactionCurrency": "986",
		"transactionAmount": "88.00",
		"countryCode": "BR",
		"merchantName": "Kaizen pix-cobranca prod",
		"merchantCity": "Sao Paulo",
		"additionalData": {
			"referenceLabel": "***"
		},
		"merchantAccountInformationPix": {
			"gui": "br.gov.bcb.pix",
			"url": "qrcode-h.pixame.app/pix/v2/eb526322-cb71-4830-b212-bc212fe615b2"
		}
	},
	"status": "ATIVA"
}
MDAwMjAxMDEwMjEyMjY4NTAwMTRici5nb3YuYmNiLnBpeDI1NjNxcmNvZGUtaC5waXhhbWUuYXBwL3BpeC92Mi83N2U1YmIwYi1mZTVmLTQ5YmEtODdlYS00NmM1Njc0Y2VkNjM1MjA0MDAwMDUzMDM5ODY1NDA1ODguMDA1ODAyQlI1OTI0S2FpemVuIHBpeC1jb2JyYW5jYSBwcm9kNjAwOVNhbyBQYXVsbzYyMDcwNTAzKioqNjMwNDAwRUM=
632

exemplo de output svg e png

Emitindo uma cobrança com um pagador:

É possível emitir uma cobrança declarando no corpo da requisição (body) o pagador do mesmo. Desta forma estamos declarando uma cobrança em nome de um terceiro.

Uma cobrança em nome de terceiro, não significa que o pagador deverá possuir uma chave no DICT, mas, que está sendo gerada uma "dívida" em nome do pagador.

Para declarar o pagador no corpo da requisição (body) deve-se acrescentar os campos:

{
	
  ...
  
"payer": {
  "validateTaxId": true,
  "name": "Nome do pagador da cobrança ",
  "taxId": "999000999"
	},
  
    ...
    
}

REGRAS PARA VALIDAÇÃO DE PAGAMENTO

Esta funcionalidade é opcional. No entanto, ao ativá-la, ao configurar o campo booleano "validateTaxId" como "true", o sistema permitirá o pagamento da cobrança somente se o CPF declarado no objeto "payer" no corpo da requisição coincidir com o CPF do pagador.

Caso ocorra um pagamento de um CPF diferente do declarado na emissão do QR Code, é acionada a "Devolução automática de pagamento"

👍

Informação!

Para verificar em que casos utilizar a Devolução Automática de pagamento acesse o link: Devolução automática de pagamento

Esta funcionalidade é especialmente adequada para atender a modelos de negócios de clientes que requerem controle em conformidade com a Lei Geral de Proteção de Dados (LGPD) ou outros modelos de negócios específicos.

Verifique a disponibilidade da funcionalidade com a equipe de implantação da Bit Capital.

📘

Sugestão:

Para facilitar os próximos fluxos, como de Consultar uma Transação, obtenha o "x-client-external-id" presente no header do response da emissão.