ImportantYou’re viewing the documentation for the previous version of Midaz (v2.x.x) and its plugins. If you’re working with the current release, check out the newest version of the docs to avoid version mismatches.
Key highlights
- RESTful architecture: Ensures predictable, consistent, and easy-to-use APIs.
- JSON data exchange: Simplifies integrations with universal format compatibility.
- Explicit versioning: Guarantees backward compatibility during updates.
NoteBuilding a plugin or integration for Lerian? The Partners Hub has everything you need, development standards, documentation rules, and tools to help your solution work smoothly across the Lerian ecosystem.Recommended for partners, clients, and internal teams working on custom plugins
Authentication
Midaz does not include a built-in authentication or authorization system. This gives you the flexibility to integrate with your existing identity provider or security stack. If you need a ready-to-use solution, you can add Access Manager, a separate paid plugin developed by Lerian. It handles both authentication and fine-grained authorization, making it easier to control who can access what across your Midaz ecosystem. For more information, contact us.Midaz APIs
Midaz is structured into three domains: Onboarding, Portfolio, and Transactions, each with APIs and endpoints tailored to specific functionalities. The tables below provide an overview of the available endpoints within each domain:Onboarding domain
Organizations API
Endpoint | Path |
---|---|
Create an Organization | POST /v1/organizations |
List Organizations | GET /v1/organizations |
Retrieve an Organization | GET /v1/organizations/{organization_id} |
Update an Organization | PATCH /v1/organizations/{organization_id} |
Delete an Organization | DELETE /v1/organizations/{organization_id} |
Ledgers API
Endpoint | Path |
---|---|
Create a Ledger | POST /v1/organizations/{organization_id}/ledgers |
List Ledgers | GET /v1/organizations/{organization_id}/ledgers |
Retrieve a Ledger | GET /v1/organizations/{organization_id}/ledgers/{ledger_id} |
Update a Ledger | PATCH /v1/organizations/{organization_id}/ledgers/{ledger_id} |
Delete a Ledger | DELETE /v1/organizations/{organization_id}/ledgers/{ledger_id} |
Portfolio domain
Assets API
Endpoint | Path |
---|---|
Create an Asset | POST /v1/organizations/{organization_id}/ledgers/{ledger_id}/assets |
List Assets | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/assets |
Retrieve an Asset | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id} |
Update an Asset | PATCH /v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id} |
Delete an Asset | DELETE /v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id} |
Segments API
Endpoint | Path |
---|---|
Create a Segment | POST /v1/organizations/{organization_id}/ledgers/{ledger_id}/segments |
List Segments | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/segments |
Retrieve a Segment | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/segments/{segment_id} |
Update a Segment | PATCH /v1/organizations/{organization_id}/ledgers/{ledger_id}/segments/{segment_id} |
Delete a Segment | DELETE /v1/organizations/{organization_id}/ledgers/{ledger_id}/segments/{segment_id} |
Portfolios API
Endpoint | Path |
---|---|
Create a Portfolio | POST /v1/organizations/{organization_id}/ledgers/{ledger_id}/portfolios |
List Portfolios | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/portfolios |
Retrieve a Portfolio | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/portfolios/{portfolio_id} |
Update a Portfolio | PATCH /v1/organizations/{organization_id}/ledgers/{ledger_id}/portfolios/{portfolio_id} |
Delete a Portfolio | DELETE /v1/organizations/{organization_id}/ledgers/{ledger_id}/portfolios/{portfolio_id} |
Accounts API
Endpoint | Path |
---|---|
Create an Account | POST /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts |
List Accounts | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts |
Retrieve an Account | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/{account_id} |
Retrieve an Account by Alias | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/alias/{alias} |
Retrieve an External Account | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/external/{asset_code} |
Update an Account | PATCH /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/{account_id} |
Delete an Account | DELETE /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/{account_id} |
Transactions domain
Balances API
Endpoint | Path |
---|---|
List Balances | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/balances |
Retrieve a Balance | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/balances/{balance_id} |
Retrieve Balances by Account | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/{account_id}/balances |
Retrieve an Account by Alias | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/alias/{alias}/balances |
Retrieve an External Account | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/external/{asset_code}/balances |
Update a Balance | PATCH /v1/organizations/{organization_id}/ledgers/{ledger_id}/balances/{balance_id} |
Delete a Balance | DELETE /v1/organizations/{organization_id}/ledgers/{ledger_id}/balances/{balance_id} |
Transactions API
Endpoint | Path |
---|---|
Create a Transaction using JSON | POST /v1/organizations/{organization_id}/ledgers/{ledger_id}/transactions/json |
Create a Transaction using DSL | POST /v1/organizations/{organization_id}/ledgers/{ledger_id}/transactions/dsl |
Create an Inflow Transaction | POST /v1/organizations/{organization_id}/ledgers/{ledger_id}/transactions/inflow |
Create an Outflow Transaction | POST /v1/organizations/{organization_id}/ledgers/{ledger_id}/transactions/outflow |
List Transactions | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/transactions |
Retrieve a Transaction | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id} |
Update a Transaction | PATCH /v1/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id} |
Operations API
Endpoint | Path |
---|---|
List Operations by Account | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/{account_id}/operations |
Retrieve an Operation by Account | GET /v1/organizations/{organization_id}/ledgers/{ledger_id}/accounts/{account_id}/operations/{operation_id} |
Error list
Refer to the Midaz Error List page to check which errors Midaz endpoints might return. You’ll find all the details you need to handle them.Access Manager APIs
The primary goal of the Access Manager plugin is to enable the client to effectively control user access and manage applications (Midaz and plugins).Auth APIs
Authentication API
Endpoint | Path |
---|---|
Request an Access Token | POST /v1/login/oauth/access_token |
Refresh the Access Token | POST /v1/login/oauth/refresh_token |
End User Session | POST /v1/logout |
Authorization API
Endpoint | Path |
---|---|
Validate User Permission | POST /v1/authorize |
User Information API
Endpoint | Path |
---|---|
Retrieve User Information | GET /v1/userinfo |
Retrieve User Permission | GET /v1/permissions |
Identity APIs
Groups API
Endpoint | Path |
---|---|
List Groups | GET /v1/groups |
Retrieve Group details | GET /v1/groups/{id} |
Applications API
Endpoint | Path |
---|---|
Create an Application | POST /v1/applications |
List Applications | GET /v1/applications |
Retrieve an Application | GET /v1/applications/{id} |
Delete an Application | DELETE /v1/applications/{id} |
Users API
Endpoint | Path |
---|---|
Create a User | POST /v1/users |
List Users | GET /v1/users |
Retrieve User details | GET /v1/users/{id} |
Update a User | PATCH /v1/users/{id} |
Delete a User | DELETE /v1/users/{id} |
Reset a User Password | PATCH /v1/users/{id}/reset-password |
Update a User Password | PATCH /v1/users/{id}/update-password |
Error list
Refer to the Access Manager Error List page to check which errors Access Manager endpoints might return. You’ll find all the details you need to handle them.CRM APIs
The CRM (Customer Relationship Manager) plugin integrates data by storing essential registration information for the Midaz account user (Holder/Owner Account), termed as the “Entity.” While necessary for validation in integration processes, it is not part of the Ledger’s transactional domain.Holders API
Endpoint | Path |
---|---|
Create a Holder | POST /v1/holders |
List Holders | GET /v1/holders |
Retrieve a Holder | GET /v1/holders/{id} |
Update a Holder | PATCH /v1/holders/{id} |
Delete a Holder | DELETE /v1/holders/{id} |
Alias Accounts API
Endpoint | Path |
---|---|
Create an Alias Account | POST /v1/holders/{holder_id}/aliases |
List Alias Accounts | GET /v1/aliases |
List Alias Accounts for a Holder (deprecated) | GET /v1/holders/{holder_id}/aliases |
Retrieve Alias Account | GET /v1/holders/{holder_id}/aliases/{alias_id} |
Update an Alias Account | PATCH /v1/holders/{holder_id}/aliases/{alias_id} |
Delete an Alias Account | DELETE /v1/holders/{holder_id}/aliases/{alias_id} |
Error list
Refer to the CRM Error List page to check which errors CRM endpoints might return. You’ll find all the details you need to handle them.Fee Engine APIs
The Fere Engine plugin manages fees across operations (financial, logistics, agriculture, pharmaceuticals, etc.) while storing transactions in customer ledgers. It aims for transparency, automation, and efficient control of fee charges.Packages API
Endpoint | Path |
---|---|
Create a Package | POST /v1/packages |
List Packages | GET /v1/packages |
Retrieve a Package | GET /v1/packages/{id} |
Update a Package | PATCH /v1/packages/{id} |
Delete a Package | DELETE /v1/packages/{id} |
Calculation API
Endpoint | Path |
---|---|
Calculate Fees for a Package | POST /v1/fees |
Simulation API
Endpoint | Path |
---|---|
Simulate Transaction Fees | POST /v1/estimates |
Error list
Refer to the Fee Engine Error List page to check which errors Fee Engine endpoints might return. You’ll find all the details you need to handle them.Smart Templates APIs
The Fere Engine plugin helps you generate dynamic, data-driven reports that can be rendered in CSV, XML, HTML, or TXT, always matching the structure defined in the template file.Templates API
Endpoint | Path |
---|---|
Upload a Template | POST /v1/templates |
List Templates | GET /v1/templates |
Retrieve Template details | GET /v1/templates/{id} |
Update a Template | PATCH /v1/templates/{id} |
Delete a Template | DELETE /v1/templates/{id} |
Reports API
Endpoint | Path |
---|---|
Create a Report | POST /v1/reports |
Check Report Status | GET /v1/reports/{id} |
Download a Report | GET /v1/reports/{id}/download |