Skip to main content
Onramp is the fiat-to-crypto direction: your user pays fiat into a virtual bank account and Pulse delivers crypto to a destination address. This is the engine-direct flow — driven from your backend with your sk_ API key, and live today (distinct from the preview embedded collection product).
1

Create a quote

Lock a price with pulse.quotes.create(...), or preview one for display with pulse.rates.preview(...) (see Preview a rate). Quotes use the UPPERCASE EngineNetwork casing.
2

Create the onramp order

3

Show the virtual account

The order carries a virtual bank account in order.account. Display it so the user can transfer fiat:
4

Track it to completion

Poll pulse.onramp.retrieve(order.id) for status changes. The flow currently completes at the funded state — “transfer received”.
A few onramp fields are still settling against the published contract: for some providers bank_name / bank_code / expires_at are filled in by the SDK from a provider map rather than returned by the engine, and the onramp status set isn’t in the published contract yet. Treat the status values as informational for now.
The embedded collection product also exposes an onramp direction (direction: 'onramp' with a pay_account on the order), but that path is part of the preview surface.
This surface reflects the @pulsebyshiga/node types — the working view of the API until the canonical Pulse OpenAPI contract is published. Wire shapes (snake_case JSON, decimal-string amounts) are stable; a few fields are still being reconciled and are flagged where they appear.