---
title: "Create a new omnibus structure within a domain"
method: POST
path: "/v1/domains/{domainId}/omnibus"
tags: ["Omnibus"]
---

# Create a new omnibus structure within a domain

`POST /v1/domains/{domainId}/omnibus`

## Request

- Base URL: `https://docs.ripple.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.ripple.com/v1/domains/{domainId}/omnibus`
- Auth: none declared
- TypeScript: <https://skmtc.dev/ripple/apis/ripple-custody-api/docs/v1/domains/:domainId/omnibus/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `domainId` string, uuid, required

## Request body

- OmnibusCreateOmnibusRequest
  - `alias` string, required: Alias for the omnibus account
  - `vaultId` string, uuid, required: Identifier of the vault where the omnibus account keys will be stored
  - `keyStrategy` 'VaultHard' | 'VaultSoft' | 'Random', required
  - `lockStatus` 'Unlocked' | 'Locked'
  - `ledgerIds` string[]: List of ledger IDs to activate on the omnibus account. If omitted, all enabled ledgers compatible with the vault and key strategy are activated automatically.
  - `description` string: Optional description for the omnibus account
  - `customProperties` object: Custom key-value properties for the omnibus account
  - `ignoredAccountIds` string[]: List of custody account IDs to ignore during event processing (e.g., Gas Station account)
  - `sponsoringGasStationId` string, uuid: Entity ID of the Gas Station account that will sponsor fees for this omnibus account.

## Response `201`

Omnibus structure created

- OmnibusCreateOmnibusResponse
  - `omnibus` OmnibusOmnibusResponse, required
    - `id` string, uuid, required: Unique identifier of the omnibus structure
    - `domainId` string, uuid, required: Identifier of the domain this omnibus structure belongs to
    - `custodyAccountId` string, uuid, required: Identifier of the custody account backing this omnibus structure
    - `alias` string, required: Alias of the omnibus structure
    - `status` 'CREATING' | 'PENDING_SPONSORSHIP' | 'ACTIVE' | 'FAILED', required
    - `lockStatus` 'UNLOCKED' | 'LOCKED', required
    - `ignoredAccountIds` string[], required: List of custody account IDs to ignore during event processing
    - `createdAt` string, date-time, required: Timestamp when the omnibus structure was created
    - `updatedAt` string, date-time, required: Timestamp when the omnibus structure was last updated
    - `sponsoringGasStationId` string, uuid: Entity ID of the Gas Station account that sponsors fees for this omnibus account
    - `balances` OmnibusTenantBalanceEntry[]: Balances of the host tenant per ticker/ledger combination
      - `tickerId` string, uuid, required: Ticker identifier
      - `ledgerId` string, required: Ledger identifier
      - `reserved` string, required: Reserved amount
      - `quarantined` string, required: Quarantined amount
      - `availableBalance` string: Available balance from accounting service; absent if the accounting service is unavailable
  - `unsignedIntent` OmnibusUnsignedIntentPayload, required: Complete Propose object ready to be signed and submitted to Custody via POST /v1/intents. The frontend signs this object and sends it as the "request" field in ProposeIntentBody.
    - `type` 'Propose', required: Intent type, always "Propose"
    - `id` string, uuid, required: Unique identifier for the intent
    - `author` OmnibusUnsignedIntentPayloadAuthor, required: The user proposing the intent
      - `domainId` string, uuid, required
      - `id` string, uuid, required
    - `expiryAt` string, date-time, required: Expiry time for the intent
    - `targetDomainId` string, uuid, required: Domain where the intent will be executed
    - `payload` unknown, required
    - `description` string: Description of the intent
    - `customProperties` object, required: Intent-level custom properties

## Other responses

- `400`: Intent dry-run validation failed
- `409`: An omnibus structure already exists for this domain

---

[API](https://skmtc.dev/ripple/apis/ripple-custody-api.md) - [All operations](https://skmtc.dev/ripple/apis/ripple-custody-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ripple/apis/ripple-custody-api/revisions/c6f0ad6b70c0?raw)
