paymentMethods: { mode: "auto" }, the fiat rails
enabled for your org appear automatically in each user’s localized picker,
alongside exchanges and wallets.
Fiat rails are enabled per-org. Contact us to
request access and have specific rails enabled.
Supported rails
A rail appears for a user when it’s offered in their region and enabled for
your org.
Verification
Each rail carries the verification requirement shown above. First-time users complete it once inside the hosted flow; returning users skip through.- No verification: the user can pay immediately.
- Phone verification: a one-time phone confirmation (~1 min).
- ID verification: name, address, and a government-issued ID (~3 min).
- ID and selfie verification: the above plus a selfie check (~5 min).
Fiat in auto mode
WithpaymentMethods: { mode: "auto" }:
- Bank rails fold into one Bank transfer entry that expands to the rails available.
- Apple Pay renders as its own entry.
- Users in a country with no enabled fiat rail see crypto, exchange, and wallet methods instead.
How the hosted flow works
When the user picks a fiat rail, they’re handed off to a Daimo-hosted page that walks them through:- Rail selection: choose the rail. Skipped if the flow is pinned to one.
- Identity verification: first-time users complete the KYC step for that rail. Returning users skip through.
- Payment: the user pays through their chosen rail, e.g. an Interac e-Transfer, ACH debit, Apple Pay charge, or SEPA bank transfer.
- Confirmation: once the fiat payment clears, the page confirms success and the user returns to your app. Daimo delivers the stablecoin to your destination.
Integration
Modal SDK
SetpaymentMethods when creating the session.
{ mode: "auto" } includes every fiat rail enabled for the user’s country in
the localized picker; { mode: "fixed", type } pins the session to a single
rail.
type values for fiat: Interac, ApplePay, ACH, SEPA, JPYC, ARS, BreB.
See Payment Methods for the full reference.
Auth prefill
If you already know the user’s email or phone, include it in session metadata:metadata.email skip email entry and start at OTP verification.
Apple Pay users with metadata.phone skip phone entry and start at SMS OTP
verification. They still verify each value before any account is created or
reused. Phone numbers must be E.164. If a hint is missing or invalid, Daimo
shows the normal entry step.
Custom integration
If you’re not using the modal, drive the flow yourself: create the session, then callPOST /v1/sessions/{id}/paymentMethods
with { type: "fiat" } to get back a fiat.hostedUrl.
Render that URL in a WebView, iframe, or new tab.
The hosted page handles KYC and payment collection, and Daimo delivers the
stablecoin once the fiat transfer clears. See the full four-step flow for
custom integrations.
Pass the clientSecret returned by POST /v1/sessions.
Here is the fiat-specific POST /paymentMethods request and response:
fiat.hostedUrl in a WebView or a new browser tab. When the user finishes,
they return to your app; poll the session or use webhooks
for the final status.
Omit fiatMethod to let the user pick from every rail enabled for your org, or
set it to one of interac, apple_pay, ach, sepa, jpyc, ars, breb to pin the flow to a specific one.
Rendering the hosted URL
hostedUrl points to a mobile-friendly Daimo page. Three ways to render it:
- Native iOS / Android / React Native app → load in a WebView. The page
posts session events back via
postMessage. Full reference and code samples in Native WebView; on React Native,DaimoFrameRNhandles this for you. - Web app → open in a new tab or redirect. No special integration needed.
- In-page iframe → append
?layout=embedto render inline instead of as a modal.
Tracking status
Fiat sessions use the same lifecycle, statuses, and webhooks as every other session. For a full overview, see Sessions and Webhooks.
Subscribe to
session.processing, session.succeeded, and session.bounced
via webhooks to drive order fulfillment.
Reference
- Payment Methods -
autoandfixedmodes. - Create Session -
display.paymentMethods; optionally passmetadata.emailormetadata.phoneto skip fiat auth entry. - Create Payment Method - request body
{ type: "fiat", fiatMethod? }, responsefiat.hostedUrl. - Native WebView - load the hosted URL on iOS and Android.
- React Native - embed with
DaimoFrameRN. - KYC Import - reuse existing verified users.
- Sessions - payment method shape and lifecycle details.