{
  "info": {
    "_postman_id": "8b512c14-5b4d-44a6-8051-fb18d1844b20",
    "name": "BrasilSat GPS Open API",
    "description": "Coleção de requisições prontas da API BrasilSat GPS Open API. Inclui pré-configuração de variáveis e cálculo automático da assinatura criptográfica MD5.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Autenticação",
      "item": [
        {
          "name": "Obter Token de Acesso (Authorization)",
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Obter a senha e gerar os hashes MD5 automáticos",
                  "const password = pm.variables.get(\"password\") || \"sua_senha_aqui\";",
                  "const account = pm.variables.get(\"account\") || \"seu_usuario_aqui\";",
                  "const timestamp = Math.floor(Date.now() / 1000).toString();",
                  "",
                  "// md5(password)",
                  "const md5Password = CryptoJS.MD5(password).toString().toLowerCase();",
                  "",
                  "// md5(md5(password) + time)",
                  "const signature = CryptoJS.MD5(md5Password + timestamp).toString().toLowerCase();",
                  "",
                  "pm.variables.set(\"calculated_time\", timestamp);",
                  "pm.variables.set(\"calculated_signature\", signature);"
                ],
                "type": "text/javascript"
              }
            },
            {
              "listen": "test",
              "script": {
                "exec": [
                  "// Salvar o access_token retornado como variável de coleção",
                  "const jsonData = pm.response.json();",
                  "if (jsonData && jsonData.record && jsonData.record.access_token) {",
                  "    pm.collectionVariables.set(\"access_token\", jsonData.record.access_token);",
                  "    console.log(\"Access Token salvo com sucesso: \" + jsonData.record.access_token);",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/authorization?time={{calculated_time}}&account={{account}}&signature={{calculated_signature}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "authorization"
              ],
              "query": [
                {
                  "key": "time",
                  "value": "{{calculated_time}}"
                },
                {
                  "key": "account",
                  "value": "{{account}}"
                },
                {
                  "key": "signature",
                  "value": "{{calculated_signature}}"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Rastreamento e Dispositivos",
      "item": [
        {
          "name": "Rastreamento em Tempo Real (Track)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/track?access_token={{access_token}}&imeis={{imei}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "track"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imeis",
                  "value": "{{imei}}"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Histórico de Rotas (Playback)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/playback?access_token={{access_token}}&imei={{imei}}&begintime=1722816000&endtime=1722859200",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "playback"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                },
                {
                  "key": "begintime",
                  "value": "1722816000",
                  "description": "Timestamp UNIX de início (Ex: 05/08/2026 UTC)"
                },
                {
                  "key": "endtime",
                  "value": "1722859200",
                  "description": "Timestamp UNIX de término"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Listar Dispositivos",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/device/list?access_token={{access_token}}&account={{account}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "device",
                "list"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "account",
                  "value": "{{account}}",
                  "description": "Opcional (vazio para a própria conta)"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Detalhes de Dispositivos por IMEIs",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/device/detail?access_token={{access_token}}&imeis={{imei}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "device",
                "detail"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imeis",
                  "value": "{{imei}}"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Relatório de Quilometragem",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/device/mileage?access_token={{access_token}}&imeis={{imei}}&begintime=1722816000&endtime=1722859200",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "device",
                "mileage"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imeis",
                  "value": "{{imei}}"
                },
                {
                  "key": "begintime",
                  "value": "1722816000"
                },
                {
                  "key": "endtime",
                  "value": "1722859200"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Cercas Virtuais (Geofence)",
      "item": [
        {
          "name": "Listar Cercas da Conta",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/geofence/list?access_token={{access_token}}&account={{account}}&pagenumber=1&pagesize=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "geofence",
                "list"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "account",
                  "value": "{{account}}"
                },
                {
                  "key": "pagenumber",
                  "value": "1"
                },
                {
                  "key": "pagesize",
                  "value": "20"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Criar Cerca Rápida (Círculo)",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/geofence/create?access_token={{access_token}}&imei={{imei}}&efencename=HomeCircle&alarmtype=0&longitude=113.97196&latitude=22.56861&radius=300",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "geofence",
                "create"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                },
                {
                  "key": "efencename",
                  "value": "HomeCircle"
                },
                {
                  "key": "alarmtype",
                  "value": "0",
                  "description": "0:out,1:in,2:in/out"
                },
                {
                  "key": "longitude",
                  "value": "113.97196"
                },
                {
                  "key": "latitude",
                  "value": "22.56861"
                },
                {
                  "key": "radius",
                  "value": "300"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Criar Cerca Customizada (Polígono)",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/geofence/create2?access_token={{access_token}}&account={{account}}&geofencename=CustomPolygon&geofencetype=3&geofenceparameter=113.97196,22.56861;113.97296,22.56861;113.97296,22.56961;113.97196,22.56961",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "geofence",
                "create2"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "account",
                  "value": "{{account}}"
                },
                {
                  "key": "geofencename",
                  "value": "CustomPolygon"
                },
                {
                  "key": "geofencetype",
                  "value": "3",
                  "description": "2: circle, 3: polygon"
                },
                {
                  "key": "geofenceparameter",
                  "value": "113.97196,22.56861;113.97296,22.56861;113.97296,22.56961;113.97196,22.56961"
                },
                {
                  "key": "geofencespeeding",
                  "value": "",
                  "description": "Opcional (Ex: 80 para limite de velocidade de 80 km/h dentro da cerca)",
                  "disabled": true
                },
                {
                  "key": "geofenceusetimes",
                  "value": "",
                  "description": "Opcional (Ex: 00:00,08:00 para apenas funcionar nesse período)",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Editar Cerca",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/geofence/edit?access_token={{access_token}}&id=1234&geofencename=UpdatedPolygon&geofencetype=3&geofenceparameter=113.97196,22.56861;113.97296,22.56861;113.97296,22.56961;113.97196,22.56961",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "geofence",
                "edit"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "id",
                  "value": "1234",
                  "description": "ID da cerca"
                },
                {
                  "key": "geofencename",
                  "value": "UpdatedPolygon"
                },
                {
                  "key": "geofencetype",
                  "value": "3"
                },
                {
                  "key": "geofenceparameter",
                  "value": "113.97196,22.56861;113.97296,22.56861;113.97296,22.56961;113.97196,22.56961"
                },
                {
                  "key": "geofencespeeding",
                  "value": "",
                  "description": "Opcional (Ex: 80 para limite de velocidade de 80 km/h dentro da cerca)",
                  "disabled": true
                },
                {
                  "key": "geofenceusetimes",
                  "value": "",
                  "description": "Opcional (Ex: 00:00,08:00 para apenas funcionar nesse período)",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Excluir Cerca",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/geofence/delete?access_token={{access_token}}&id=1234",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "geofence",
                "delete"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "id",
                  "value": "1234",
                  "description": "ID da cerca"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Listar Cercas do Dispositivo",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/device/geofence?access_token={{access_token}}&imei={{imei}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "device",
                "geofence"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Vincular Cercas a Dispositivos",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imei\": [\"{{imei}}\"],\n  \"geofenceconfig\": [\n    {\n      \"geofenceid\": \"1075642\",\n      \"in\": 1,\n      \"out\": 1,\n      \"relaycommand\": 0,\n      \"speedingalert\": 0\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/device/geofence/set?access_token={{access_token}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "device",
                "geofence",
                "set"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Comandos e Mensagens",
      "item": [
        {
          "name": "Enviar Comando",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/command/send?access_token={{access_token}}&imei={{imei}}&command=RELAY,1&paramData=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "command",
                "send"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                },
                {
                  "key": "command",
                  "value": "RELAY,1",
                  "description": "RELAY,1 (Stop), RELAY,0 (Restore), RESET, LOCKDOOR, UNLOCKDOOR, SET_MILEAGE"
                },
                {
                  "key": "paramData",
                  "value": "",
                  "description": "Usado para SET_MILEAGE, ex: {\"mileage\":\"30\"}"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Consultar Resposta do Comando",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/command/query?access_token={{access_token}}&commandid=1B454",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "command",
                "query"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "commandid",
                  "value": "1B454",
                  "description": "ID retornado pelo envio de comando"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Enviar Mensagem para Dispositivo",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/device/sendMsg?access_token={{access_token}}&imei={{imei}}&message=Olá da API",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "device",
                "sendMsg"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                },
                {
                  "key": "message",
                  "value": "Olá da API"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Enviar Mensagem para Contas",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/message/send?access_token={{access_token}}&accounts={{account}}&content=Olá da API",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "message",
                "send"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "accounts",
                  "value": "{{account}}",
                  "description": "Lista de contas separadas por vírgula, máx 200"
                },
                {
                  "key": "content",
                  "value": "Olá da API",
                  "description": "Conteúdo de texto da mensagem, máx 300 caracteres"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Usuários e Sub-contas",
      "item": [
        {
          "name": "Obter Informações da Conta",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/user/info?access_token={{access_token}}&account={{account}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "user",
                "info"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "account",
                  "value": "{{account}}",
                  "description": "Nome da conta"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Listar Sub-clientes",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/user/list?access_token={{access_token}}&account={{account}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "user",
                "list"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "account",
                  "value": "{{account}}",
                  "description": "Opcional (vazio para a própria conta)"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Bloquear Conta",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/user/block?access_token={{access_token}}&account=sub_account_name",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "user",
                "block"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "account",
                  "value": "sub_account_name",
                  "description": "Nome da sub-conta a ser bloqueada"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Desbloquear Conta",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/user/unblock?access_token={{access_token}}&account=sub_account_name",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "user",
                "unblock"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "account",
                  "value": "sub_account_name",
                  "description": "Nome da sub-conta a ser desbloqueada"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Alterar Senha do Sub-cliente",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/user/password/set?access_token={{access_token}}&account=sub_account_name&password=md5_password_here",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "user",
                "password",
                "set"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "account",
                  "value": "sub_account_name",
                  "description": "Nome da sub-conta"
                },
                {
                  "key": "password",
                  "value": "md5_password_here",
                  "description": "Nova senha criptografada em md5 (letras minúsculas)"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Alertas e Alarmes",
      "item": [
        {
          "name": "Listar Alarmes do Dispositivo",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/alarm/list2?access_token={{access_token}}&imei={{imei}}&begintime=1722816000&endtime=1722859200",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "alarm",
                "list2"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                },
                {
                  "key": "begintime",
                  "value": "1722816000"
                },
                {
                  "key": "endtime",
                  "value": "1722859200"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Listar Alarmes do Dispositivo (Deprecated)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/alarm/list?access_token={{access_token}}&imei={{imei}}&begintime=1722816000&endtime=1722859200",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "alarm",
                "list"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                },
                {
                  "key": "begintime",
                  "value": "1722816000"
                },
                {
                  "key": "endtime",
                  "value": "1722859200"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Obter Configurações de Alarmes",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/device/alertsettings/get?access_token={{access_token}}&imei={{imei}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "device",
                "alertsettings",
                "get"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Modificar Configurações de Alarmes",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "[\n  {\n    \"alarmtype\": 7,\n    \"switch\": 1,\n    \"threshold\": \"80\"\n  },\n  {\n    \"alarmtype\": 9,\n    \"switch\": 1,\n    \"threshold\": \"\"\n  }\n]",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/device/alertsettings/set?access_token={{access_token}}&imei={{imei}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "device",
                "alertsettings",
                "set"
              ],
              "query": [
                {
                  "key": "access_token",
                  "value": "{{access_token}}"
                },
                {
                  "key": "imei",
                  "value": "{{imei}}"
                }
              ]
            }
          },
          "response": []
        }
      ]
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          ""
        ]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "exec": [
          ""
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.brasilsatgps.com.br",
      "type": "string"
    },
    {
      "key": "account",
      "value": "seu_usuario",
      "type": "string"
    },
    {
      "key": "password",
      "value": "sua_senha",
      "type": "string"
    },
    {
      "key": "imei",
      "value": "358899123456789",
      "type": "string"
    },
    {
      "key": "access_token",
      "value": "ACCESS_TOKEN",
      "type": "string"
    }
  ]
}