O mapa de titularidade
O mapa de titularidade é uma lista de chaves. Cada chave tem um motor dono. Um motor pode reivindicar as contas, os documentos de cobrador e as recorrências que detém. Um operador também pode atribuir chaves pela API de titularidade. O Courier recusa um segundo dono para uma chave com
409 JDC-0102. Para mudar o dono, o operador move a chave.
O mapa aceita oito tipos de chave:
Os tipos que o roteamento de entrada não usa ficam disponíveis aos motores pela consulta de titularidade. Um motor usa a consulta para descobrir se outro motor é dono do destino de um pagamento.
O Courier normaliza cada valor de chave. Por exemplo, ele remove a pontuação de um CPF e os zeros à esquerda de uma agência. Envie o valor como você o guarda.
Cada mudança no mapa grava uma entrada no histórico de auditoria da chave, na mesma transação. A entrada registra quem fez a mudança, quando, o dono anterior e o novo dono. Uma movimentação também registra o motivo. Você pode ler o histórico de uma chave depois da remoção dela, pela consulta de auditoria por chave.
Roteamento no trilho SPB
O papel
spb-consumer lê as mensagens SPB que a JD guarda para a sua instituição. O Courier guarda cada mensagem antes de decidir a rota. Depois, ele aplica estas regras, em ordem:
- Registro de envios. Quando o número de controle (
NumCtrlIF) da mensagem corresponde a um envio no registro de envios, a mensagem vai para o motor que fez o envio. Esta regra roteia as respostas às mensagens que um motor enviou. - Mapa de titularidade. O Courier lê a conta creditada da mensagem: agência e conta, ou a conta de pagamento. Quando o mapa tem um dono para essa conta, a mensagem vai para o dono.
- Modo de entrega. Quando o mapa não tem dono, o Courier lê o modo de entrega declarado para o código da mensagem. Esta regra nunca se aplica aos códigos de dinheiro
STR0008,STR0008R1,STR0008R2,STR0010,STR0010R1,STR0010R2,STR0005R2,STR0007R2,STR0029R2,STR0034R2,STR0037R2,STR0041R2eSTR0051R2. - Retenção. Quando nenhuma regra decide, o Courier retém a mensagem.
DELIVERY_FAILED.
O Courier não empurra mensagens SPB aos motores. Cada motor pede as próprias mensagens ao Courier pela mesma interface SOAP que usa com a JD. O Courier responde com a mensagem mais antiga que espera por esse motor. Para os detalhes, veja Conectar um motor.
Modos de entrega
Um modo de entrega se aplica a um código de mensagem SPB. Um operador o declara com um motivo. Existem dois modos:ALL_ENGINES: a mensagem vai para cada motor habilitado que tem uma credencial do canal SOAP não revogada e não expirada. Quando nenhum motor tem uma, o Courier retém a mensagem com o motivoDELIVERY_FAILED.REFUSE: a mensagem não vai para nenhum motor. O Courier a guarda, com o estadoREFUSED.
422 JDC-0110. Uma declaração revogada continua legível como histórico. O trilho Pix não aceita declaração.
Reentrega
Um operador pode servir de novo uma mensagem SPB a um dos motores para os quais a mensagem foi roteada. O Courier não pergunta de novo à JD. O próximo pedido do motor recebe a mensagem guardada, com o número de sequência original. O seu operador informa um motivo, e o Courier o registra.Roteamento no trilho Pix
A JD envia as chamadas Pix de entrada da sua instituição ao endereço que o papel
pix-ingress serve. O Courier decide o dono durante a chamada, entrega a chamada ao motor e repassa à JD a resposta do motor.
A JD faz três tipos de chamada:
- Perguntas. A JD espera uma resposta antes de continuar: validação de conta, o bloqueio do débito do Pix Automático e as validações de autorização e de agendamento. O Courier não retém uma pergunta.
- Mensagens. A JD informa um fato: cash-in, devolução e os registros, as liquidações e os eventos do Pix Automático. O Courier pode reter uma mensagem.
- Validações de conta assíncronas. A JD pergunta sobre os créditos de vários pagamentos em uma chamada e recebe um resultado para cada crédito depois. Veja Validação de conta assíncrona.
Qual chave roteia cada chamada
Os seus ISPBs são os ISPBs participantes que o operador registra nos motores.
As chamadas do Pix Automático que seguem uma etapa anterior precisam de um registro dessa etapa. O Courier registra as etapas anteriores que entrega. Para os pagamentos em andamento antes de o Courier receber o Pix, cada motor declara as próprias etapas. Veja Conectar um motor.
O que a JD recebe
Quando o motor responde a uma mensagem com um status
5xx, 408 ou 429, o Courier repassa essa resposta à JD e retém a mensagem. O próximo reenvio da JD chega de novo ao motor. Quando o motor responde com um status 3xx, 401 ou 403, ou não responde, a JD recebe 503 e o Courier retém a mensagem.
Validação de conta assíncrona
O Courier guarda a chamada da JD e responde202 na hora, com um identificador de validação próprio. Depois, ele roteia cada crédito pela conta do recebedor dele. Cada motor dono recebe a sua parte dos créditos no caminho /v1/webhooks/validates/async do endereço Pix dele. O motor responde 202 para aceitar a sua parte.
O motor envia à JD o resultado de cada crédito pelo trânsito Pix. O Courier coloca o próprio identificador de validação no resultado e repassa o resultado à JD. Um segundo resultado diferente para o mesmo crédito recebe 409 JDC-0503. O primeiro resultado prevalece.
O próprio Courier recusa um crédito nestes casos:
- Nenhum motor é dono da conta do recebedor:
AC03, na hora. - O motor dono está desabilitado ou não tem endereço Pix:
AB09, na hora. - O Courier não consegue ler o mapa de titularidade, ou o motor dono não aceita a sua parte: o Courier tenta de novo. Quando uma tentativa falha 10 minutos ou mais depois da chegada da chamada da JD, o Courier recusa o crédito com
AB09.
Mensagens retidas
Uma mensagem retida fica no banco de dados do Courier com o motivo. O Courier não a credita, não a devolve ao BACEN e não a apaga. O seu operador lista as mensagens retidas, da mais antiga para a mais nova, pela API de retidas. A lista mostra o motivo e os horários. Para o motivo
ACCOUNT_UNASSIGNED, ela também mostra a chave que não tem dono, quando a mensagem tem uma. Ela não mostra o conteúdo da mensagem.
Como uma mensagem retida sai
O Courier verifica de novo uma mensagem retida no máximo uma vez por minuto. Quando a causa deixa de existir, a mensagem sai por conta própria. Por exemplo, um motor reivindica a conta, ou um operador atribui a conta ou habilita de novo o motor dono. No Pix, um reenvio da JD também roda a decisão de novo. Um operador também pode pedir uma reavaliação com um motivo. O Courier registra quem pediu, quando e por quê, e verifica a mensagem primeiro. A reavaliação roda as mesmas regras de roteamento de uma mensagem nova. O operador nunca escolhe o motor. O Courier recusa uma reavaliação para o motivoCLASSIFICATION_FAILED com 422 JDC-0204.
Quando o Courier libera uma mensagem Pix, a JD não está na chamada. O Courier guarda a resposta do motor e a entrega à JD no próximo reenvio.
Envios à JD e o registro de envios
Os motores enviam as próprias mensagens SPB à JD pelo papel
spb-sender. O Courier grava cada envio no registro de envios antes de o envio sair. Depois, ele envia a mensagem à JD uma vez e repassa ao motor a resposta da JD. O Courier nunca envia uma mensagem de novo por conta própria.
O registro de envios grava um destes resultados para cada envio:
O Courier aceita cada número de controle uma vez para cada tenant. Um envio com o resultado
NOT_SENT não conta. Um segundo envio do mesmo número de controle não chega à JD.
Um envio indeterminado recebe a resposta quando o motor consulta a JD sobre ele pelo Courier. Para tratar os envios indeterminados que restam, veja Operação diária.
