Skip to main content
Nuvion covers the full stablecoin lifecycle for a stablecoin-focused business: receive USDC and USDT directly into a blockchain wallet, on-ramp a fiat balance into a stablecoin send to an external wallet, and off-ramp a stablecoin balance into a fiat payout.

Supported networks

Nuvion uses USC as the currency code for USDC and UST for USDT. Use these codes when initiating transfers.

Receive stablecoins

Create a stablecoin account and issue it a wallet address to receive inbound USDC or USDT deposits directly.

Create a stablecoin account

Create an independent stablecoin account that holds a wallet address for receiving stablecoin transfers. Each account has its own banking details and wallet.

Response


Issue a wallet

Issue a stablecoin wallet address by creating account details on an existing account. Each account holds one wallet. To receive on more than one chain, create a separate stablecoin account per chain. See Account Details for how account details are scoped, and Create account details for the full request and response field reference.

Response

The wallet is created with status: pending while the address is being provisioned on-chain. Listen for the account_details.created webhook event to confirm the wallet is ready.

Convert between fiat and stablecoin

Nuvion converts between a fiat position and a stablecoin balance in both directions: request an FX quote for the currency pair, then pass its id as fx_quote_id on the transfer.
  • On-ramp: send stablecoins to an external wallet, funded from a fiat position. Request a quote with from_currency set to your fiat currency and to_currency set to the stablecoin, then debit a fiat account on the transfer.
  • Off-ramp: pay out a stablecoin balance to a bank account. Request a quote with from_currency set to the stablecoin and to_currency set to your fiat currency, then debit a stablecoin account on the transfer.
Create a counterparty and payment details for the recipient before requesting a quote. See Send a Payout for the counterparty step, and its payment details step for both the stablecoin wallet and bank account rails.

Create an FX quote

Request a quote for the pair using POST /fx-quotes, passing amount_from in the currency you’re converting from. See FX Quotes for the full request and response field reference.

Response


Initiate the transfer

Use POST /transfers to move the funds, passing the FX quote’s id as fx_quote_id and debiting the account that holds the currency you’re converting from.
See Create a stablecoin transfer for the on-ramp response schema and error codes, and Create a bank transfer for the off-ramp.

Transfer statuses


Webhooks

Subscribe to these events to track wallet provisioning and transfer lifecycle for both on-ramp sends and off-ramp payouts:
Verify a transfer’s status with GET /transfers/{transfer_id} before treating an on-ramp send or off-ramp payout as complete, rather than relying on the webhook payload alone. See Verifying webhook signatures to confirm the event itself is genuine.

What’s next

Send a payout

The full set of payout rails and destination currencies available for off-ramping.

FX Quotes API reference

Full endpoint documentation for creating and retrieving FX quotes.

Transfers API reference

Full endpoint documentation for initiating and managing transfers.