Primeiros Passos
Bem-vindo à documentação da API XD Soba! Este guia vai ajudá-lo a começar com a nossa API, abordando autenticação, utilização básica e padrões comuns.
Introdução
A API do XD Soba foi desenvolvida para facilitar a integração e o acesso programático aos principais serviços e dados da aplicação XD Soba.
Através desta API, é possível realizar operações como autenticação, consulta de dados, registo de acessos à base de dados e execução de outras tarefas essenciais, tudo de forma segura e eficiente.
Este guia destina-se a qualquer utilizador ou equipa técnica que pretenda configurar e utilizar a API do XD Soba, apresentando passo a passo o processo de obtenção de credenciais, configuração de acesso e execução de pedidos reais sobre a plataforma.
Pré-requisitos
Antes de utilizar a API, é necessário ter uma conta XD Cloud ativa.
Criação de Conta XD Cloud através do XD Gestão Comercial
Siga os passos abaixo para criar a sua conta XD Cloud:
Passo 1 – Aceder ao Menu Smart Connect
Abra a aplicação XD Gestão Comercial, selecione o separador "Sistema" e clique no ícone "Smart Connect".

Passo 2 – Iniciar a Configuração de uma Nova Conta XD Cloud
No separador Smart Connect, clique no botão correspondente ao XD Cloud (ícone da nuvem).

Passo 3 – Iniciar o Assistente
Será aberto o Assistente para configurar o XD Cloud. Clique em "Seguinte" para avançar.

Passo 4 – Definir Opções da Conta
- Selecione "Criar nova conta".
- Escolha a funcionalidade pretendida (por exemplo, "Resumo online").
- Marque a opção "Aceito instalar o serviço XD Web API" (se aplicável).
- Clique em "Seguinte".

Passo 5 – Inserir Credenciais da Conta
- Introduza a senha da conta.
- Indique o nome da loja.
- Clique em "Processar".

Passo 6 – Processamento da Configuração
Aguarde enquanto o sistema processa a configuração e instala os serviços necessários.

Passo 7 – Conclusão do Processo
No final, verifique o relatório de sucesso e clique em "Terminar" para concluir.

Passo 8 – Confirmação da Conta Ativa
Volte ao separador Smart Connect e confirme que a conta XD Cloud aparece como ativa.

Configurar a Ligação MySQL no Frontend do XD Soba
Configurar a ligação da base de dados MySQL através do formulário de registo no frontend do XD Soba.
Fluxo de Configuração:
- Aceder ao formulário de autenticação no frontend do XD Soba em https://xdsoba.com/ e preencher os dados de acesso.

Caso já tenha uma conta, mas a ligação ainda não esteja configurada, o sistema encaminhá-lo-á automaticamente para o formulário de registo da ligação, conforme ilustrado na imagem seguinte:

- Preencher os dados de ligação ao servidor no primeiro passo do registo:
- Servidor: Endereço do servidor MySQL (ex: cloudserverxd0003.ddns.net ou IP do servidor)
- Porta: Porta do MySQL (normalmente 3306)
- Base de Dados: Nome da base de dados MySQL específica do tenant XDAO.5805
- Utilizador: Nome de utilizador MySQL com permissões de acesso à base de dados
- Password: Password do utilizador MySQL
- Opções Extras: (opcional) Opções adicionais de ligação se necessário
- Submeter o formulário - O sistema:
- Guardará automaticamente a cadeia de ligação no Azure Key Vault com a chave XDAO.5805
- Avançará para o próximo passo (configuração de fuso horário)
- Após completar o registo, a ligação estará configurada e o erro deixará de ocorrer
- Configuração Fuso Horário - Opcionalmente.
A configuração do fuso horário é um passo opcional que pode ser realizado após a configuração da ligação ou a qualquer momento posterior através do menu de Diversos.

