Swap Between Currencies

Swap between currencies within your Neutron wallet — BTC to fiat, fiat to USDT, BTC to USDT, and more. Both sides use "neutronpay" since funds stay inside Neutron.

Overview

Your BTC Wallet  ──swap──►  Your VND Wallet     (BTC → Fiat)
Your BTC Wallet  ──swap──►  Your USDT Wallet    (BTC → USDT)
Your USDT Wallet ──swap──►  Your BTC Wallet     (USDT → BTC)
Your VND Wallet  ──swap──►  Your BTC Wallet     (Fiat → BTC)

All swaps use the same transaction endpoint — just change the ccy fields.

Create a Swap

BTC → Fiat Example

Convert BTC to 1,000,000 VND:

curl -X POST https://api.neutron.me/api/v2/transaction/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "sourceReq": {
      "ccy": "BTC",
      "method": "neutronpay",
      "reqDetails": {}
    },
    "destReq": {
      "ccy": "VND",
      "amtRequested": 1000000,
      "method": "neutronpay",
      "reqDetails": {}
    }
  }'

BTC → USDT Example

Convert 0.001 BTC to USDT:

curl -X POST https://api.neutron.me/api/v2/transaction/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "sourceReq": {
      "ccy": "BTC",
      "amtRequested": 0.001,
      "method": "neutronpay",
      "reqDetails": {}
    },
    "destReq": {
      "ccy": "USDT",
      "method": "neutronpay",
      "reqDetails": {}
    }
  }'

USDT → BTC Example

Convert 100 USDT to BTC:

curl -X POST https://api.neutron.me/api/v2/transaction/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "sourceReq": {
      "ccy": "USDT",
      "amtRequested": 100,
      "method": "neutronpay",
      "reqDetails": {}
    },
    "destReq": {
      "ccy": "BTC",
      "method": "neutronpay",
      "reqDetails": {}
    }
  }'

Request Fields

FieldTypeRequiredDescription
sourceReq.ccystringSource currency ("BTC", "USDT", "VND", etc.)
sourceReq.methodstring"neutronpay" (always — funds are in your wallet)
sourceReq.amtRequestednumberAmount to convert FROM (set on source or dest, not both)
destReq.ccystringDestination currency
destReq.methodstring"neutronpay" (always — funds stay in your wallet)
destReq.amtRequestednumberAmount to convert TO (set on source or dest, not both)
extRefIdstringYour own reference ID
⚠️

Set the amount on one side only. Setting it on the source means "convert this much". Setting it on the dest means "I want to receive this much".

Response

{
  "txnId": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  "accountId": "ne01-abc123def456",
  "txnState": "quoted",
  "sourceReq": {
    "ccy": "BTC",
    "method": "neutronpay",
    "amtRequested": 0.001,
    "neutronpayFees": 0,
    "reqStatus": "0"
  },
  "destReq": {
    "ccy": "USDT",
    "method": "neutronpay",
    "amtRequested": 97.50,
    "reqStatus": "0"
  },
  "fxRate": 97500.00,
  "createdAt": 1770342000000
}

The fxRate shows the exchange rate applied. Review it before confirming.

Confirm the Swap

curl -X PUT https://api.neutron.me/api/v2/transaction/a1b2c3d4-5678-90ab-cdef-1234567890ab/confirm \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Swaps between internal wallets settle instantly after confirmation.

Supported Currency Pairs

Swaps work between any currencies in your Neutron wallet:

FromToExample
BTCUSDTBitcoin to stablecoin
BTCVND, USD, CAD, etc.Bitcoin to fiat
USDTBTCStablecoin to Bitcoin
VNDBTCFiat to Bitcoin
USDTVNDStablecoin to fiat

Use the Exchange Rates endpoint to check current rates before swapping.

Transaction States

StateMeaning
quotedSwap quoted — review the rate and confirm
completedSwap executed ✅
expiredQuote expired before confirmation
usercanceledCancelled before confirmation

Internal swaps complete instantly — no srccreated or destsent intermediate states.

Notes

  • No KYC required for internal swaps. KYC is only needed for fiat payouts to external bank accounts.
  • Swap quotes have an expiry time. Confirm promptly to lock the rate.
  • Exchange rates fluctuate. Use fxRate in the response to verify the rate before confirming.
  • No network fees for swaps — funds never leave Neutron.

Related