Quick reference for transaction request/response structure. Use these samples for testing in Postman, curl, or your integration code.
Every transaction follows the same schema — only the method, ccy, and reqDetails change based on what you're doing.
JSON
{
"extRefId": "your-unique-ref-123",
"note": "Optional internal note",
"deductNetworkFeesFromDest": false,
"sourceReq": {
"ccy": "BTC",
"method": "neutronpay",
"amtRequested": 0.001,
"reqDetails": {},
"kyc": { }
},
"destReq": {
"ccy": "BTC",
"method": "lightning",
"reqDetails": {
"paymentRequest": "lnbc..."
},
"kyc": { }
},
"sourceOfFunds": {
"purpose": 1,
"source": 5,
"relationship": 3
}
}
Field Type Required Description extRefIdstring ❌ Your own reference ID — must be unique per transaction notestring ❌ Internal note (not sent to recipient) deductNetworkFeesFromDestboolean ❌ If true, fees are deducted from the sent amount sourceReqobject ✅ Where funds come from destReqobject ✅ Where funds go to sourceOfFundsobject ❌ Required only for fiat payouts
Field Type Description ccystring Currency code ("BTC", "USDT", "VND", "USD", etc.) methodstring Payment method (see table below) amtRequestednumber Amount — set on one side only reqDetailsobject Method-specific details (address, invoice, bank info, etc.) kycobject KYC info — only required for fiat payouts
Method Direction Description neutronpaySource or Dest Internal Neutron wallet lightningSource or Dest Lightning Network on-chainSource or Dest Bitcoin on-chain tronDest only USDT via TRON (TRC-20) ethDest only USDT via Ethereum (ERC-20) — coming soon vnd-instantDest only Vietnamese Dong bank payout
Method reqDetails Example neutronpay{} (empty)— lightning (send){ "paymentRequest": "lnbc..." }Bolt11 invoice lightning (receive){} (empty)Invoice generated in response on-chain (send){ "address": "bc1q..." }Bitcoin address on-chain (receive){} (empty)Address generated in response tron{ "address": "T..." }TRON address vnd-instant{ "bankAcctNum": "...", "institutionCode": "..." }Bank details
Bash
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": "lightning",
"reqDetails": {}
},
"destReq": {
"ccy": "BTC",
"method": "neutronpay",
"amtRequested": 0.0001,
"reqDetails": {}
}
}'
Bash
curl -X POST https://api.neutron.me/api/v2/transaction/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"extRefId": "payout-001",
"sourceReq": {
"ccy": "BTC",
"method": "neutronpay",
"amtRequested": 0.001
},
"destReq": {
"ccy": "VND",
"method": "vnd-instant",
"reqDetails": {
"bankAcctNum": "0123456789",
"institutionCode": "970422"
},
"kyc": {
"type": "individual",
"details": {
"legalFullName": "LE VAN A",
"countryCode": "VN"
}
}
},
"sourceOfFunds": {
"purpose": 1,
"source": 5,
"relationship": 3
}
}'
All transaction endpoints return the same response shape:
JSON
{
"txnId": "d3f1458a-121b-4a90-bf2d-f01c821eab61",
"accountId": "ne01-abc123def456",
"accountDisplayName": "My Account",
"extRefId": "your-unique-ref-123",
"txnState": "quoted",
"sourceReq": {
"ccy": "BTC",
"method": "neutronpay",
"amtRequested": 0.001,
"amtSettled": null,
"neutronpayFees": 0,
"networkFees": 0.0000005,
"reqStatus": "0",
"expiresAt": 1770345600000,
"createAt": 1770342000000,
"updatedAt": 1770342000000
},
"destReq": {
"ccy": "VND",
"method": "vnd-instant",
"amtRequested": 300000,
"amtSettled": null,
"reqStatus": "0",
"reqDetails": {
"bankAcctNum": "0123456789",
"institutionCode": "970422"
}
},
"fxRate": 2750000000,
"createdAt": 1770342000000
}
Field Type Description txnIdstring Unique transaction ID accountIdstring Your account ID extRefIdstring Your reference ID (if provided) txnStatestring Current state — see Transaction Status Types sourceReqobject Source side with amounts, fees, and status destReqobject Destination side with amounts and status fxRatenumber Exchange rate applied (1 for same-currency transactions) sourceReq.amtSettlednumber Actual amount settled (populated after completion) sourceReq.neutronpayFeesnumber Neutron service fee sourceReq.networkFeesnumber Network/mining fee sourceReq.reqStatusstring Request status code sourceReq.expiresAtinteger Expiry timestamp (ms)