Filas de Pagamento
Pré-requisitos de acesso
- Permissão (módulo):
processPaymentQueue(controla os botões na UI) +manageToken(exigida pelo backend das rotas de fila) - Licença/Feature: Nenhuma específica.
- Contêiner do menu: GERAL → grupo Cobranças (rota
/manage-payment-queues)
O que é / quando usar
As Filas de Pagamento modelam estruturas de resgate/recompra de NFTs por prioridade — típico de dívidas com ordem de pagamento, como precatórios, dívidas públicas (TCU/União), debêntures ou obrigações corporativas tokenizadas. Cada fila é uma regra: ela seleciona quais NFTs entram (por coleção + atributo + valor de atributo), define a prioridade de pagamento e o tipo (à vista ou parcelado).
Esta tela trata da configuração das filas. A execução item a item (cada NFT a ser paga, na ordem de prioridade) acontece na tela Ordens da fila de pagamento, onde o operador aprova o pagamento de cada NFT: o sistema paga ao detentor o price_paid da NFT a partir da carteira da plataforma e devolve a NFT ao TKN_OWNER.
Pré-condições
- Permissão:
processPaymentQueuecadastrada para liberar os botões na UI (permissão dupla — enum CPM + módulo dinâmico no DB). As rotas de criação/edição/exclusão são validadas no API-Gateway commanageToken; sem esse enum a operação retorna erro mesmo com o botão visível. - Licença/Feature: Nenhuma específica.
- Dependências de outras telas: a coleção e o atributo/valor referenciados precisam existir nas NFTs emitidas — é por eles que o sistema sabe quais NFTs pertencem à fila.
Passo a passo
- Acesse Cobranças → Filas de Pagamento (rota
/manage-payment-queues). - A listagem mostra as filas com Nome e Prioridade.
- Clique em Criar nova para abrir o modal de configuração.
- Preencha Nome, Coleção, Prioridade, Atributo, Valor do atributo e o Tipo de pagamento.
- Se o tipo for Parcelado, informe Percentual e Meses.
- Confirme em Salvar. Para editar, use o ícone de lápis; para remover, o de lixeira.
Campos (modal de fila)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Nome | Identificação da fila | Sim | Grava name em payment_queue (TokenController). Bloqueado em edição (não pode ser alterado depois de criado). |
| Coleção | ID da coleção de NFTs que a fila atende | Sim | Grava collectionId. Junto com atributo/valor, delimita o universo de NFTs elegíveis. |
| Prioridade | Ordem de precedência da fila no pagamento | Sim | Grava priority (numérico). Define qual fila/NFT é paga antes na ordenação das ordens. Aceita apenas números. |
| Atributo | Nome da característica que marca a NFT como parte da fila | Sim | Grava attribute. Casado com Valor do atributo para selecionar as NFTs. |
| Valor do atributo | Valor esperado do atributo acima | Sim | Grava value. Ex.: atributo tipo com valor precatorio. |
| Tipo de pagamento | À vista (Antecipado / A) ou Parcelado / P | Sim | Grava payment_type (A ou P). Ao trocar para A, limpa percentage e months. Define se o valor da NFT é pago de uma vez ou fracionado. |
| Percentual | (Parcelado) % do valor pago por parcela | Condicional (tipo P) | Grava percentage. Define o tamanho de cada parcela em relação ao valor da NFT. |
| Meses | (Parcelado) número/intervalo de parcelas | Condicional (tipo P) | Grava months. Define em quantos meses o valor é distribuído. |
O botão Salvar só é habilitado quando nome, prioridade, valor do atributo, atributo e coleção estão preenchidos.
Ações e modais
- Criar nova: abre o
PaymentQueueModalComponentem modo de criação →POST /v1/assets/createPaymentQueues. - Editar (lápis): abre o mesmo modal com a fila carregada (modo edição) →
POST /v1/assets/updatePaymentQueues. O Nome fica bloqueado. - Excluir (lixeira): chama
POST /v1/assets/deletePaymentQueues. Após o sucesso a página recarrega.
Regras de negócio / cuidados
Atenção
- A seleção de NFTs é feita por coleção + atributo + valor: se o atributo/valor não bater exatamente com o que está nas NFTs, a fila fica vazia.
- O Nome é imutável após a criação.
- A Prioridade é o que ordena o pagamento — filas com prioridade conflitante podem produzir uma ordem de pagamento inesperada. Planeje a numeração.
- Configurar como Parcelado sem informar Percentual/Meses deixa a regra de fracionamento incompleta.
- Valores financeiros: os valores efetivamente pagos vêm do
price_paidde cada NFT (na execução) e são tratados como BigNumber — sem arredondamento. - Idempotência: a execução de cada ordem é protegida (uma NFT já paga não é paga de novo) e as transações seguem a idempotência do FinLib (
E00021= já processado = sucesso).