...
O desenho esquemático abaixo mostra como esse processo funciona:<figure markdown>
...
...
{ align=left }
<figcaption>Figura 2: Fluxo do processo de conciliação</figcaption>
</figure>
Conciliação
<figure markdown>
...
Conciliação
O processo de conciliação consiste em encontrar os reportes feitos por duas instituções que representem a requisição e a devida resposta de uma transação de negócio. O processo acontece de maneira assíncrona após a recepção do reporte, e consiste em se buscar um reporte que contenha o mesmo valor no atributo fapiInteractionId
. Se esse reporte-par não existir, o reporte corrente é considerado não pareado (status UNPAIRED
). Caso esse registro exista, a segunda etapa de validação busca conciliar os campos receiverOrgId
, transmitterOrgId
, statusCode
, httpMethod
e endpoint
. Se esses campos estiverem com valores iguais nos dois reportes, ambos serão considerados conciliados (status PAIRED
). Caso esses dados não sejam iguais, eles são considerados pareados e inconsistentes (status PAIRED_INCONSISTENT
), e portanto divergentes. Existe um caso onde o client não gera o fapiInteractionId
e não recebe uma resposta do server (p/ex: em casos de timeout - code 408 - ou erros de servidor - série 5xx), e portanto o campo fapiInteractionId
não será enviado pelo client. Nesse caso, existe uma validação na entrada do reporte que verifica o campo statusCode
: caso o valor seja diferente de 408 ou da série 5xx, esse reporte será marcado imediatamente como DISCARDED
. Caso contrário, ele será enviado para validação e será conciliado como SINGLE
, uma vez que não existirá uma contraparte possível.
Para maiores informações sobre cada status, consulte o tópico Ciclo de vida do reporte mais abaixo. O fluxo da regra de conciliação é descrita no diagrama a seguir:
...
Nota |
---|
Importante Os participantes devem sempre que possível enviar os reportes dos dois lados, seja como server ou como client, mesmo que a chamada não tenha sido bem sucedida, uma vez que elas serão usadas para fins de controle estatístico e de monitoramento do ecossistema (objetivo principal da plataforma), incluindo casos de erros http séries 5xx, 4xx, etc. |
...
Registros com os status UNPAIRED
e PAIRED_INCONSISTENT
são considerados divergentes e deverão passar pelo processo de resolução. Este processo será oportunamente definido pelos GT responsáveis.
<figure markdown>
...
Ciclo de vida do reporte
O diagrama abaixo ilustra as interações entre os status de um reporte</figcaption>
</figure>reporte:
...
Um reporte deverá sempre estar em um dos seguinte status:
...