EA-G-OP-SO-AC - Catálogo de APIs ESGFarmGuard

image.jpeg

Catálogo de APIs ESGFarmGuard

Código do Documento: 

EA-G-OP-SO-AC

Versão:

1.0

Elaborado Por: 

Rafael Quadros

Data de Revisão:

14/04/2026

Aprovado Por:


Status:

Ativo

1. Visão Geral

Esta documentação descreve as rotas públicas de integração do ESG Farm Guard para consumo por clientes externos. O foco é exclusivamente operacional: autenticação, headers, erros, endpoints disponíveis e exemplos mínimos de uso.

Escopo restrito ao data plane com prefixo /v1/.

2. Base URL e Escopo

3. Autenticação

Todas as rotas protegidas exigem um token de integração ativo. O cliente pode autenticar a requisição usando um dos headers abaixo:

Header

Formato

Uso

X-Integration-Key

<prefix.secret>

Forma preferencial para integração

Authorization

Bearer <prefix.secret>

Alternativa compatível

Regras essenciais:

3.1 Produção

Em produção, o cliente consome o subdomínio dedicado da integração usando somente o token ativo.

3.2 Sandbox

Em sandbox ou acesso direto à API, o comportamento é o mesmo: o cliente deve enviar um dos tokens ativos liberados para a empresa.

4. Header de Resposta

Chamadas autenticadas retornam o header abaixo para rastreabilidade:

5. Contrato de Erros

Status

Descrição

400

Payload inválido ou parâmetros inconsistentes

401

Token ausente, inválido, expirado ou inativo

403

Cliente inativo, assinatura ausente/inativa ou escopo não permitido

404

Entidade inexistente ou fora do tenant autenticado

429

Rate limit ou quota excedida

Com o modo MVP ativo, erros 403 por escopo/assinatura e 429 por limites podem deixar de ocorrer nas rotas liberadas.

7. Endpoints

Observações importantes:

GET /v1/health/

Resposta


{
  "status": "ok",
  "domain": "integration-public"
}


GET /v1/auth-context/

Resposta


{
  "status": "ok",
  "client_id": "00000000-0000-0000-0000-000000000001",
  "customer_id": "customer-123",
  "api_key_id": "00000000-0000-0000-0000-000000000010",
  "api_key_prefix": "esg_abc123",
  "environment": "sandbox",
  "scope_code": "integration.auth_context.read",
  "endpoint_code": "auth-context-v1"
}


GET /v1/properties/

Exemplo de requisição


GET /v1/properties/?search=Farm&page=1&page_size=50
X-Integration-Key: esg_abc123.secret-value


GET /v1/properties/{id}/

GET /v1/consultants/

GET /v1/consultants/{id}/

GET /v1/producers/

GET /v1/producers/{id}/

GET /v1/groups/

GET /v1/users/

GET /v1/tags/

Exemplo de requisição


GET /v1/tags/?search=Compliance&page=1&page_size=50
X-Integration-Key: esg_abc123.secret-value


POST /v1/properties/tags/attach/

Payload mínimo


{
  "tag_ids": ["00000000-0000-0000-0000-000000000003"],
  "property_external_ids": ["PROP-001"],
  "observation": "integration update"
}


Regras

POST /v1/properties/tags/detach/

Payload mínimo


{
  "tag_ids": ["00000000-0000-0000-0000-000000000003"],
  "producer_external_ids": ["PROD-001"],
  "observation": "producer update",
  "value": "vip"
}


POST /v1/producers/tags/detach/

POST /v1/admin-notifications/

Quando usar

Use esta rota para enviar notificações a usuários ou segmentos específicos. Quando a segmentação exigir user_ids, consulte primeiro GET /v1/users/ para localizar o identificador correto do usuário. O parâmetro search dessa rota permite busca por name e email.

Payload mínimo


{
  "title": "Maintenance Window",
  "message": "Window tonight",
  "segment_spec": {
    "user_ids": ["user-1"],
    "group_ids": [],
    "subgroup_ids": [],
    "region_ids": []
  }
}


Regras

8. Fluxo Recomendado de Consumo

  1. validar disponibilidade com GET /health/
  2. validar o token com GET /auth-context/
  3. consumir listas e detalhes de properties, consultants e producers
  4. executar mutações de tags ou notificações somente após validar leitura e contexto
  5. armazenar o X-Integration-Request-Id para auditoria e suporte

9. Observações Finais


Revisão #6
Criado 2026-04-14 18:52:24 UTC por Rafael Quadros
Atualizado 2026-04-16 19:43:24 UTC por Rafael Quadros