TL;DR
Two integration models for exchange connectivity and withdrawal flows:- Headful iFrame widget. The vendor hosts the UI in a cross-origin
<iframe>and communicates with the host page viapostMessage. - Headless whitelabel API. The vendor exposes REST endpoints and optional SDKs; the integrator builds and owns the UI.
api-bluvo.com, plus optional @bluvo/sdk-ts and @bluvo/react. No Bluvo iFrame.
Comparison
| iFrame Widget | Whitelabel API | |
|---|---|---|
| UI ownership | Vendor DOM, cross-origin | Integrator DOM, same-origin |
| Flow control | Vendor-defined, postMessage events | Enumerable states, direct fetch |
| Bundle | Vendor runtime on the critical path | Zero, or SDK (~few KB) |
| Latency | Extra document load, frame-ancestors negotiation | Single request round-trip |
| Analytics | Only vendor-exposed events | Full x-bluvo-* request tracing |
| A/B testing | Constrained to vendor surfaces | Any screen, any variant |
| Accessibility | Vendor markup, limited override | Integrator markup, full control |
| Agent / MCP | Opaque cross-origin DOM | Deterministic function calls |
| Compliance surface | Shared with the vendor | Integrator-owned |
| Time-to-first-flow | Hours, if widget config fits | Hours with SDK, days without |
Trade-offs
iFrame constraints. Cross-framepostMessage for state sync, frame-ancestors and CSP negotiation, vendor bundle on the critical path, mobile scroll and focus quirks, third-party branding on the 2FA screen. No way to gate entry on KYC, branch by user segment, or inject product-specific confirmation steps.
Whitelabel responsibilities. You own forms, error states, and KYC / 2FA branching. A mature SDK collapses the protocol (OAuth popup, 2FA, SMS, MFA, quote refresh, execute) into enumerable states; without one, you wire the states yourself against REST with x-bluvo-* headers.
Code
By audience
- Product and business. Brand, analytics, funnel, compliance surface, and A/B testing on the highest-trust screen in the app.
- Engineering. Same headers, same
walletId, same auth. The SDK reduces 30+ withdrawal states (OAuth, 2FA, SMS, KYC, MFA, quote, execute) to booleans, or call REST directly for zero runtime cost. See/learn/sdk/state-machine. - End users. Faster first paint, native UI, consistent copy, no embedded-document scroll or focus quirks on mobile.
Automation and MCP
Why Bluvo ships whitelabel only
iFrames are a legitimate choice for prototypes, internal tools, and demos. Bluvo’s customers, PSPs, dApps, and agent platforms, care about brand, conversion, compliance, and agent compatibility more than “shippable in an afternoon.” With the state-machine SDK, the time an iFrame saves is not worth the trade-offs.
Next Steps
OAuth2 Integration
Implement the full OAuth2 popup flow
State Machine SDK
30+ withdrawal states reduced to booleans
Agent Skills
Make AI agents build accurate Bluvo integrations