Create an auto route
Create an auto route and provision dedicated deposit addresses. The routing configuration is immutable; only name stays editable through PATCH /rulesets/{id}. The name is not part of the idempotencyKey comparison, so a same-key retry returns the stored auto route under its current name. The recipient must be an ACTIVE wallet registered to the owning account. Optional senderUserId links a user with a saved location in that exact account; the link is immutable and uses the Receive creation entitlement. Pass subaccountId to create one for a direct child. Addresses start PENDING and provision asynchronously. INSTANT creation requires a configured delivery asset and operational wallet. With forceInstant: true, deposits wait for instant settlement when the corridor or pool is unavailable. Without it, an unavailable corridor or pool falls back to NETTED. A disabled payout asset is held in either mode. Deposits over the applicable account threshold are held.
Body
- Type: stringdelivered
Asset min length:1required - Type: stringdelivered
Chain min length:1required - Type: stringto
Address min length:1required - beneficiary
Required at auto route creation when beneficiary collection is enabled. Saved for payments of $3,000 or more between different users. See https://docs.bettermoney.com/travel-rule.
Required at auto route creation when beneficiary collection is enabled. Saved for payments of $3,000 or more between different users. See https://docs.bettermoney.com/travel-rule.
- dateType: stringFormat: date
Of Birth requiredIndividual beneficiary’s date of birth, YYYY-MM-DD. Must not be in the future.
- familyType: string
Name min length:1max length:200requiredIndividual beneficiary’s family name.
- givenType: string
Name min length:1max length:200requiredIndividual beneficiary’s given name.
- isType: boolean
Self Hosted requiredWhether the beneficiary controls the destination wallet without a wallet provider.
- locationType: objectrequiredProperties: 2
Individual beneficiary’s country and subdivision of residence.
- typeenumconst:individualrequired
- legalType: string
Entity Identifier max length:512Legal entity identifier (LEI) of the wallet provider, not the beneficiary. Required for hosted wallets; omit or pass an empty string for self-hosted wallets. Find it with GET /travel-rule/vasps.
- Type: "invoiced" or "deducted"enumfee
Collection How TBMC’s fee is collected.
invoiced(the default) bills it on the monthly invoice and the recipient receives the full amount.deductedtakes it out of the payment: the recipient receives the funding amount minus the fee. - Type: booleanforce
Instant - Type: stringidempotency
Key min length:1max length:255 - Properties: 1Type: objectmetadata
- Type: "NETTED" or "INSTANT"enummode
- Type: stringnamemin length:1max length:120
- Type: stringFormat: uuidsender
User Id - Type: stringFormat: uuidsubaccount
Id Create this under one of your subaccounts instead of the authenticated account. Must be a direct child of the authenticated account.
Responses
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://api.bettermoney.com/api/v1/rulesets \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"beneficiary": {
"type": "individual",
"givenName": "",
"familyName": "",
"dateOfBirth": "",
"location": {
"country": "",
"subdivision": ""
},
"isSelfHosted": true,
"legalEntityIdentifier": ""
},
"name": "",
"senderUserId": "",
"deliveredAsset": "",
"deliveredChain": "",
"toAddress": "",
"mode": "NETTED",
"forceInstant": true,
"feeCollection": "invoiced",
"metadata": {
"additionalProperty": "anything"
},
"idempotencyKey": "",
"subaccountId": ""
}'
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"accountId": "123e4567-e89b-12d3-a456-426614174000",
"senderUserId": null,
"name": null,
"status": "ACTIVE",
"deliveredAsset": "string",
"deliveredChain": "string",
"toAddress": "string",
"mode": "NETTED",
"forceInstant": false,
"feeCollection": "invoiced",
"metadata": {
"additionalProperty": "anything"
},
"addresses": [
{
"chain": "string",
"failureReason": "string",
"status": "PENDING",
"address": null
}
],
"createdAt": "2026-10-22T14:42:28.555Z",
"beneficiary": {
"type": "individual",
"givenName": "string",
"familyName": "string",
"dateOfBirth": "2026-10-22",
"location": {
"country": "string",
"subdivision": "string"
},
"isSelfHosted": true,
"legalEntityIdentifier": "string"
}
}