1) Primeiro acesso (Pareamento por Device Token)

No primeiro uso do app (ou após limpar dados/reinstalar), o acesso é liberado por pareamento usando um PAIRING_CODE (token temporário) gerado no ERP. Após parear, o app salva um DEVICE_TOKEN no aparelho.

Endpoint: router/action.php Auth: X-APP-KEY Body: pairing_code + device_name Retorna: device_token + account_type

Resumo do processo

  1. ERP gera um PAIRING_CODE dentro do cadastro do cliente.
  2. App mostra tela de pareamento (campos pairing_code e device_name).
  3. App envia X-APP-KEY + dados do pareamento para f=parear_device_token.
  4. API valida o token temporário e cria o DEVICE_TOKEN (permanente do aparelho).
  5. App salva o DEVICE_TOKEN em armazenamento seguro e libera menus via account_type.
Perfis disponíveis: colaborador, produtor ou produtor_funcionario

Tela do app (primeira execução)

Se não existir device_token salvo no aparelho, o app deve exibir uma tela com:

Endpoint: Parear dispositivo

POST https://agroecologia.grupoekos.com.br/router/action.php

Headers

X-APP-KEY: <APP_KEY_FIXA_DO_APP>

Body

action=apiG10
f=parear_device_token
pairing_code=<PAIRING_CODE>
device_name=<APELIDO_DO_APARELHO>

Resposta (sucesso — HTTP 200)

{
  "success": true,
  "msg": "Pareamento realizado com sucesso.",
  "data": {
    "device_token": "dev_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "device_id": 123,
    "account_type": "produtor" ou "produtor_funcionario" ou "colaborador",
    "pairing_burned": true
  }
}

O que significa cada campo

  • device_token: token permanente do aparelho (salvar em armazenamento seguro).
  • device_id: id do registro do device na API (auditoria/revogação).
  • account_type: perfil para liberar menus (produtor ou colaborador).
  • pairing_burned: se o PAIRING_CODE foi consumido/desativado após uso (quando uso único).
Depois do sucesso: salvar device_token e montar menus usando account_type.

Erros comuns

  • 403 (invalid_api_key): APP_KEY inválida.
  • 410 (pairing_expired/pairing_limit_reached): token temporário expirou ou já foi usado.
  • 400: campos ausentes (pairing_code ou device_name).

Em caso de erro, manter o usuário na tela de pareamento e permitir tentar novamente (ou solicitar novo PAIRING_CODE no ERP).