Crate konduto

Crate konduto 

Source
Expand description

§Konduto SDK para Rust

SDK não oficial em Rust para a API da Konduto - Plataforma de análise de fraude.

§Características

  • Cliente HTTP assíncrono com suporte completo à API da Konduto
  • Tipos fortemente tipados para todas as estruturas de dados
  • Suporte a todos os endpoints principais (pedidos, blocklist, allowlist, reviewlist)
  • Tratamento de erros robusto com thiserror
  • Autenticação integrada (Basic Auth)
  • Métricas automáticas via StatsD (feature opcional)
  • Validação de dados em tempo de compilação usando nutype

§Instalação

Adicione ao seu Cargo.toml:

[dependencies]
konduto-rs = "0.1"
tokio = { version = "1", features = ["full"] }

§Exemplo Rápido

use konduto::{KondutoClient, Customer, Order, OrderId, TotalAmount};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Criar cliente (lê KONDUTO_API_KEY do ambiente)
    let client = KondutoClient::new()?;

    // Construir dados do cliente
    let customer = Customer::builder()
        .id("CUST123")?
        .name("João Silva")?
        .email("joao@example.com")?
        .build()?;

    // Criar pedido para análise
    let order = Order::builder()
        .id(OrderId::try_new("ORDER123")?)
        .total_amount(TotalAmount::new(100.0)?)
        .customer(customer)
        .build()?;

    // Enviar para análise
    let response = client.analyze(&order).await?;
    println!("Recomendação: {:?}", response.order.recommendation);

    Ok(())
}

§Gerenciando Listas

use konduto::{KondutoClient, email::Email};
use konduto::kind::DecisionListKind;
use konduto::sdk::decision_list::http::requests::DecisionListEntryRequest;

let client = KondutoClient::new()?;

// Bloquear um email
let email = Email::try_from("fraud@example.com")?;
let request = DecisionListEntryRequest::email(
    DecisionListKind::Blocklist,
    email,
    None
);
client.add_to_list(request).await?;

§Features

  • statsd: Habilita métricas automáticas via StatsD/DogStatsD

Modules§

balance
bin_digits
boleto
brand
browser
card
card_data
card_holder
category
credit_card
customer_email
customer_id
customer_name
date_iso_8601
days_to_expire
debit_card
delivery_company
delivery_method
details
domain
email
entry_type
environment
expiration_date
fingerprint
kind
language
last_digits
manufacturer
middleware
Middleware para instrumentação automática de requisições HTTP com StatsD
model
os
payment
payment_status
payment_type
phone_number
pix
platform
prelude
provider
risk
statsd
Configuração e integração com StatsD para métricas
tax_id
transfer
validation_errors
voucher

Macros§

impl_nutype_error_conversion
Macro para implementar conversão automática de erros do nutype para ValidationError

Structs§

