Hosted on-ramp widget or API-first ramp? Compare who owns the UX, KYC, quotes, webhooks, branding, and compliance, plus a decision table and checklist.
An on-ramp widget is a hosted page the provider runs inside your app. It shows quotes, collects KYC, and owns most screens, so you launch fast with little control. An API-first on-ramp gives you endpoints and webhooks: you build the screens, own the user experience and data flow, and take on more engineering work.
Both convert fiat into stablecoins. The difference is who owns each step between "user taps buy" and "USDC lands in a wallet." That split decides your launch date, your conversion rate, and what your compliance team signs.
Key takeaways
New to the stack? What is stablecoin infrastructure maps the layers, and this page zooms into how the on-ramp layer plugs into your product.
A hosted on-ramp widget is a provider-built purchase flow embedded in your product through an iframe, a redirect, or an SDK that opens a modal. Your app passes a few parameters (amount, currency, destination wallet) and the provider handles the rest.
Inside the widget, the provider typically:
Widgets were built for consumer wallets: one person buying a small amount, often by card. Business vs consumer on-ramps covers why that market looks so different from company funding flows.
One technical note. If the widget loads in an iframe, the provider controls which sites may frame it through the Content-Security-Policy frame-ancestors directive (MDN reference). Expect an allowlisting step, and expect some providers to force a redirect or popup instead.
An API-first on-ramp exposes the conversion as REST endpoints plus webhooks. Your product creates the customer, requests a quote, creates the deposit, shows the payment instructions in your own UI, and listens for status events.
The typical call sequence:
The full walkthrough, with edge cases and testing, is in how to integrate a crypto on-ramp API.
Almost everything except the conversion itself. The table below compares the two on the decisions that matter after launch.
| Dimension | Hosted widget | API-first ramp |
|---|---|---|
| Who builds the screens | Provider | You |
| Branding | Logo and colors, provider layout | Fully yours |
| KYC capture | Provider screens, provider customer relationship | Your onboarding, data sent to provider |
| KYC decision | Provider | Provider |
| Quote display | Provider shows it; you may not see the breakdown | You get fees, rate, and expiry as fields |
| Deposit instructions | Shown inside the widget | Returned as data; you render them |
| Status updates | Redirect or callback, varies | Webhooks for each state change |
| Reconciliation | Per-session data, often limited | IDs and references you store in your ledger |
| Typical funding | Cards, mobile wallets, some local methods | Bank transfers: ACH, wire, Pix, SPEI |
| Time to first launch | Days to a few weeks | Weeks |
| Engineering after launch | Low | Ongoing: webhooks, retries, UI states |
| Who the user sees | The provider's name | Your product |
Two rows deserve a closer look.
Quote display. A widget usually shows one all-in price. An API returns the pieces: rate, fees, amount received, and how long the quote stays valid. If your treasury team needs to explain every basis point, you need those fields. Live quotes and slippage explains why the expiry window matters.
Reconciliation. Widgets are built around a session. APIs are built around objects with IDs. If deposits need to match invoices or customer accounts, object IDs win.
The ramp provider always makes the verification decision. The question is who collects the data and who owns the customer relationship.
With a widget, the provider usually collects documents in its own screens and treats the user as its own customer. That's simpler for your compliance team. It's also friction for a user who already passed your onboarding and now sees a second ID check.
With an API, you collect the data once and submit it. Your compliance team now has to think about data handling and about which party screens what. On-ramp compliance: who owns what breaks down that split line by line.
Business customers raise the bar. Under FinCEN's customer due diligence rule, covered US financial institutions identify beneficial owners of legal entity customers (31 CFR 1010.230). Expect a business on-ramp to ask for owners and control persons, whichever integration you pick.
The money transmission question doesn't disappear with a widget either. FinCEN's 2019 guidance on convertible virtual currency business models (FIN-2019-G001) looks at what each party actually does with the value, not at whose screen it happens on. This article is for information only and is not legal advice.
Pick by funding method, by who the user is, and by whether you already run KYC. The table gives a starting point.
| Product | Better fit | Why |
|---|---|---|
| Consumer self-custody wallet, card buys | Widget | Card coverage and KYC in minutes, built for you |
| Neobank or fintech with USD accounts | API | Deposit details inside your account screen, KYC reused |
| B2B treasury or payroll funding | API | Bank transfers, IDs for reconciliation, webhooks to ledger |
| Marketplace collecting from buyers | API | Deposits matched to orders and sellers |
| Prototype or MVP to test demand | Widget | Launch in days, learn before you build |
| Regulated fintech with its own KYC program | API | One verification, your audit trail |
Use these steps in order. Most teams have their answer by step 4.
Whichever you pick, document it for your bank partners. US bank regulators' 2023 interagency guidance on third-party relationships (OCC Bulletin 2023-17) expects banks to understand the vendors in a flow, and your ramp is one of them.
Neither model is free of trade-offs, and each has cases where it is the wrong pick.
Widget limitations:
API limitations:
BlindPay is an API-first on-ramp for businesses. There's no consumer card widget. Your product creates customers, quotes, and payins through the API, renders the deposit instructions itself, and follows each deposit through webhooks.
One step is hosted on purpose: terms of service acceptance. Each customer accepts BlindPay's terms on a page at app.blindpay.com that shows your instance's logo, name, and accent color, then returns to your redirect_url with a tos_id you pass when creating the customer. Everything else stays in your UI.
What the API gives you:
pix_code, SPEI returns a CLABE. Customers with an approved virtual account get dedicated US bank details instead.payin.new, payin.update, and payin.complete, plus tos.accept and customer updates.If your users never see a wallet address, the Abstracted docs flavor treats payins as plain deposits. Payouts run the other direction over Pix, SPEI, ACH, RTP, SEPA, and SWIFT (POBO/COBO).
Write down your funding method and whether you already run KYC. If the answers are "bank transfer" and "yes," start with the payin quickstart on a free development instance and render your first deposit instructions today.
Seven places blockchain payments beat bank rails: contractor payroll, remittances, B2B suppliers, marketplaces, 24/7 treasury, bill pay, and PSP payouts.
AP2, ACP, and x402 each verify that an AI agent had permission to spend. Here is what every protocol covers, who backs it, and the reconciliation gap none of them close.
Seven stablecoin payment platforms compared for US fintechs in 2026: what makes an API production-ready, how each provider handles compliance, settlement speed against ACH, and how to run the evaluation.