{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/luniumpay-com/json-schema/luniumpay-com-catalogo-compra-schema.json",
  "title": "CatalogoCompra",
  "description": "Catálogo do cash-in (compra): o que entregamos ao receber um PIX.",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/luniumpay-com-openapi.json#/components/schemas/CatalogoCompra",
  "type": "object",
  "properties": {
    "updatedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "instant": {
      "type": "array",
      "description": "Rotas do trilho da casa; pode vir vazio conforme configuração. Não presuma presença ou prazo fixo.",
      "items": {
        "type": "object",
        "properties": {
          "asset": {
            "type": "string"
          },
          "network": {
            "type": "string"
          },
          "eta": {
            "type": "string"
          },
          "entregavel": {
            "type": "boolean"
          },
          "min_brl_cents": {
            "type": "integer",
            "description": "Menor cobranca em REAIS que esta rota entrega, ja com as taxas desta chave. E o mesmo numero de POST /cashin/preview (min_brl_cents) e o mesmo que aceita ou recusa a cobranca. Ausente quando ainda nao foi calculado para a rota; nesse caso leia a previa. Publicado desde 24/09/2026 para USDT e USDC."
          }
        }
      }
    },
    "convert": {
      "type": "array",
      "description": "Via corretora: uma linha por (ativo, rede).",
      "items": {
        "type": "object",
        "properties": {
          "asset": {
            "type": "string"
          },
          "network": {
            "type": "string"
          },
          "etaSeconds": {
            "type": "integer"
          },
          "eta": {
            "type": "string"
          },
          "fastest": {
            "type": "boolean"
          },
          "withdrawFee": {
            "type": "string",
            "description": "Taxa de retirada da corretora nesta rede, em unidades do ativo. Distinta das taxas da Lunium e do parceiro; já participa de minBuyAmount."
          },
          "withdrawMin": {
            "type": "string",
            "description": "Mínimo de retirada da corretora nesta rede, em unidades do ativo. Não é o mínimo de depósito cripto do cash-out."
          },
          "withdrawMax": {
            "type": "string",
            "description": "Teto de retirada publicado para a rede, em unidades do ativo. Não substitui o teto em BRL por operação, limites do pagador, saldo ou mandate. Ausência não significa ilimitado."
          },
          "minBuyAmount": {
            "type": "string",
            "description": "Quantidade mínima A COMPRAR, em unidades do ativo, para cobrir withdrawMin + withdrawFee na rota de corretora. Não é necessariamente o valor líquido entregue. Consulte min_brl_cents em POST /cashin/preview com a própria chave; taxas e câmbio alteram o piso em reais."
          },
          "precision": {
            "type": "integer"
          },
          "memoRequired": {
            "type": "boolean",
            "description": "Rede coletiva: payout_tag obrigatório."
          },
          "entregavel": {
            "type": "boolean"
          },
          "min_brl_cents": {
            "type": "integer",
            "description": "Menor cobranca em REAIS que esta rota entrega, ja com as taxas desta chave. E o mesmo numero de POST /cashin/preview (min_brl_cents) e o mesmo que aceita ou recusa a cobranca. Ausente quando ainda nao foi calculado para a rota; nesse caso leia a previa. Publicado desde 24/09/2026 para USDT e USDC."
          }
        }
      }
    },
    "dropped": {
      "type": "array",
      "description": "Pares fora, com motivo (ex.: sem_par_usdt).",
      "items": {
        "type": "object",
        "properties": {
          "asset": {
            "type": "string"
          },
          "network": {
            "type": "string"
          },
          "motivo": {
            "type": "string"
          }
        }
      }
    },
    "totals": {
      "type": "object",
      "additionalProperties": true
    },
    "stale": {
      "type": "boolean",
      "description": "true se catálogo foi servido do cache de contingência."
    }
  }
}