Ambientes de Homologação e Produção

Detalhamento técnico - Ambientes Homologação e Produção

Este documento apresenta todos os requisitos técnicos necessários para conectividade da instituição financeira à plataforma de Pre-matching nos ambientes de homologação e produção.

Conectividade

  • Para ter acesso à API da plataforma e ao acesso WEB, sua instituição deverá possuir acesso a Rede de Telecomunicações para o mercado (RTM).
  • A plataforma do Pre-matching permite acesso de duas maneiras: WEB e HTTP REST API.
  • Todas as solicitações à API e WEB devem ser realizadas através de conexão HTTPS com TLS 1.2.
  • O acesso através de HTTP REST API exige um “client_id” e uma chave de acesso chamado de “client_secret”. Cada instituição financeira obrigatoriamente deverá obter seu “client_id” e sua chave de acesso “client_secret” através do portal do Selic utilizando a aplicação “Gerenciador de Acesso”.”.
        client_id – Identificação da instituição financeira para acesso ao serviço.
        client_secret – Credencial (senha) de acesso exclusiva da instituição financeira à plataforma.
      

Host Origem: Rede da Instituição financeira

Host Destinos: APIs/WEB--> Detalhes abaixo....

Port: 443 (TLS 1.2)

Regras de firewall

Ambiente URL IP Principal IP Contingência
Homologação WEB https://pre-matching-hml.rtm.selic.gov.br 10.228.6.2 --
Homologação API https://api-pre-matching-hml.rtm.selic.gov.br 10.228.6.4 --
Produção WEB https://pre-matching.rtm.selic.gov.br 10.228.7.2 10.232.4.2
Produção API https://api-pre-matching.rtm.selic.gov.br 10.228.7.4 10.232.4.4

Acessando através da API

O acesso à API da plataforma de Pre-matching exige a obtenção de um “client_id” e um “client_secret”.

Estes dados podem ser acessados diretamente por cada instituição através do portal do Selic. Para o acesso a esta funcionalidade a instituição deve ter acesso as funções do sistema Pre-matching habilitadas previamente.

Caso seu perfil não seja de administrador você deve solicitar para o responsável da sua instituição que as habilite no sistema Logon associando a seu usuário. O Acesso é realizado através do Portal Selic na RTM, menu Logon > API's.

Abaixo segue uma figura apresentando a aplicação “Gerenciador de acesso” dentro do portal do Selic:

Acessando através da WEB

O acesso pela interface WEB se dá exclusivamente através das URLs abaixo:

Ambiente URL
Homologação WEB https://pre-matching-hml.rtm.selic.gov.br/pre-matching-web/
Produção WEB https://pre-matching.rtm.selic.gov.br/pre-matching-web/

A autenticação do acesso web (iselic + usuário + senha) é a mesma utilizada atualmente pelos usuários do portal do Selic na RTM (Ex. https://hml.rtm.selic.gov.br/). O exemplo abaixo apresenta como será a tela de autenticação da parte web.

Autenticação à API

O método de autenticação disponível na API da plataforma de Pre-matching é o OAuth2 e HTTP padrão através de TOKEN JWT.

Para iniciar a comunicação com a plataforma e acessar as URLs protegidas da plataforma você necessitará recuperar um token de acesso válido.

Nas seções seguintes seguem alguns exemplos utilizando a aplicação cURL para o envio da requisição autenticada para exemplificar a solicitação de um token.

Nota: cURL é um aplicativo open source e não é suportado pelo Selic. Ele é citado apenas para demonstração das chamadas HTTP.

Recuperação/Solicitação de um token JWT para uso na API.

As variáveis são identificadas por ${}. Exemplo: ${client_id} é a variável que identifica o cliente da API da sua instituição, como por exemplo "desenv" nos ambientes de desenvolvimento. Ex

        curl -X POST \
        https://pre-matching-hml.rtm.selic.gov.br/auth/realms/logon/protocol/openid-connect/token \
         -H 'Accept: */*' \
         -H 'Accept-Encoding: gzip, deflate' \
         -H 'Content-Type: application/x-www-form-urlencoded' \
         -H 'Host: pre-matching-hml.rtm.selic.gov.br' \
         -d 'grant_type=client_credentials&client_id=${client_id}&client_secret=${client_secret}
      

Simulação de envio (Request)

        curl -X POST \
        https://pre-matching-hml.rtm.selic.gov.br/auth/realms/logon/protocol/openid-connect/token \
        -H 'Accept: */*' \
        -H 'Accept-Encoding: gzip, deflate' \
        -H 'Content-Type: application/x-www-form-urlencoded' \
        -H 'Host: pre-matching-hml.rtm.selic.gov.br' \
        -d 'grant_type=client_credentials&client_id=desenv&client_secret=secret'
      

Simulação de comunicação à API

Após recuperação do TOKEN válido, você deve utilizá-lo nas chamadas à API, seguindo o exemplo abaixo

        curl -X GET \
        https://api-pre-matching-hml.rtm.selic.gov.br/pre-matching/api/v1/negocios/202004010000001 \
        -H "accept: application/json" \
        -H 'Accept-Encoding: gzip, deflate' \
        -H 'Authorization: Bearer eyJhbGciOiJ...ctSsFxQ' \
        -H 'Host: api-pre-matching-hml.rtm.selic.gov.br'
      

Rate Limiting – Limitação de requisições

A política de limitação (rate-limiting) funciona com base em cabeçalhos enviados na requisição. Todas as requisições de consulta, geração e atualização de TOKENS serão limitadas.

Portanto, atente-se a configuração do seu cliente da API evitando bloqueios de acesso à plataforma causada por excesso de requisições.

Inicialmente a pltaforma permitirá até 300 requisições por minuto.

As respostas do cabeçalho HTTP de qualquer requisição à API mostrarão o status atual do seu limite de requisições permitidas. Exemplo:

            curl -X GET \
            https://api-pre-matching-hml.rtm.selic.gov.br/pre-matching/api/v1/negocios/202004010000001 \
            -H "accept: application/json" \
            -H 'Accept-Encoding: gzip, deflate' \
            -H 'Authorization: Bearer eyJhbGciOiJ...ctSsFxQ' \
            -H 'Host: api-pre-matching-hml.rtm.selic.gov.br'
            HTTP/1.1 200 OK
            Date: Mon, 13 Jul 2020 09:27:06 GMT
            Status: 200 O
            RateLimit-Limit: 300
            RateLimit-Remaining: 10
            RateLimit-Reset: 60
      

Descrição:

RateLimit-Limit = O número máximo de requisições por minuto.

RateLimit-Remaining = O número de requisições restantes dentro da janela de limite atual.

RateLimit-Reset = O tempo em que o limite de requisições atual será reiniciado. (Em segundos).

Caso sua aplicação cliente exceda este limite, ela receberá um HTTP STATUS 429 informando que o limite máximo permitido foi ultrapassado. Exemplo:

            GET /obter-status/123
            Response:
            HTTP/1.1 429 Too Many Requests
            Content-Type: application/json
            Date: Mon, 13 Jul 2020 09:27:40 GMT
            Retry-After: Mon, 13 Jul 2020 09:27:40 GMT
            
            RateLimit-Limit: 300
            Ratelimit-Remaining: 0
            RateLimit-Reset: 60
            {
                "title": "Too Many Requests",
                "status": 429,
                "detail": "Você ultrapassou o número de requisições permitidas"
            }
        

Dica: Você pode adequar seu cliente de API para que verifique cada requisição os campos RateLimit-Limit ou Ratelimit-Remaining enviados no cabeçalho HTTP das respostas evitando o bloqueio temporário na plataforma.

Undefined