Bank Payments — Using Elements
Ozura Elements lets you embed account number and routing number fields directly in your own page. Input fields run inside isolated iframes served from Ozura’s domain — raw bank data never leaves those iframes. Tokenization happens in the browser; you receive a vault token that your backend can use to process an ACH payment with your processor.Prefer a hosted page? See Checkout (merchants only). Need to tokenize from your backend? See Using the API.
How It Works
Account and routing numbers travel directly from the browser to the Ozura Vault — your server only ever sees a token.Install the SDK
Quick Start
1. Get your credentials
Get your Vault API Key from ozuravault.com → your project → Applications. Your first vault project is a test project by default. To create a production project, use the project dropdown in the top-left → Create new project → enable the Production switch.| Credential | Required | Where |
|---|---|---|
| Vault API Key | Always | ozuravault.com → Applications |
| Vault Pub Key | Production only | Provided when you set up a production project — contact ammar@ozura.com |
Test/sandbox vault API key? No pub key needed — you can omit
pubKey entirely. Production vault API key? Pass your production pub key as pubKey. Do not hardcode credentials in source code; use environment variables.See Sandbox for how to create a Test project at ozuravault.com and grab a test vault key.2. Initialize and mount bank fields
3. Process the payment on your backend
Your backend receives thetoken and forwards it to your ACH processor via the Proxy:
Token Response
createBankToken() resolves with:
Enabling the Submit Button
Usechange events to gate your submit button until both fields are complete and valid:
- Account number — 4–17 digits; masked like a password field to prevent shoulder surfing
- Routing number — Exactly 9 digits, validated against the standard ABA checksum algorithm
Field Validation & Error Handling
error field:
"Invalid account number"— fewer than 4 digits or not all digits"Invalid routing number"— not 9 digits or fails ABA checksum
React Integration
For most integrations, use the pre-builtOzBankCard component (or the individual OzBankAccountNumber / OzBankRoutingNumber components). See the React SDK reference for the full prop API.
OzVault API inside a useEffect to create and mount bank elements manually:
Styling
Bank elements accept the samestyle config as card elements:
Next Steps
Elements SDK Reference
Complete API reference — all methods, options, events, and TypeScript types.
Styling & Appearance
Customize fonts, colors, and states to match your brand.
Proxy
Forward the bank token to your ACH processor.
API Reference — Tokenize
Token response shape and all tokenize options.