Integrate Missing Linx™ into your bank's stack
A complete enterprise rollout — from signup to a live, signed event stream — in under a week. Backed by real solutions engineers.
Your rollout, step by step
Every enterprise customer follows the same six-step path.
Create your enterprise workspace
Sign up, tell us about your bank or platform, your traffic volume, and the systems you need to protect.
Start onboardingConnect with a solutions engineer
A real engineer joins your private thread within hours. They map your ACH flows, compliance scope, and risk policy.
Provision API keys & sandbox
Test keys instantly. Production keys after a 30-minute compliance review. Rotate or revoke any key in one click.
Wire the Risk Score API
One POST per transaction returns PASS / REVIEW / BLOCK with a 0–1000 score and forensic layer breakdown.
Receive signed webhook events
We push verified events (decision_changed, anomaly_detected, identity_break) to your endpoint with HMAC signatures.
Stream realtime intelligence
Subscribe to a live event stream for fraud feeds, latency telemetry, and engine status — sub-second updates.
Score every transaction in <120ms
One endpoint, seven scoring layers, deterministic PASS / REVIEW / BLOCK decisions you can route through your existing ACH or core banking pipeline.
- p50 latency 38ms / p99 119ms
- Signed responses (HMAC-SHA256)
- Idempotent via request_id
- SDKs: Node, Python, Go, Java
curl -X POST https://api.missinglinx.io/v1/score \
-H "Authorization: Bearer ml_live_••••••" \
-H "Content-Type: application/json" \
-d '{
"request_id": "txn_8421",
"subject": { "id": "acct_91", "email": "j@bank.com" },
"context": { "ip": "8.8.8.8", "device_id": "d_42" },
"transaction": { "amount": 24800, "currency": "USD", "type": "ach_debit" }
}'{
"decision": "REVIEW",
"score": 642,
"layers": {
"identity": 0.91, "behavior": 0.58, "network": 0.44,
"device": 0.77, "velocity": 0.39, "consortium": 0.81, "intent": 0.62
},
"request_id": "txn_8421",
"signature": "v1=8f2d..."
}// Verify an incoming Missing Linx webhook (Node / TS)
import crypto from "node:crypto";
export function verify(signature: string, raw: string, secret: string) {
const expected = crypto.createHmac("sha256", secret).update(raw).digest("hex");
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}
// Events you can subscribe to:
// decision.changed identity.break anomaly.detected
// chargeback.linked license.quota_low key.rotatedPush, don't poll
Every webhook is signed with your tenant secret and includes a replay-protection timestamp. Retries with exponential backoff up to 24 hours.
Sub-second intelligence feed
Subscribe over WebSocket or Kafka. Used by fraud ops teams for live dashboards and SOAR pipelines.
// Realtime fraud feed (WebSocket)
const ws = new WebSocket("wss://stream.missinglinx.io/v1/events?token=ml_live_••••");
ws.onmessage = (e) => {
const evt = JSON.parse(e.data);
// { type: "score", decision: "BLOCK", score: 911, layers: {...}, ts: ... }
pipeline.ingest(evt);
};Copy-paste <VerifyButton /> into any website or app
One file. No SDK install. Submits identity verification to/api/public/v1/verify/identityand renders a PASS / REVIEW / BLOCK pill with the trust score.
- Works in Next.js, Vite, Remix, CRA — any React 17+ app
- Zero dependencies (Tailwind classes optional)
- Color-coded result: green = PASS, amber = REVIEW, red = BLOCK
- onResult callback to wire into your own UI / DB
- For production, proxy the API key through your backend
// VerifyButton.tsx — drop into any React app (Next.js, Vite, Remix, CRA)
// Tailwind classes are optional — swap for your own styles.
import { useState } from "react";
type Decision = "PASS" | "REVIEW" | "BLOCK";
type Result = {
decision: Decision;
trust_score: number;
subject_ref: string;
factors?: { name: string; score: number }[];
};
export function VerifyButton({
apiBase = "https://missing-linx-engine.lovable.app",
apiKey, // mlx_live_xxx with "verify" scope
subject, // { subject_ref, full_name, email, phone?, dob? }
onResult,
label = "Verify identity",
}: {
apiBase?: string;
apiKey: string;
subject: {
subject_ref: string;
full_name: string;
email: string;
phone?: string;
dob?: string;
};
onResult?: (r: Result) => void;
label?: string;
}) {
const [loading, setLoading] = useState(false);
const [result, setResult] = useState<Result | null>(null);
const [error, setError] = useState<string | null>(null);
async function run() {
setLoading(true); setError(null); setResult(null);
try {
const res = await fetch(`${apiBase}/api/public/v1/verify/identity`, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify(subject),
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `HTTP ${res.status}`);
setResult(data as Result);
onResult?.(data as Result);
} catch (e: any) {
setError(e.message ?? "Verification failed");
} finally {
setLoading(false);
}
}
const tone =
result?.decision === "PASS" ? "bg-green-100 text-green-800 border-green-300" :
result?.decision === "REVIEW" ? "bg-amber-100 text-amber-800 border-amber-300" :
result?.decision === "BLOCK" ? "bg-red-100 text-red-800 border-red-300" : "";
return (
<div className="space-y-3">
<button
onClick={run}
disabled={loading}
className="rounded-md bg-black px-4 py-2 text-sm font-semibold text-white disabled:opacity-60"
>
{loading ? "Verifying…" : label}
</button>
{error && (
<p className="text-sm text-red-600">{error}</p>
)}
{result && (
<div className={`rounded-lg border p-3 text-sm ${tone}`}>
<div className="flex items-center justify-between">
<span className="font-bold">{result.decision}</span>
<span className="font-mono">Trust {result.trust_score}/100</span>
</div>
<p className="mt-1 text-xs opacity-80">Subject: {result.subject_ref}</p>
</div>
)}
</div>
);
}
// ── Usage ───────────────────────────────────────────────
// <VerifyButton
// apiKey={process.env.NEXT_PUBLIC_MLX_KEY!} // proxy via your backend in production
// subject={{
// subject_ref: "user_12345",
// full_name: "Jane Doe",
// email: "jane@example.com",
// phone: "+15551234567",
// dob: "1990-04-12",
// }}
// onResult={(r) => console.log("MLX:", r)}
// />Ready when your compliance team is.
SOC 2 Type II · ISO 27001 · PCI DSS · GDPR · MSA & DPA ready.
Start enterprise onboarding