> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Operação diária

> O trabalho diário do operador do JD Courier: motores e as credenciais deles, o mapa de titularidade, movimentações de contas, mensagens retidas, a parada do canal SPB e as recusas de leitura, a suspensão do trilho SPB, envios indeterminados, conciliação e a exportação de tempos.

Esta página é para o operador da sua instituição que opera o Courier. Cada tarefa usa a API do operador que o papel `admin` serve.

A sua própria aplicação do Access Manager pode chamar a API do operador quando tem o papel `admin` do Access Manager. Uma aplicação que também é sujeito de credencial de um motor recebe `403`. A prontidão do tenant e as rotas do systemplane aceitam apenas uma pessoa.

No modo single-tenant, toda requisição do operador age como o tenant `local`, qualquer que seja o tenant que o token nomeia, se houver. No modo multi-tenant, o tenant vem do token validado.

## Motores

***

Registre cada motor uma vez, pela [API de motores](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/register-an-engine.md). Um motor tem um ID, um nome de exibição, os ISPBs participantes e os endereços em que recebe as chamadas Pix e os TEDs entre cores.

Não existe exclusão. Para parar um motor, [desabilite-o](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/enable-disable-or-rename-an-engine.md) com um motivo. Um motor desabilitado não recebe novas entregas nem novas chaves. Ele mantém as chaves de que é dono, então as novas mensagens dessas chaves ficam retidas até você habilitar o motor de novo ou mover as chaves.

Um motor tem uma aplicação do Access Manager para cada produto que chama o Courier. O registro vincula a primeira. [Vincule](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/bind-one-more-credential-to-the-engine.md) cada uma das outras e [desvincule](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/unbind-one-of-the-engines-credentials.md) uma aplicação que o motor não usa mais. Um desvínculo não revoga nada: exclua uma aplicação vazada no seu Access Manager.

Você também emite e revoga a [credencial do canal SOAP](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/issue-the-engine-s-soap-channel-credential.md) e a [credencial do trânsito Pix](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/issue-the-engines-pix-transit-credential.md) de cada motor. Registrar um motor, vincular ou desvincular uma aplicação e emitir ou revogar uma credencial exigem o papel `admin` do Access Manager.

## O mapa de titularidade

***

Um motor pode reivindicar as contas que abre, o CNPJ de cada cobrador do Pix Automático que atende e as próprias recorrências. [Atribua](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/assign-a-key-to-an-engine.md) a cada motor as chaves que ele não reivindica. Uma mensagem para uma conta sem dono fica retida.

Para encontrar o dono de uma chave, [liste as atribuições](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/list-ownership-assignments.md) com o tipo e o valor da chave. Para ler as mudanças de uma chave, use o [histórico de auditoria](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/ownership-history-for-one-key.md) dela.

Quando você [remove uma chave](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/unassign-a-key.md), um motor pode reivindicá-la, e a primeira reivindicação a leva.

## Mover contas entre motores

***

Uma onda de migração move contas de um motor para outro. [Mova cada chave](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/move-a-key-to-another-engine.md) com um motivo. O Courier registra o dono anterior e o motivo no histórico de auditoria. Depois da movimentação, a próxima consulta responde o novo dono.

Algumas mensagens não seguem a movimentação:

* No SPB, a resposta a um envio vai para o motor que fez o envio.
* No Pix, uma mensagem que uma tentativa anterior enviou ao dono anterior fica retida. O Courier não a envia ao novo dono.
* No Pix Automático, um débito, o estorno dele e um status de cancelamento do agendamento seguem a etapa anterior deles. Veja [Qual chave roteia cada chamada](https://docs.lerian.studio/pt/interfaces/jd-courier/jd-courier-routing.md#which-key-routes-each-call).

## Mensagens retidas

***

Verifique as [mensagens retidas](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/list-retained-messages.md) todos os dias. Para estes motivos, corrija a causa:

| Motivo | O que fazer |
| - | - |
| `ACCOUNT_UNASSIGNED` | Atribua ao motor dela a chave que a lista mostra, ou peça ao motor para reivindicá-la. No Pix Automático, peça ao motor para declarar a etapa anterior. |
| `DELIVERY_FAILED` | Verifique o motor, o endereço Pix dele e a credencial dele. |
| `UNRECOGNIZED_TYPE` | Para um código que não é de dinheiro, declare um [modo de entrega](https://docs.lerian.studio/pt/interfaces/jd-courier/jd-courier-routing.md#delivery-modes) para o código. |
| `OWNERSHIP_DECISION_UNAVAILABLE` | Confirme que o banco de dados do Courier está disponível e que os motores declaram os ISPBs participantes. |

Quando a causa deixa de existir, a mensagem sai por conta própria na próxima verificação. Para verificá-la primeiro, [peça uma reavaliação](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/run-a-retained-message-s-routing-decision-again.md) com um motivo. Você não escolhe o motor: as regras de roteamento o escolhem.

## Parada do canal SPB

***

O papel `spb-consumer` para o canal SPB quando uma leitura da JD pode ter removido uma mensagem que o Courier não recebeu. Por exemplo, a JD responde com um status `5xx` diferente de `503`, ou a leitura dá timeout depois de a requisição sair. A parada interrompe as mensagens SPB de entrada para cada motor.

Enquanto o canal está parado, o Courier não lê da JD, não roteia e não verifica de novo as mensagens SPB retidas. Um reinício não levanta a parada.

1. Leia o motivo da parada na [lista de canais](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/list-the-registered-rails-their-declared-properties-and-their-state.md).
2. Verifique com a JD se a leitura removeu uma mensagem que o Courier não recebeu.
3. [Levante a parada](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/lift-a-durable-channel-halt.md) com uma nota de 10 a 500 caracteres sobre o que você verificou.

O Courier não consegue obter de novo uma mensagem removida. Peça a mensagem à JD e entregue-a à equipe do motor dono da conta dela.

## Recusas de leitura do SPB

***

Quando a JD recusa a credencial JD do Courier, ou falha antes de ler, o papel `spb-consumer` não guarda nada e espera. A verificação `rail_spb` do `/readyz` informa `degraded`, com o motivo `vendor_refused` para uma credencial recusada e `vendor_unavailable` para uma falha da JD. Um log de aviso aponta o código da JD. A próxima leitura que a JD aceita limpa o motivo.

## Suspender o trilho SPB

***

Para que o Courier pare de ler as mensagens SPB, [suspenda o trilho SPB](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/suspend-a-rail-for-the-caller-s-tenant.md) com um motivo. A JD guarda as mensagens até você [ativar o trilho](https://docs.lerian.studio/pt/interfaces/jd-courier/jd-courier-deployment.md#activate-the-rails) de novo. O histórico e as mensagens retidas continuam. O [histórico de ativação](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/a-rails-activation-history-for-the-callers-tenant.md) lista cada ativação e cada suspensão, com o operador e o motivo de cada suspensão.

Você não pode suspender o trilho Pix. A requisição responde `422 JDC-0304`. Para parar o Pix, peça à JD que pare de enviar as chamadas Pix ao Courier.

## Envios indeterminados

***

Um envio indeterminado é um envio SPB que saiu do Courier sem um veredito da JD. Uma consulta do motor com `ConsultaNumCtrlIF` pode resolvê-lo. Para ver os envios que continuam abertos, [liste o registro de envios](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/list-spb-sends.md) com `open=true`.

Quando você encontra o resultado fora do Courier, por exemplo pelo motor ou pelo suporte da JD, [feche o envio manualmente](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/close-an-indeterminate-send-by-hand.md). Informe uma referência à evidência e uma nota.

O fechamento é apenas um registro:

* O resultado continua `INDETERMINATE`.
* O número de controle continua bloqueado para um novo envio.
* Uma consulta posterior do motor ainda vai para a JD.
* O envio não conta mais como um envio aberto.

O Courier não tem fechamento como `NOT_SENT`. Se um operador errasse sobre um envio que "nunca saiu", um segundo envio do mesmo número de controle poderia chegar ao BACEN.

## Conciliação

***

O papel `admin` roda um ciclo de conciliação para cada trilho a cada minuto. Um ciclo verifica uma janela de tempo passada. O [relatório de conciliação](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/reconciliation-report-for-a-rail.md) mostra estas contagens:

* **Esperadas**: os resultados que as mensagens da janela esperam.
* **Concluídas**: as entregas aos motores, para cada motor.
* **Retidas**: as mensagens que continuam retidas.
* **Recusadas**: as mensagens recusadas por um modo de entrega.

A divergência é a contagem esperada menos as outras três. Uma divergência diferente de zero é uma possível mensagem perdida: investigue-a. O relatório também lista os envios SPB que a JD aceitou e cuja resposta não chegou dentro da janela de retorno. Para rodar um ciclo agora, [dispare um](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/trigger-a-reconciliation-cycle-for-a-rail.md). Um trilho que já roda um ciclo responde `409 JDC-0601`.

O relatório informa os achados abertos do trilho, do mais antigo para o mais recente. Um achado continua aberto até que um operador o feche. Depois de investigar um achado, [feche-o](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/close-a-reconciliation-finding.md):

* Informe uma nota de 10 a 500 caracteres sobre o que você verificou.
* Informe o `updatedAt` do achado, como você o leu. Se um ciclo encontrou o achado de novo depois da sua leitura, o fechamento responde `409 JDC-0008`. Leia o achado de novo.

Um achado fechado continua no histórico. O relatório também lista os achados fechados, do fechamento mais recente para o mais antigo, com quem fechou cada um, quando e a nota. Para ler fechamentos mais antigos, envie `closedCursor`. Quando um ciclo posterior encontra uma nova divergência, ele abre um novo achado.

Uma divergência de contagem é um achado para cada trilho enquanto está aberta: cada ciclo divergente antes do fechamento aponta o mesmo achado de novo. Para ver esses ciclos, [liste os ciclos do achado](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/cycles-a-count-divergence-merged.md).

## Exportação de tempos das transações

***

O Courier fornece os instantes que apenas ele vê. [Exporte-os](https://docs.lerian.studio/pt/reference/interfaces/jd-courier/export-the-per-transaction-instants-the-courier-observed.md) para um trilho e uma janela de tempo:

* Quando a mensagem chegou.
* Quando a decisão de titularidade apontou o motor.
* No Pix, quando o Courier deu a resposta à JD.

Um instante que o Courier não viu é `null`. Para ler uma mensagem, informe também o `endToEndId` ou a chave natural dela. No Pix, correlacione uma transação pelo `endToEndId` dela. Uma validação de conta assíncrona dá uma linha para cada crédito.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.