Status
Endpoints para monitorar a saúde do servidor TEF IP, consultar informações do dispositivo e reiniciar o aplicativo remotamente. Estes endpoints são sempre seguros de chamar — respondem mesmo durante pagamentos em andamento.
Autenticação
Todas as requisições exigem Basic Auth. Use as credenciais configuradas no TEF IP (admin / senha definida na instalação).
Disponíveis mesmo durante operações
GET /status, GET /info e POST /restart respondem normalmente mesmo quando há uma operação em andamento (isBusy=true). Use-os livremente para monitorar o estado do servidor sem risco de 503.
GET /status
Verifica se o servidor está no ar e retorna o tempo de atividade.
Resposta
| Campo | Tipo | Descrição |
|---|---|---|
status |
string | Sempre "ok" quando o servidor responde |
uptimeSeconds |
int | Segundos desde a inicialização do servidor |
startedAt |
string | Data/hora de início em formato ISO 8601 |
Exemplos de integração
# TODO: pacote Ruby ainda não criado — usando Net::HTTP diretamente
require 'net/http'
require 'json'
uri = URI('http://localhost:9050/status')
req = Net::HTTP::Get.new(uri)
req.basic_auth('admin', '1234')
res = Net::HTTP.start(uri.hostname, uri.port) { |h| h.request(req) }
data = JSON.parse(res.body)
GET /info
Retorna informações detalhadas sobre o aplicativo e o dispositivo, incluindo o estado atual do servidor.
Resposta
{
"appName": "TEF IP",
"version": "1.2.0",
"build": "42",
"platform": "android",
"locale": "pt_BR",
"timeZone": "America/Sao_Paulo",
"mode": "production",
"isActive": true,
"isBusy": false
}
| Campo | Tipo | Descrição |
|---|---|---|
appName |
string | Nome do aplicativo |
version |
string | Versão semântica |
build |
string | Número de build |
platform |
string | Plataforma do dispositivo (android, windows, etc.) |
locale |
string | Locale configurado no dispositivo |
timeZone |
string | Fuso horário do dispositivo |
mode |
string | Modo de operação (production, emulator) |
isActive |
bool | true quando o app está em primeiro plano |
isBusy |
bool | true quando há uma operação em andamento (pagamento, impressão) |
Monitorando isBusy
Use isBusy para saber se o terminal está livre antes de enviar uma nova operação. Requisições enviadas enquanto isBusy é true serão rejeitadas com 503.
Saiba mais
Veja Comportamento → Servidor ocupado para entender como o servidor lida com operações simultâneas.
Exemplos de integração
# TODO: pacote Ruby ainda não criado — usando Net::HTTP diretamente
require 'net/http'
require 'json'
uri = URI('http://localhost:9050/info')
req = Net::HTTP::Get.new(uri)
req.basic_auth('admin', '1234')
res = Net::HTTP.start(uri.hostname, uri.port) { |h| h.request(req) }
data = JSON.parse(res.body)
POST /restart
Reinicia o aplicativo TEF IP remotamente. Disponível apenas em dispositivos Android.
Somente Android
Em plataformas não-móveis (Windows, emulador de desktop), este endpoint retorna 403.
Resposta — 200
Mesma estrutura de GET /status, refletindo o estado após o reinício.
Resposta — 403
Exemplos de integração
<?php
// TODO: pacote PHP ainda não criado — usando curl diretamente
$ch = curl_init('http://localhost:9050/restart');
curl_setopt($ch, CURLOPT_USERPWD, 'admin:1234');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
# TODO: pacote Ruby ainda não criado — usando Net::HTTP diretamente
require 'net/http'
require 'json'
uri = URI('http://localhost:9050/restart')
req = Net::HTTP::Post.new(uri)
req.basic_auth('admin', '1234')
res = Net::HTTP.start(uri.hostname, uri.port) { |h| h.request(req) }
data = JSON.parse(res.body)