- Plaid connection (https://plaid.com/)
- Bank statement upload
How it works
- Render a widget (Plaid Connect or Statement Upload) with a client-side Publishable Key.
- Widget collects user input and POSTs it to
POST /api/v1/embedded/actions
with:- the publishable key
- the Action Type (
plaid_link
orstatement_upload
) - opaque Action Token (e.g., Plaid
public_token
or file handle) - developer-supplied metadata (user id, application id, etc.)
- OmniAI validates the key, secures the token, and begins processing.
- Your backend receives a Webhook / REST callback with normalized results (transactions, PDFs parsed, errors, etc.).

Quickstart
Widget configuration (OmniEmbedded.mount
)
Option | Type / Example | Default | Description |
---|---|---|---|
action | "plaid" | "upload" | "auto" | "auto" | Which UI to show."auto" lets the end-user decide. |
publishableKey | "pk_live_…" | — | Required. |
metadata | { userId: 'usr_123', … } | {} | Free-form object (≤ 2 KB) returned verbatim in webhooks. |
environment | "sandbox" | "live" | "live" | Sandbox hits test endpoints & dummy Plaid items. |
onComplete | function(result) {…} | — | Fires once OmniAI has accepted the action (result ⇒ { actionId, type } ). |
onExit | function(info) {…} | — | Fires if user closes the widget early. |
onChange | function(event) {…} | null | Streams every front-end interaction—stage transitions, file picks, Plaid events, user exits, etc. |