Embedded
Bank Statements
Add bank-data capture & statement upload to any flow
OmniAI provides a pre-built component aimed at making it easy for users to connect bank account data to your system. There are two ways to injest user bank data with Omni:
- Plaid connection (https://plaid.com/)
- Bank statement upload
We provide a standardized response body with tagged transactions (either from Plaid or Omni’s Bank statement extractor) corresponding to the number of periods requested.
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. |