Auto Conversion Rules
Auto Conversion Rules allows users to automatically convert funds between fiat and stablecoins or stablecoin and stablecoins based on predefined instructions. Once configured, 1Money executes conversions in real time as funds are received, removing the need for manual trading or operational intervention.
When selecting the destination to convert the funds to, user can specify an external bank or wallet account or simly holding balances on 1Money platform, enabling seamless movement across fiat and supported stablecoins (and vice versa) according to the user’s preferences.
1. Key Concept
1.1 What is an Auto Conversion Rule?
An Auto Conversion Rule is a user-defined instruction that specifies:
- Source Asset: The incoming currency/asset and its network (e.g., USD via
US_FEDWIRE, USDC on Base) - Target Asset: The destination currency/asset and its network or 1Money platform balance (e.g., USDC on Base, USD via
US_FEDWIRE, 1Money balance) - Destination: Where converted funds should be sent (external bank account, external wallet, or held on 1Money platform)
- Local Payment Code (conditionally required): Country- and rail-specific payment purpose for crypto → fiat payouts (
destination.code) - Payout Memo (optional): Bank remittance memo on crypto → fiat payouts to an external account (
destination.memo)
2. How It Works
- Users define auto conversion rules that specify:
- Source asset or currency on specific network (e.g., USD via
US_FEDWIRE, USDC on Base) - Target asset or currency on specific network or on 1Money platform (e.g., USDC on Base, USD via
US_FEDWIRE, 1Money balance)
- Source asset or currency on specific network (e.g., USD via
- When funds meet the rule conditions, 1Money automatically executes the conversion and updates the user’s portfolio balance.
- User receives a webhook when auto conversion rules are executed
2.1 Deposit Identification by Conversion Type
2.1.1 Fiat → Crypto: Reference Code
For fiat deposits (ACH, Wire, SWIFT), each Auto Conversion Rule is assigned a unique reference_code.
Step-by-step process:
- User creates a Fiat → Crypto
Auto-conversion Rule - System generates a unique
reference_codefor this rule - User retrieves the reference_code via the Retrieve Auto Conversion Rule API
- Payer includes the
reference_codein the bank transfer reference/memo field - Banking partner processes the transfer and forwards deposit information to 1Money
- 1Money matches the
reference_codeto the corresponding rule - System executes the conversion and credits the target asset
- User receives a webhook notification upon completion
Why reference_code is required:
In different scenarios, users may have different expectations for deposits.
- In some cases, users simply want to make a standard deposit and have the funds credited to the platform.
- In other cases, users want to enable auto-conversion, meaning the funds are automatically converted into crypto after the deposit, and they may also want to proceed with a withdrawal.
To distinguish between these scenarios, we ask users to provide a
reference_codewhen making a deposit. This is because a user may create multipleauto-conversion rules, and eachreference_codecorresponds to a specificauto-conversion rule.If a
reference_codeis provided and it matches the one required by a particularauto-conversion rule, then once we receive the deposit instruction, we will mark the deposit as being created for that specificauto-conversion rule. The deposit will then follow the instructions defined by thatauto-conversion rule.1Money does not directly accept fiat deposits; all fiat deposits flow through third-party banking partners. When the banking partner forwards deposit information to 1Money, the
reference_codeprovides the linkage between the bank transfer and your specificauto-conversion rule.Multiple Rules:
A user may create multiple fiat-based
auto-conversion rules. Each rule has its own uniquereference_code, allowing you to route different deposits to different conversion paths.
2.1.2 Crypto → Fiat: Dedicated Wallet Address
For crypto deposits, each Auto Conversion Rule is assigned a unique, dedicated deposit wallet address.
Step-by-step process:
- User creates a Crypto → Fiat Auto Conversion Rule
- System generates a
unique deposit wallet_addressfor this rule - User retrieves the
wallet_addressvia the API - Sender transfers crypto to the
dedicated wallet address - 1Money automatically detects the deposit and identifies the corresponding rule
- System executes the conversion and sends fiat to the configured destination
- User receives a webhook notification upon completion
Seamless Experience:
The wallet address itself serves as the identifier — no additional reference code is required for crypto deposits.
2.2 Payout Memo (Crypto → Fiat)
For crypto → fiat rules that withdraw to an external bank account, you can set an optional destination.memo when creating the rule. That memo is sent with every automatic payout produced by the rule (the remittance / reference field on the bank transfer).
Behavior:
- Applied only when
destination.external_account_idis set (crypto → fiat bank payout) - Normalized on create: accents are folded, characters outside
A-Z a-z 0-9and/?:().,'+-are removed, then length is capped by rail (80 for ACH, 140 for WIRE / SWIFT) - The value returned on retrieve is the normalized memo the bank will receive
- If
memois sent on a destination that cannot deliver it to a bank (conversion-only hold, crypto wallet destination, or fiat → crypto rules), it is ignored
Example (create body excerpt):
{
"source": { "asset": "USDC", "network": "ETHEREUM" },
"destination": {
"asset": "USD",
"external_account_id": "381b013e-8893-11f0-b308-2eaa4f6974f2",
"memo": "Settlement 2026-08"
}
}2.3 Local Payment Code (Crypto → Fiat)
Some countries and payout rails require a local payment purpose code. For a crypto → fiat rule that withdraws to an external bank account, select the applicable canonical value from the Local Payment Code guide and submit it as destination.code.
The field is conditionally required: 1Money validates it against the destination account's actual country and payment rail. A missing, blank, or unsupported code is rejected when that route requires one. Do not send destination.code for conversion-only rules or crypto wallet destinations.
Example (create body excerpt):
{
"source": { "asset": "USDC", "network": "ETHEREUM" },
"destination": {
"asset": "USD",
"external_account_id": "381b013e-8893-11f0-b308-2eaa4f6974f2",
"code": "cn_swift_cstrdr"
}
}3. Common Use Cases
- Automatically convert USD deposits into stablecoins for on-chain settlement.
- Convert stablecoin receipts back to USD for treasury or payouts.
- Enable instant merchant settlement without exposing end users to FX or crypto complexity.
- Support payroll, remittances, or platform balances with predictable asset formats.
- Power embedded finance and platform / agency / B2B2C models.
4. Example Scenario
A platform configures an Auto Conversion rule to convert all incoming USD deposits into USDC.
- A payer sends USD to the user’s virtual account.
- Funds are credited to the portfolio.
- 1Money automatically converts USD to USDC based on the rule.
- The USDC balance is made available for transfers, payouts, or withdrawals.
The reverse flow works the same way for stablecoin → USD conversions.
Updated 21 days ago
