{
  "openapi": "3.0.3",
  "info": {
    "title": "Detector de Golpe PIX — API Pública",
    "description": "API para análise de segurança de chaves PIX e boletos bancários. Identifica fraudes em tempo real usando inteligência artificial.",
    "version": "1.0.0",
    "contact": {
      "name": "Detector de Golpe",
      "url": "https://www.detectordegolpe.com.br/contato",
      "email": "suacidade@suacidade.app"
    },
    "license": {
      "name": "MIT",
      "url": "https://www.detectordegolpe.com.br/termos-de-uso"
    }
  },
  "servers": [
    {
      "url": "https://ysznjvzoakbpiiogfvgj.supabase.co/functions/v1",
      "description": "Produção"
    }
  ],
  "paths": {
    "/analyze-pix": {
      "post": {
        "summary": "Analisar chave PIX com IA",
        "description": "Recebe dados de uma chave PIX já validada e retorna análise de risco gerada por inteligência artificial.",
        "operationId": "analyzePix",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["type", "pixData", "alerts", "score"],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["pix", "boleto"],
                    "description": "Tipo de análise"
                  },
                  "pixData": {
                    "type": "object",
                    "properties": {
                      "name": { "type": "string", "description": "Nome do recebedor" },
                      "keyType": { "type": "string", "description": "Tipo da chave PIX (CPF, CNPJ, EMAIL, PHONE, EVP)" },
                      "maskedKey": { "type": "string", "description": "Chave mascarada" },
                      "value": { "type": "number", "description": "Valor em reais" },
                      "city": { "type": "string", "description": "Cidade do recebedor" }
                    }
                  },
                  "boletoData": {
                    "type": "object",
                    "properties": {
                      "bankName": { "type": "string" },
                      "bankCode": { "type": "string" },
                      "dvValid": { "type": "boolean" },
                      "value": { "type": "number" },
                      "dueDate": { "type": "string", "format": "date" }
                    }
                  },
                  "alerts": {
                    "type": "array",
                    "items": { "type": "string" },
                    "description": "Lista de alertas detectados"
                  },
                  "score": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100,
                    "description": "Score de segurança"
                  },
                  "message": {
                    "type": "string",
                    "description": "Mensagem adicional para análise"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Análise gerada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "aiAnalysis": {
                      "type": "string",
                      "description": "Texto da análise gerada por IA"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/verify-seal": {
      "post": {
        "summary": "Verificar selo de empresa",
        "description": "Verifica se um token de selo de empresa verificada é válido.",
        "operationId": "verifySeal",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["token"],
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "Token do selo a ser verificado"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resultado da verificação",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "valid": { "type": "boolean" },
                    "company": {
                      "type": "object",
                      "properties": {
                        "name": { "type": "string" },
                        "cnpj": { "type": "string" },
                        "verifiedAt": { "type": "string", "format": "date-time" }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
