> 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

### Introdução

A API (Application Programming Interface) pública do CUSP permite a integração de sistemas externos para gerir e consultar três entidades nucleares do catálogo: organizações, 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):**&#x20;este método de autenticação requer que a aplicação forneça uma\
API Key&#x20;exclusiva (providenciada na subscriçã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.

#### Organizações (`organisation`)

O campo&#x20;`locale` padrão é&#x20;`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 organizações 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 organizações</td></tr><tr><td><code>GET</code></td><td><code>/organisation/config</code></td><td>Listar as organizações</td></tr><tr><td><code>GET</code></td><td><code>/organisation/{id}</code></td><td>Obter organizações por id</td></tr><tr><td><code>PUT</code></td><td><code>/organisation/{id}</code></td><td>Edita uma organização</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 organizações 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>POST</td><td>/organisation/search</td><td>Pesquisa organizações válidas na data presente</td></tr><tr><td>POST</td><td>/organisation/config/search</td><td>Pesquisa organizações</td></tr><tr><td>POST</td><td>/organisation/validate</td><td>Valida um DTO de entidade</td></tr></tbody></table>

**Identificador:** Formato&#x20;`ORG-XXXXXXXXX`&#x20;(por ex.:&#x20;`ORG-000009069`)

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

O campo&#x20;`locale` padrão é&#x20;`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>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 (&#xD;`/service`&#xD;)

O campo&#x20;`locale` padrão é&#x20;`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" %}

Este contéudo também pode ser descarregado em versão pdf:

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