> For the complete documentation index, see [llms.txt](https://guias.mosaico.gov.pt/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guias.mosaico.gov.pt/plataformas-comuns-da-administracao-publica/catalogo-unico-de-servicos-publicos-cusp/quais-os-pre-requisitos-tecnicos-de-adesao/api-publica-do-cusp.md).

# API pública do CUSP

Gestão de entidades, pontos de atendimento eServiços públicos

### Introdução

A API (Application Programming Interface) pública do CUSP permite a integração de sistemas externos para gerir e consultar três registos nucleares do catálogo: entidades, pontos de atendimento e serviços públicos. Esta versão foi desenhada de forma minimalista, no sentido de se focar nos endpoints essenciais de consulta e criação.

* **Nome:** API Pública do CUSP
* **URL:** disponível brevemente
* **Clientes conhecidos (entidades e internos):**  &#x20;disponível brevemente
* **Equipa responsável:** ARTE - Agência para a Reforma Tecnológica do Estado, I.P.

### Autenticação

**Chaves de API (API Key):** este método de autenticação requer que a aplicação forneça uma API Key exclusiva (fornecida na adesão).

### Especificações da API

**Formato da informação**

* Dados estruturados
* Fonte: OpenAPI

**Especificações técnicas**

* Consulte o Swagger na área dos programadores

### Recursos

A API está em desenvolvimento contínuo, com melhorias incrementais ao nível da arquitetura, dos contratos de serviço e dos mecanismos de integração. Durante este período poderão ocorrer ajustes aos DTO (Data Transfer Objects), resultantes de otimizações do modelo de domínio, para garantir maior consistência interna ou acomodar novos requisitos funcionais.

Até à estabilização da versão final, as integrações realizadas devem ser consideradas suscetíveis a alterações. Recomenda-se que os consumidores prevejam capacidade de adaptação a eventuais atualizações nos contratos.

#### Entidades (`organisation`)

O campo `locale` padrão é `PT` quando não especificado.

<table><thead><tr><th width="249">Método</th><th>Endpoint</th><th>Descrição</th></tr></thead><tbody><tr><td><code>GET</code></td><td><pre><code>/organisation
</code></pre></td><td>Listar as entidades válidas na data presente</td></tr><tr><td><code>POST</code></td><td><code>/organisation</code></td><td>Iniciar processo de criação de entidades</td></tr><tr><td><code>GET</code></td><td><code>/organisation/config</code></td><td>Listar as entidades</td></tr><tr><td><code>GET</code></td><td><code>/organisation/{id}</code></td><td>Obter entidades por id</td></tr><tr><td><code>PUT</code></td><td><code>/organisation/{id}</code></td><td>Edita uma entidades</td></tr><tr><td><code>POST</code></td><td><code>/organisation/{id}/version</code></td><td>Iniciar processo de criação de uma nova entidade</td></tr><tr><td><code>GET</code></td><td><code>/organisation/{identifier}/identifier</code></td><td>Obter entidades ativas por identificador (<code>ORG-XXXXXXXXX</code>)</td></tr><tr><td><code>GET</code></td><td><code>/organisation/{identifier}/versions</code></td><td>Obter as versões de uma entidade por identificador</td></tr><tr><td><code>POST</code></td><td><code>/organisation/search</code></td><td>Pesquisa entidades válidas na data presente</td></tr><tr><td><code>POST</code></td><td><code>/organisation/config/search</code></td><td>Pesquisa entidades</td></tr><tr><td><code>POST</code></td><td><code>/organisation/validate</code></td><td>Valida um DTO de entidade</td></tr></tbody></table>

**Identificador:** Formato `ORG-XXXXXXXXX` (por ex.: `ORG-000009069`)

#### Pontos de atendimento (`/point-of-care`)

O campo `locale` padrão é `PT` não especificado.

<table><thead><tr><th width="249">Método</th><th>Endpoint</th><th>Descrição</th></tr></thead><tbody><tr><td>GET</td><td><code>/point-of-care</code></td><td>Listar os pontos de atendimento válidos na data presente</td></tr><tr><td>POST</td><td><code>/point-of-care</code></td><td>Iniciar processo de criação de pontos de atendimento</td></tr><tr><td>GET</td><td><code>/point-of-care/config</code></td><td>Listar os pontos de atendimento</td></tr><tr><td>GET</td><td><code>/point-of-care/{id}</code></td><td>Obter pontos de atendimento por id</td></tr><tr><td>PUT</td><td><code>/point-of-care/{id}</code></td><td>Edita um ponto de atendimento</td></tr><tr><td>GET</td><td><code>/point-of-care/{id}/version</code></td><td>Iniciar processo de criação de um novo ponto de atendimento com base num já existente</td></tr><tr><td>POST</td><td><code>/point-of-care/{identifier}/identifier</code></td><td>Obter o pontos de atendimento por identificador (<code>POC-XXXXXXXXX</code>)</td></tr><tr><td>POST</td><td><code>/point-of-care/search</code></td><td>Pesquisa pontos de atendimento válidos na data presente</td></tr><tr><td>POST</td><td><code>/point-of-care/config/search</code></td><td>Pesquisa pontos de atendimento</td></tr><tr><td>POST</td><td><code>/point-of-care/validate</code></td><td>Validar um ponto de atendimento</td></tr></tbody></table>

#### Serviços (`/service`)

O campo `locale` padrão é `PT` quando não especificado.

| Método | Endpoint                           | Descrição                                                              |
| ------ | ---------------------------------- | ---------------------------------------------------------------------- |
| GET    | `/service`                         | Listar os serviços válidos na data presente                            |
| POST   | `/service`                         | Iniciar o processo de criação de serviços                              |
| GET    | `/service/config`                  | Listar os serviços                                                     |
| GET    | `/service/{id}`                    | Obter os serviços por id                                               |
| PUT    | `/service/{id}/id`                 | Edita um serviço                                                       |
| POST   | `/service/{id}/version`            | Iniciar o processo de criação de uma nova versão de serviço            |
| GET    | `/service/{identifier}/identifier` | Obter os serviços ativos por identificador (&#xD;`SRV-XXXXXXXXX`&#xD;) |
| GET    | `/service/{identifier}/channels`   | Obter os serviços ativos por identificador (canais)                    |
| POST   | /service/search                    | Pesquisa os serviços válidas na data presente                          |
| POST   | /service/config/search             | Pesquisa um serviços                                                   |
| POST   | /service/validate                  | Validar um serviço                                                     |

API pública do CUSP:

{% file src="/files/CmdFJuHmPlQ0sLpObgqo" %}
