Skip to main content
A Holder is the core entity in CRM. It represents a real-world individual or organization behind a Midaz ledger account, storing identity-related attributes such as name, document number, contact details, and addresses. Holders are managed by the CRM plugin and don’t belong to the ledger’s transactional domain. They enrich ledger accounts with business-relevant data without interfering with the ledger’s logic, consistency, or performance. Each Holder is one of two types: Natural Person (individual) or Legal Person (company/organization).

Holder types


The holder type determines which fields are available and how the entity is treated across the platform. It is set at creation and cannot be changed later.

Natural Person

Represents an individual customer. It supports personal attributes such as name, gender, birth date, civil status, nationality, and family information. Use this type for:
  • Individual bank account holders
  • Personal wallet owners
  • Freelancers or sole proprietors
Represents a company or organization. It supports business attributes such as trade name, activity type, founding date, company size, and legal representative details. Use this type for:
  • Corporate treasury accounts
  • Business partners and suppliers
  • Institutional clients
Choose the holder type carefully at creation. Once set, it cannot be changed — you would need to create a new Holder with the correct type.

Holder fields


Core fields

FieldTypeRequiredDescription
iduuidSystem-generatedUnique identifier of the Holder.
typeenumYesNATURAL_PERSON or LEGAL_PERSON.
namestringYesFull name of the individual or legal name of the company.
documentstringYesIdentification document number (e.g., CPF, CNPJ, passport).
externalIdstringNoOptional identifier to map the Holder to an external system.
metadataobjectNoKey-value pairs for custom, non-sensitive data. Keys are limited to 100 characters and values to 2000 characters.
createdAtdatetimeSystem-generatedTimestamp of creation (RFC 3339).
updatedAtdatetimeSystem-generatedTimestamp of last update (RFC 3339).
deletedAtdatetimeSystem-generatedTimestamp of soft deletion, if applicable (RFC 3339).

Address fields

The addresses object supports up to three addresses: primary, additional1, and additional2. Each address contains:
FieldTypeRequiredDescription
line1stringYesPrimary address line (street, number). Max 256 characters.
line2stringNoSecondary address line (apartment, suite). Max 256 characters.
zipCodestringYesPostal or ZIP code. Max 20 characters.
citystringYesCity name. Max 100 characters.
statestringYesState or province code. Max 100 characters.
countrystringYesISO 3166-1 alpha-2 country code (e.g., US, BR).

Contact fields

FieldTypeRequiredDescription
primaryEmailstringNoPrimary email address.
secondaryEmailstringNoSecondary email address.
mobilePhonestringNoMobile phone number with country code (e.g., +5511999999999).
otherPhonestringNoAlternative phone number.

Natural Person fields

Available only when type is NATURAL_PERSON.
FieldTypeRequiredDescription
favoriteNamestringNoPreferred name or nickname.
socialNamestringNoSocial name (name the person identifies with).
genderstringNoGender identity.
birthDatestringNoDate of birth in YYYY-MM-DD format.
civilStatusstringNoMarital status (e.g., Single, Married, Divorced).
nationalitystringNoNationality (e.g., Brazilian, American).
motherNamestringNoMother’s full name.
fatherNamestringNoFather’s full name.
statusstringNoLifecycle status (e.g., Active, Inactive, Suspended, Closed).
Available only when type is LEGAL_PERSON.
FieldTypeRequiredDescription
tradeNamestringNoTrade or doing-business-as name.
activitystringNoPrimary business activity.
typestringNoLegal structure (e.g., LLC, Corporation).
foundingDatestringNoDate the company was founded in YYYY-MM-DD format.
sizestringNoCompany size classification (e.g., Small, Medium, Large).
statusstringNoLifecycle status (e.g., Active, Inactive, Suspended, Closed).

Representative

The representative object within legalPerson stores the details of the company’s legal representative:
FieldTypeRequiredDescription
namestringNoFull name of the legal representative.
documentstringNoDocument number of the representative.
emailstringNoEmail address of the representative.
rolestringNoRole within the company (e.g., CEO, CFO).

Data security


Several Holder fields are encrypted at rest using AES encryption, including name, document, and contact information. This ensures that sensitive personal data is protected even if the underlying storage is compromised.
Never store sensitive information in the metadata object. Metadata is not encrypted and is stored in plain text.
For the full list of protected fields and encryption strategies, see CRM data security.

Managing Holders


Via API

Use the CRM API to manage Holders programmatically:
All CRM API requests require the X-Organization-Id header. If Access Manager is enabled, an Authorization header with a Bearer token is also required.

Via Lerian Console

You can manage Holders through the Holders page in the Midaz Module of Lerian Console. The console provides a visual interface for creating, viewing, editing, and deleting Holders without writing code. Learn more in the Managing Holders guide.

Next steps