Address
Dados de endereço com validação tipo-segura
AddressBuilder
Builder para criar endereços
AddressLine
Linha de endereço (máximo 255 caracteres)
AddressName
Nome do destinatário (máximo 100 caracteres)
AirportCode
Código do aeroporto (máximo 10 caracteres)
AnalysisLayer
ApiErrorResponse
Resposta de erro da API
Attendee
Dados do participante do evento
AttendeeBuilder
Builder para criar participantes
AttendeeDocument
Documento do participante (máximo 100 caracteres)
AttendeeName
Nome do participante (máximo 100 caracteres)
BillingCity
Nome da cidade (máximo 100 caracteres)
BillingLine
Linha de endereço (máximo 255 caracteres)
BillingName
Nome do destinatário (máximo 100 caracteres)
BillingState
Nome do estado/província (máximo 100 caracteres)
BillingZipCode
CEP/Código Postal (máximo 100 caracteres)
BoardBasis
Regime de alimentação do hotel (máximo 100 caracteres)
City
Nome da cidade (máximo 100 caracteres)
CityName
Nome da cidade (máximo 100 caracteres)
CompanyName
Nome da companhia aérea (máximo 100 caracteres)
Customer
Dados do cliente
CustomerBuilder
Delivery
Dados de entrega
DeliveryBuilder
Builder para criar dados de entrega
DeliveryCompany
Nome da empresa de entrega (máximo 100 caracteres)
DeliveryMethod
Método de entrega (máximo 100 caracteres)
DeliverySlaInMinutes
SLA de entrega em minutos
DeliveryType
Tipo de entrega (máximo 100 caracteres)
DeviceInfo
Informações do dispositivo na resposta
Event
Dados do evento
EventBuilder
Builder para criar eventos
EventName
Nome do evento (máximo 255 caracteres)
EventSubtype
Subtipo do evento (máximo 100 caracteres)
FareBasis
Base tarifária (máximo 20 caracteres)
GeolocationInfo
Informações de geolocalização na resposta
GuestDocument
Documento do hóspede (máximo 100 caracteres)
GuestName
Nome do hóspede (máximo 100 caracteres)
Hotel
Dados do hotel
HotelBuilder
Builder para criar hotéis
HotelCategory
Categoria do hotel (máximo 100 caracteres)
HotelGuest
Dados do hóspede
HotelGuestBuilder
Builder para criar hóspedes
HotelName
Nome do hotel (máximo 100 caracteres)
HotelRoom
HotelRoomBuilder
Installments
KondutoClient
Cliente principal para interagir com a API da Konduto
KondutoStatsdConfig
Configuração para o cliente StatsD
Latitude
Latitude da loja física (-90 a 90)
Longitude
Longitude da loja física (-180 a 180)
LoyaltyProgram
Programa de fidelidade do passageiro
LoyaltyProgramBuilder
Builder para criar programa de fidelidade
MessagesExchanged
Número de mensagens trocadas entre comprador e vendedor (marketplace)
NavigationInfo
Informações de navegação na resposta
Order
Pedido completo para análise de fraude
OrderAnalysisResponse
Resposta da análise de pedido
OrderBuilder
Builder para criar pedidos
OrderId
ID único do pedido
OrderQueryResponse
Resposta ao consultar um pedido
OwnerName
Nome do proprietário (máximo 100 caracteres)
OwnerTaxId
CPF/CNPJ do proprietário (máximo 100 caracteres)
Passenger
Dados do passageiro
PassengerBuilder
Builder para criar passageiros
PassengerName
Nome do passageiro (máximo 100 caracteres)
PointOfSale
Dados da loja física (Point of Sale)
PointOfSaleBuilder
Builder para criar lojas físicas
PointOfSaleId
ID do ponto de venda (máximo 100 caracteres)
PointOfSaleName
Nome do ponto de venda (máximo 100 caracteres)
Product
Produto do carrinho de compras
ProductBuilder
Builder para criar produtos
ProductCode
Código do produto (máximo 100 caracteres)
ProductDescription
Descrição do produto (máximo 500 caracteres)
ProductName
Nome do produto (máximo 255 caracteres)
Quantity
Quantidade do produto
Renavam
Código RENAVAM (máximo 100 caracteres)
RoomCode
Código do quarto (máximo 100 caracteres)
RoomNumber
Número do quarto (máximo 100 caracteres)
RoomType
Tipo de quarto (máximo 100 caracteres)
SalesChannel
Canal de vendas (máximo 100 caracteres)
Seller
Dados do vendedor no marketplace
SellerBuilder
Builder para criar vendedores
SellerId
ID único do vendedor no marketplace (máximo 100 caracteres)
SellerName
Nome da loja ou do vendedor (máximo 100 caracteres)
ShippingAmount
Valor do frete
ShippingCity
Nome da cidade (máximo 100 caracteres)
ShippingLine
Linha de endereço (máximo 255 caracteres)
ShippingName
Nome do destinatário (máximo 100 caracteres)
ShippingState
Nome do estado/província (máximo 100 caracteres)
ShippingZipCode
CEP/Código Postal (máximo 100 caracteres)
Sku
SKU do produto (máximo 100 caracteres)
State
Nome do estado/província (máximo 100 caracteres)
StatsdMiddleware
Middleware que envia métricas para StatsD
TaxAmount
Valor dos impostos
Ticket
Dados do ingresso do evento
TicketBuilder
Builder para criar ingressos
TicketId
ID do ingresso (máximo 100 caracteres)
TicketSection
Seção/setor do ingresso (máximo 100 caracteres)
TotalAmount
Valor total do pedido
Travel
Dados de viagem
TravelBuilder
Builder para criar dados de viagem
TravelDocumentNumber
Número do documento (máximo 100 caracteres)
TravelLeg
Informações de uma perna da viagem (ida ou volta)
TravelLegBuilder
Builder para criar pernas de viagem
TriggeredDecision
TriggeredRules
UnitCost
Custo unitário do produto
UpdateStatusResponse
Resposta ao atualizar status de pedido
Vehicle
Dados do veículo
VehicleBuilder
Builder para criar veículos
VehicleId
VID do veículo (máximo 100 caracteres)
VehicleMake
Marca do veículo (máximo 63 caracteres)
VehicleModel
Modelo do veículo (máximo 100 caracteres)
VehicleOwner
Dados do proprietário do veículo
VehicleOwnerBuilder
Builder para criar proprietários
VehicleRegistration
Placa do veículo (máximo 100 caracteres)
Venue
Dados do local do evento
VenueAddress
Endereço do local (máximo 255 caracteres)
VenueBuilder
Builder para criar locais de eventos
VenueName
Nome do local do evento (máximo 100 caracteres)
VisitorId
ID do visitante (máximo 100 caracteres)
ZipCode
CEP/Código Postal (máximo 100 caracteres)

Enums§

AnalysisLayerStatus
Status da camada de análise (Segunda Camada)
AttendeeDocumentType
Tipo de documento do participante
BillingCountry
Código do país (ISO 3166-2)
CardBrand
Country
Código do país (ISO 3166-2)
Currency
Tipo de moeda
DecisionEntryType
EventType
Tipo de evento
GuestDocumentType
Tipo de documento do hóspede
KondutoError
Erros possíveis ao interagir com a API da Konduto
OrderStatus
Status de um pedido na Konduto
Payment
Representa os diferentes tipos de pagamento suportados pela API Konduto Cada variante garante que os campos obrigatórios estejam presentes
PaymentStatus
PaymentType
Tipo de pagamento
ProductCategory
Categoria de produto segundo a Konduto
Recommendation
RiskLevel
Nível de risco do pedido
ShippingCountry
Código do país (ISO 3166-2)
TicketCategory
Categoria do ingresso
TravelClass
Classe de viagem
TravelDocumentType
Tipo de documento do passageiro
TravelType
Tipo de viagem
ValidationError
VehicleType
Tipo de veículo
VehicleUsage
Uso do veículo

Type Aliases§

BillingAddress
Alias para endereço de cobrança
BillingCountryCode
CountryCode
DecisionType
KondutoResult
Tipo de resultado padrão para operações da SDK
ShippingAddress
Alias para endereço de cobrança
ShippingCountryCode