Skip to main content
Wire fraud costs financial institutions billions annually. A compromised password or session token is all an attacker needs to initiate a high-value wire. FaceSign adds a real-time, AI-powered verification step between the transfer request and the authorization — proving the actual account holder is present, not coerced, and not a deepfake.
Step-up, not login — FaceSign is not a login gate. Your user is already authenticated. FaceSign triggers after your system detects a high-risk action like a wire transfer above your threshold.

How it works

  1. Your transfer service detects a wire above your risk threshold (e.g., $10,000).
  2. Your backend creates a FaceSign session with liveness detection, a conversation node to confirm transaction details, and an email OTP.
  3. You embed clientSecret.url as an iframe src inside your authorization page — the verification runs inline on your domain, keeping the user in your app and branding. Redirecting the user to the hosted URL is the fallback when an iframe can’t be used (e.g., strict parent-frame CSP, native mobile wrappers without a webview).
  4. FaceSign’s AI avatar walks the user through verification — confirming the transfer details aloud and checking for signs of coercion.
  5. Your webhook handler receives the result and authorizes or blocks the transfer.

Build the flow

1

Define the verification flow

Create a session with three verification steps: liveness detection to confirm a real person is present, a conversation node where the avatar reads back the transaction details and asks the user to confirm, and an email OTP as a second factor.
Wire Transfer Flow
Coercion detection — With videoAIAnalysisEnabled: true, FaceSign’s post-session video analysis checks for signs of duress: unusual eye movement, stressed speech patterns, or off-screen prompting. This is the key differentiator for wire fraud prevention — even if the real user is present, coercion detection catches scenarios where they are being forced to authorize a transfer.
2

Create the session from your backend

When your transfer service flags a wire above the threshold, call the FaceSign API to create a session.
services/wire-transfer.js
3

Handle the webhook

When the session completes, FaceSign sends a session.status webhook. Fetch the full session to inspect the results and decide whether to authorize the transfer.
api/webhooks/facesign.js
4

Implement the transfer decision

Use this decision matrix to map FaceSign outcomes to transfer actions:

Why conversation matters for wire fraud

Traditional step-up verification checks whether the user is present. FaceSign’s conversation node checks what they know about the transaction. The avatar reads the transfer details aloud and asks the user to confirm. This catches two critical scenarios:
  • Account takeover: An attacker who has stolen credentials cannot confirm transfer details they did not initiate.
  • Coercion: A user being forced to authorize a transfer under duress exhibits behavioral signals that FaceSign’s video AI analysis detects — unusual speech patterns, eye movements suggesting off-screen prompting, or visible distress.

Troubleshooting


Next Steps

Step-Up from Anomaly Detection

Trigger FaceSign when your fraud system flags suspicious activity

Payment Authentication

Use FaceSign as a 3D Secure alternative for high-risk payments

Webhooks

Set up webhook handlers for session events