Create an Account
Use this endpoint to create an Account in Midaz. You can create as many accounts as necessary to structure your ledger, but each request creates only one account at a time.
Important: Before creating an Account, ensure the corresponding Asset already exists. Use the Create an Asset endpoint to register it if needed.
If you have previously defined Account Types, make sure they are properly configured before account creation. We recommend either recreating existing accounts or updating them to include the correct type before enabling the Account Type validation feature — this helps prevent validation errors and ensures compliance with your accounting structure.
Note: the type value external is reserved for system-managed external accounts and is rejected on input.
Headers
The type of media of the resource. Recommended value is application/json.
A unique identifier used to trace and track each request.
Bearer JWT token for authentication.
Required when PLUGIN_AUTH_ENABLED=true (enforced in multi-tenant deployments).
Optional in default OSS single-tenant mode.
Format: Bearer <token>
Path Parameters
The unique identifier of the Organization associated with the Ledger.
The unique identifier of the associated Ledger.
Body
The code that identifies the Asset used in the Account. Important: Must be an Asset that you've already created using the Create an Asset endpoint.
100Specifies the Account Type associated with the account. This field is required. Important: When Account Type validation is enabled for your Organization and Ledger, the value must match an existing keyValue defined in your Account Types configuration. When validation is disabled (default behavior), the field is still required but accepts any free-form string without validation. The value external is reserved and rejected on input.
256The name of the Account.
256A unique, user-friendly identifier for the account. Used to reference the account in transactions and other operations. If not provided, the system will use the account's ID as the alias. Note: the alias must not contain the reserved prefix @external/, which is reserved for system-managed external accounts.
100^[a-zA-Z0-9@:_-]+$Defines whether the account should start locked.
The unique identifier of the parent Account, if this is a sub-account.
The unique identifier of the Entity responsible for the Account.
256The unique identifier of the associated Portfolio.
The unique identifier of the Segment which is used to cluster the Account.
An object containing information about the status. Important: If not provided, the default status will be 'ACTIVE'.
An object containing key-value pairs to add as metadata, where the field name is the key and the field value is the value. For example, to add a Cost Center, use 'costCenter': 'BR_11101997'.
Constraints: keys must be at most 100 characters; string values at most 2000 characters. Nested objects are not allowed (values must be string, number, or boolean), the structure may not exceed a maximum depth of 10, and a maximum of 100 keys is permitted.
Response
Indicates that the request was successful and the response contains the expected data.
The unique identifier of the Account.
The unique identifier of the Organization.
The unique identifier of the Ledger.
The code that identifies the Asset used in the Account.
The name of the Account.
256A unique, user-friendly identifier for the account. Used to reference the account in transactions and other operations.
Specifies the Account Type associated with the account.
Defines whether the account should be blocked.
The unique identifier of the Parent Account.
The unique identifier of the Entity responsible for the Account.
The unique identifier of the associated Portfolio.
The unique identifier of the Segment which is used to cluster the Account.
An object containing information about the status.
An object containing key-value pairs to add as metadata, where the field name is the key and the field value is the value. For example, to add a Cost Center, use 'costCenter': 'BR_11101997'.
Constraints: keys must be at most 100 characters; string values at most 2000 characters. Nested objects are not allowed (values must be string, number, or boolean), the structure may not exceed a maximum depth of 10, and a maximum of 100 keys is permitted.
Timestamp of creation (UTC).
Timestamp of last update (UTC).
Timestamp of soft deletion, if applicable (UTC).