Para definir o seu fuso horário manualmente, siga estes passos:
- Navegue até ao menu Diversos.
- Selecione a opção Geral.
- No menu superior da página, clique em Fuso Horário.
- Escolha o fuso horário desejado na lista e guarde a alteração.
Para configurar a ligação à base de dados, precisa de ter à mão:
- Servidor MySQL: Endereço IP ou hostname do servidor MySQL
- Porta: Porta de acesso ao MySQL (padrão: 3306)
- Nome da Base de Dados: Nome da base de dados MySQL específica do tenant
- Utilizador MySQL: Nome de utilizador com permissões de acesso à base de dados
- Password MySQL: Password do utilizador
Autenticação e Obtenção do Token
Após criar a conta XD Cloud, efetue o login para obter o token de autenticação que será utilizado no acesso aos endpoints do XD Soba.
Passos para efetuar o login:
- Aceda ao endereço: https://api.xdsoba.com/swagger
- No menu da API, selecione o endpoint
/gateway/auth/login. - Preencha os campos no corpo do pedido (request body):
"user": Introduza a licença (conta XD Cloud)."password": Introduza a sua palavra-passe.
- Clique em Execute para submeter o pedido.

Depois de executar o login com sucesso, irá receber uma resposta com o token.

Deve utilizar sempre a sua própria licença e password configurada no XD Gestão Comercial.
Como Utilizar o Token
Em todos os pedidos aos endpoints da API, deverá incluir o token no cabeçalho da requisição:

curl -X GET "https://api.xdsoba.com/gateway/item" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
Exemplos de Utilização dos Endpoints
Depois de concluir todos os passos de configuração (criação da conta XD Cloud, login e configuração de acesso à base de dados), já pode utilizar os endpoints do XD Soba para aceder aos dados e funcionalidades disponíveis.
Exemplo 1: Consulta de Artigos (Items)

- No Swagger, selecione o endpoint
GET /gateway/item. - Preencha os parâmetros desejados (opcional):
skip: Número de registos a ignorar (útil para paginação).pageSize: Quantidade de registos a retornar por página.itemGroupId: Filtro por família.
- Clique em Execute para enviar o pedido.
Se tudo estiver correto (e o token de autenticação tiver sido colocado no cabeçalho Authorization), irá receber uma resposta com a lista de artigos disponíveis.

Observações de Segurança
- Nunca partilhe os seus dados de acesso.
- Não guarde credenciais em ficheiros partilhados.
- Em caso de dúvida, contacte o suporte XD.
Autenticação
Todos os pedidos à API requerem autenticação usando JWT (JSON Web Tokens). Para autenticar:
- Envie um pedido POST para
/gateway/auth/logincom as suas credenciais - Use o token devolvido no cabeçalho
Authorizationpara os pedidos subsequentes
curl -X POST "https://api.xdsoba.com/gateway/auth/login" \
-H "Content-Type: application/json" \
-d '{"user": "seu_utilizador", "password": "sua_palavra_passe"}'
Inclua o token nos seus pedidos:
curl -X GET "https://api.xdsoba.com/gateway/item" \
-H "Authorization: Bearer seu_token_aqui"
URL Base
Todos os endpoints da API são relativos ao URL base:
https://api.xdsoba.com/gateway
Cabeçalhos Comuns
Inclua estes cabeçalhos nos seus pedidos:
Authorization: Bearer <token>- Obrigatório para endpoints autenticadosContent-Type: application/json- Obrigatório para pedidos POST/PUTAccept: application/json- Recomendado para todos os pedidos
Limitação de Pedidos
Para garantir uma utilização justa e estabilidade do sistema, implementamos limitação de pedidos:
- 100 pedidos por minuto por chave de API
- Os cabeçalhos de limitação estão incluídos nas respostas:
X-RateLimit-Tier: Nome do TierX-RateLimit-Limit-PerMinute: Máximo de pedidos por janelaX-RateLimit-Window: Tempo até a limitação ser reiniciada
Tratamento de Erros
A API usa códigos de estado HTTP padrão e devolve detalhes do erro no corpo da resposta:
{
"status": 404,
"title": "Not Found",
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
"errors": [
{
"code": "Item.NotFound",
"description": "Item not found.",
"type": 2,
"furtherInformations": null
}
]
}
Códigos de estado comuns:
200 OK: Pedido bem-sucedido201 Created: Recurso criado com sucesso400 Bad Request: Parâmetros de pedido inválidos401 Unauthorized: Autenticação inválida ou em falta403 Forbidden: Permissões insuficientes404 Not Found: Recurso não encontrado429 Too Many Requests: Rate limit excedido500 Internal Server Error: Erro do lado do servidor
Próximos Passos
Agora que compreende o básico, pode:
- Explorar a Referência da API para documentação detalhada dos endpoints
- Consultar o Guia de Utilização da API para melhores práticas e padrões comuns
- Visitar o Guia de Resolução de Problemas se encontrar algum problema