Construa com IA
Integrar a BORA pode ser tão simples quanto colar um prompt no seu agente de código. O prompt explica o produto, aponta a documentação e descreve o fluxo da prova de conceito, passo a passo.
Para agentes de IA: use o llms.txt para ver o índice completo da documentação, ou o llms-full.txt para tudo em um arquivo.
O prompt
Cole este prompt no seu agente de código (Claude Code, Cursor, Codex ou outro que leia a web). O mesmo texto está em prompt.md.
# Integrar a API BORA
Você vai integrar a API BORA no meu sistema. Siga estas instruções.
## O que é a BORA
A BORA faz autenticação pela palma da mão em catracas de transporte. O aparelho BORA ACCESS fica na catraca e reconhece a palma offline. Ele manda um veredito assinado pelo cabo USB ao validador da operadora, o DBD. O DBD decide e abre a catraca. A API BORA é a parte na nuvem: cadastra pessoas, abre o cadastro da palma, guarda as passagens para conciliação e serve de carteiro entre a BORA e os aparelhos.
## Leia antes de escrever código
1. https://docs.bora.id/llms-full.txt: a referência completa em Markdown.
2. https://docs.bora.id/openapi.json: o contrato OpenAPI 3.1 com as 16 operações da prova de conceito.
Siga o contrato. Não invente rota, campo nem código de erro.
## Conexão
- Base URL do sandbox: https://sandbox.api.bora.id (em breve). Até lá, use a URL que a equipe BORA passar.
- Produção: https://api.bora.id (em breve).
- Toda chamada de parceiro leva o header `Authorization: Bearer <API key>`.
- Leia a key da variável de ambiente `BORA_API_KEY`. Nunca escreva a key no código.
- No sandbox, use a key de teste (`bora_test_...`).
## Fluxo para implementar
1. Criar a pessoa com o `external_ref` da conta do cliente: `POST /v1/subjects`. O `external_ref` é o ID da conta no meu sistema, nunca o CPF. O CPF é opcional e vai só no corpo.
2. Registrar o consentimento da finalidade de acesso: `POST /v1/subjects/{subject_id}/consents` com `purpose` igual a `identification` e a evidência do aceite (`method`, `terms_version`, `accepted_at`, `evidence_sha256`).
3. Abrir a sessão de cadastro: `POST /v1/enrollment-sessions`. Mostrar o `qr_payload` como QR code para o totem ler, ou o `short_code` para digitar no totem. O `token` só aparece nessa resposta. Não guarde o token em log.
4. Acompanhar o estado do cadastro: `GET /v1/enrollment-sessions/{session_id}` até `completed`. Trate também `expired`, `cancelled`, `failed` e `review`.
5. Consultar as passagens para conciliação: `GET /v1/verdicts`, com filtros (`gate_id`, `device_id`, `from`, `to`, `reconciliation`) e paginação por cursor. A prova assinada de uma passagem está em `GET /v1/verdicts/{verdict_id}`.
6. Carteiro: para cada aparelho (`GET /v1/devices`), buscar `GET /v1/devices/{device_id}/inbox?after_seq=<último seq entregue>` e entregar os registros ao DBD do jeito que vieram. O que o DBD puxar do aparelho, devolver em `POST /v1/devices/{device_id}/outbox`, sem abrir nem alterar. Guarde o último `seq` entregue de cada aparelho.
7. Apagar a pessoa a pedido (LGPD): `DELETE /v1/subjects/{subject_id}`. Guarde o recibo assinado que volta na resposta.
## Regras
- Nunca ponha CPF em URL, query string ou log.
- Mande `Idempotency-Key` (um UUID v4 novo) em todo POST. Ao repetir a mesma operação, repita a mesma chave.
- Se vier `429`, espere os segundos do header `Retry-After` antes de tentar de novo. Em `5xx`, tente de novo com espera crescente e a mesma `Idempotency-Key`.
- Os erros vêm em `application/problem+json` com um `code` estável. Trate pelo `code`, nunca pelo texto do `detail`.
- No sandbox, use só a key de teste. Nunca use uma key `bora_live_` em teste.
- Ignore campos desconhecidos nas respostas. A API só cresce com campos novos.
- Não chame rotas internas do aparelho (registro, galeria, envio de vereditos). Elas não são do parceiro.
## Entrega
- Um cliente da API com as operações do fluxo, com timeout e tratamento de erro pelo `code`.
- Testes do fluxo de ponta a ponta com respostas simuladas a partir dos exemplos do `openapi.json`.
- Um resumo curto do que foi feito e de como rodar.
Docs para agentes
O agente pode aprender a API sozinho, lendo estes arquivos. Nada precisa ser configurado.
Cada página desta documentação tem o botão Copiar página como Markdown, para colar no chat do agente.
Instalar a skill
A skill bora-api ensina o fluxo e as regras da API ao seu agente de código. No Claude Code, instale com um comando:
mkdir -p ~/.claude/skills/bora-api && curl -fsSL https://docs.bora.id/skill.md -o ~/.claude/skills/bora-api/SKILL.mdDepois é só pedir, por exemplo: integre a API BORA no meu backend. A skill entra sozinha quando o pedido combina com ela.
Credenciais
Hoje a API key de teste (bora_test_...) é emitida pela equipe BORA, a pedido. Ela vale só no sandbox, com dados separados de produção.
Em breve: um painel para você gerar a sua própria key, escolher os escopos e revogar quando quiser.
Guarde a key numa variável de ambiente (BORA_API_KEY). Nunca cole a key no prompt nem no código.
MCP em breve
Em breve. Um servidor MCP da BORA vai deixar o seu agente consultar esta documentação e chamar o sandbox direto da conversa. Até lá, use o prompt, o llms-full.txt e a skill.