SDKs
Four thin clients over the same REST API. They handle auth, retries with jitter, idempotency keys and webhook verification — nothing you could not write yourself in an afternoon, which is the point.
| Language | Package | Minimum runtime |
|---|---|---|
| TypeScript / JavaScript | @fin-techai/sdk | Node 18+, or any fetch-capable runtime |
| Python | fin-techai | 3.9+ |
| Go | github.com/fin-techai/go-sdk | 1.21+ |
| Java | com.fintechai:sdk | 17+ |
TypeScript
npm install @fin-techai/sdk
import { FinTechAI } from '@fin-techai/sdk';
const ftai = new FinTechAI({
apiKey: process.env.FTAI_KEY,
environment: 'sandbox', // or 'production'
maxRetries: 5, // jittered backoff, honours Retry-After
scoringVersion: 4, // pin the methodology
});
const r = await ftai.screen.address({
chain: 'ethereum',
address: '0x7a25…f3b1',
});
if (r.sanctions.match) freeze(r); // hard control first
else if (r.risk_score >= 60) review(r); // your threshold, not ours
if (r.coverage.stale.length) log.warn('stale coverage', r.coverage);
Python
pip install fin-techai
from fin_techai import FinTechAI
ftai = FinTechAI(api_key=os.environ["FTAI_KEY"],
environment="sandbox")
profile = ftai.credit.profile(
chain="ethereum",
address="0x91cd…8ee0",
as_of="2026-01-31T00:00:00Z", # point-in-time replay
)
if profile.thin_file:
# unknown, not bad — do not decline on this alone
route_to_manual_review(profile)
Go
go get github.com/fin-techai/go-sdk
client := ftai.New(ftai.Config{
APIKey: os.Getenv("FTAI_KEY"),
Environment: ftai.Sandbox,
})
quote, err := client.Route.Quote(ctx, ftai.QuoteRequest{
Asset: "USDT",
Amount: "250000.00", // decimal string, never float64
Destination: ftai.Destination{Chain: "tron", Address: "TQ8x…v2"},
})
if err != nil { return err }
// idempotency key must be stable across retries of the same payout
payout, err := client.Route.Execute(ctx, ftai.ExecuteRequest{
QuoteID: quote.QuoteID, RouteRank: 1,
}, ftai.WithIdempotencyKey("payout-20614"))
Webhook verification helper
Every client ships a verifier so you do not have to get the constant-time comparison and the freshness window right yourself.
import { verifyWebhook } from '@fin-techai/sdk';
app.post('/hooks/ftai',
express.raw({ type: 'application/json' }), // raw bytes, not parsed
(req, res) => {
const ok = verifyWebhook(req.body,
req.header('X-FTAI-Signature'),
process.env.FTAI_WEBHOOK_SECRET);
if (!ok) return res.sendStatus(400);
res.sendStatus(200); // ack first
queue.push(JSON.parse(req.body)); // work after
});
Using no SDK at all
Entirely supported and reasonably common. The API reference shows raw cURL for every endpoint, and the only things you must implement yourself are the retry policy on errors and limits and the signature verification. Both are about twenty lines.
An OpenAPI 3.1 description is available at
https://api.fin-techai.com/v1/openapi.json if you would rather generate a client than use ours.