export type IdentityResponse = {
    /** Primary identifier of the entity */
    id: string;
    /** Primary identifier of the Item */
    itemId: string;
    /** Date of birth of the owner */
    birthDate: Date | null;
    /** Primary tax identifier (CNPJ or CUIT) */
    taxNumber: string | null;
    /** Primary ID (DNI or CPF) */
    document: string | null;
    /** Type of ID (DNI, CPF, CNPJ) */
    documentType: string | null;
    /** Title of the job position */
    jobTitle: string | null;
    /** For business connection, the business's name. */
    companyName: string | null;
    /** Complete name of the account owner */
    fullName: string | null;
    /** List of associated phone numbers */
    phoneNumbers: PhoneNumber[] | null;
    /** List of associated emails */
    emails: Email[] | null;
    /** List of associated phisical addresses */
    addresses: Address[] | null;
    /** List of associated personal relationships */
    relations: IdentityRelation[] | null;
    /** The investor's personality and motivation for investing  */
    investorProfile: 'Conservative' | 'Moderate' | 'Aggressive' | null;
    /** Name of the establishment */
    establishmentName: string | null;
    /** Code of the establishment */
    establishmentCode: string | null;
    /** List of financial relationships */
    financialRelationships: FinancialRelationships | null;
    /** List of qualifications */
    qualifications: Qualifications | null;
    /** Social name of the natural person (the name by which travestis and transsexuals recognize themselves and are recognized in their community). PF-only field */
    socialName: string | null;
    /** Sex of the natural person. PF-only field */
    sex: Sex | null;
    /** Marital status of the natural person. PF-only field */
    maritalStatus: MaritalStatus | null;
    /** Nationality of the natural person. PF-only field */
    nationality: Nationality | null;
    /** Other identification documents the natural person holds. PF-only field */
    otherDocuments: OtherDocument[] | null;
    /** Passport metadata for the natural person. PF-only field — applies when the client is a non-resident not required to register a CPF */
    passport: Passport | null;
    /** Date the business was incorporated. PJ-only field */
    incorporationDate: Date | null;
    /** Partners and administrators of the business. PJ-only field */
    parties: BusinessParty[] | null;
    /** Additional documents for businesses headquartered abroad and not required to register a CNPJ. PJ-only field */
    businessOtherDocuments: BusinessOtherDocument[] | null;
    /** CNPJs of the financial institutions responsible for the customer cadastro. Numbers only, no mask */
    companiesCnpj: string[] | null;
    /** Date of the first time that the Identity was recovered */
    createdAt: Date;
    /** Last update of the Identity data (if the data never changes, updatedAt will be the same as createdAt) */
    updatedAt: Date;
};
export type PhoneNumber = {
    type: 'Personal' | 'Work' | 'Residencial' | null;
    value: string;
    /** International dialing code (DDI). Populated when different from '55' */
    countryCallingCode?: string | null;
    /** Area code (DDD) of the phone */
    areaCode?: string | null;
    /** Extension number, when part of the phone identification */
    extension?: string | null;
    /** Additional info related to the source phone type */
    additionalInfo?: string | null;
};
export type Email = {
    type: 'Personal' | 'Work' | null;
    value: string;
};
export type IdentityRelation = {
    type: 'Mother' | 'Father' | 'Spouse' | null;
    name: string | null;
    document: string | null;
};
export type Address = {
    fullAddress: string | null;
    primaryAddress: string | null;
    city: string | null;
    postalCode: string | null;
    state: string | null;
    country: string | null;
    type: 'Personal' | 'Work' | null;
    additionalInfo: string | null;
    /** District / neighborhood (bairro) */
    district?: string | null;
    /** IBGE municipality code (7 digits). The first two digits identify the Federation Unit */
    ibgeTownCode?: string | null;
    /** Country code in alpha3 ISO-3166 format (e.g. 'BRA') */
    countryCode?: string | null;
    /** Geographic coordinates of the address */
    geographicCoordinates?: GeographicCoordinates | null;
};
export type GeographicCoordinates = {
    /** Latitude in decimal degrees (WGS84). Between -90 and 90 */
    latitude: number;
    /** Longitude in decimal degrees (WGS84). Between -180 and 180 */
    longitude: number;
};
export type Sex = 'FEMALE' | 'MALE' | 'OTHER';
export type MaritalStatus = {
    code: 'SINGLE' | 'MARRIED' | 'WIDOWED' | 'JUDICIALLY_SEPARATED' | 'DIVORCED' | 'STABLE_UNION' | 'OTHER';
    /** Free-text complement. Populated when code is OTHER */
    additionalInfo?: string;
};
export type Nationality = {
    /** Whether the client has Brazilian nationality */
    hasBrazilianNationality: boolean;
    /** Other nationalities held by the client, if any */
    otherNationalities?: OtherNationality[];
};
export type OtherNationality = {
    /** Country code in alpha3 ISO-3166 format */
    countryCode: string;
    /** Supporting documents for this nationality */
    documents: NationalityDocument[];
};
export type NationalityDocument = {
    /** Document type (free text) */
    type: string;
    /** Document number */
    number: string;
    country?: string;
    issueDate?: Date;
    expirationDate?: Date;
    additionalInfo?: string;
};
export type OtherDocument = {
    /** Document type. Brazilian acronyms are kept verbatim; OTHER covers any other type */
    type: 'CNH' | 'RG' | 'NIF' | 'RNE' | 'OTHER';
    /** Free-text complement. Populated when type is OTHER */
    typeAdditionalInfo?: string;
    /** Document number */
    number: string;
    /** Check digit of the document, if it has one */
    checkDigit?: string;
    /** Free-text complement, used to record the issuing authority (e.g. 'SSP/SP') when relevant */
    additionalInfo?: string;
    expirationDate?: Date;
};
export type Passport = {
    /** Passport number */
    number: string;
    /** Issuing country in alpha3 ISO-3166 format */
    country: string;
    issueDate?: Date;
    expirationDate?: Date;
};
export type BusinessParty = {
    /** Role of the party in the business */
    type: 'PARTNER' | 'ADMINISTRATOR';
    /** Whether the party is a natural person or a legal entity */
    personType: 'NATURAL_PERSON' | 'LEGAL_ENTITY';
    /** Type of the party's identification document */
    documentType: 'CPF' | 'CNPJ' | 'PASSPORT' | 'OTHER_TRAVEL_DOCUMENT';
    /** Number of the identification document (digits and check digit, if any) */
    documentNumber: string;
    /** Issuing country of the document, alpha3 ISO-3166 */
    documentCountry?: string;
    documentExpirationDate?: Date;
    documentIssueDate?: Date;
    /** Free-text complement when the document carries identification info that doesn't fit the other fields */
    documentAdditionalInfo?: string;
    /** Civil name of the party. Required when personType is NATURAL_PERSON */
    civilName?: string;
    /** Social name of the natural-person party, if any */
    socialName?: string;
    /** Company name of the party. Required when personType is LEGAL_ENTITY */
    companyName?: string;
    /** Trade name of the legal-entity party, if any */
    tradeName?: string;
    /** Date the party's participation started */
    startDate?: Date;
    /** Shareholding fraction between 0 and 1 (e.g. 0.51 represents 51%, 1 represents 100%). Required when type is PARTNER and the shareholding is 25% or higher */
    shareholding?: number;
};
export type BusinessOtherDocument = {
    /** Type of the document (e.g. 'EIN') */
    type: string;
    /** Document number */
    number: string;
    /** Issuing country in alpha3 ISO-3166 format */
    country: string;
    expirationDate?: Date;
};
export type FinancialRelationships = {
    /** Start date of the relationship */
    startDate: Date;
    /** List of products and services type */
    productsServicesType: string[];
    /** Additional info about the products and services. Populated when productsServicesType includes 'OUTROS' */
    productsServicesTypeAdditionalInfo?: string;
    /** List of procurators */
    procurators: Procurator[];
    /** List of accounts */
    accounts?: FinancialRelationshipAccount[];
    /** Salary portabilities received by the institution from the client's previous paycheck banks (banco-folha). PF-only field */
    portabilitiesReceived?: PortabilityReceived[];
    /** Paycheck-bank links to employers, active or formerly active. PF-only field */
    paychecksBankLink?: PaycheckBankLink[];
};
export type FinancialRelationshipAccount = {
    /** Code of the bank */
    compeCode: string;
    /** Code of the branch */
    branchCode: string;
    /** Number of the account */
    number: string;
    /** Check digit of the account */
    checkDigit: string;
    /** Type of the account */
    type: 'CONTA_DEPOSITO_A_VISTA' | 'CONTA_POUPANCA' | 'CONTA_PAGAMENTO_PRE_PAGA';
    /** Subtype of the account */
    subtype: 'INDIVIDUAL' | 'CONJUNTA_SIMPLES' | 'CONJUNTA_SOLIDARIA';
};
export type Procurator = {
    /** Type of representative */
    type: 'REPRESENTANTE_LEGAL' | 'PROCURADOR';
    /** CPF or CNPJ of the procurator. For business links this field may hold a CNPJ (kept for backward compatibility — prefer documentNumber + documentType) */
    cpfNumber: string;
    /** Document number of the procurator (CPF or CNPJ). Mirrors cpfNumber and is the canonical value to read */
    documentNumber?: string;
    /** Type of document carried by documentNumber */
    documentType?: 'CPF' | 'CNPJ';
    /** Civil name of the procurator. For business procurators, may hold the company name */
    civilName: string;
    /** Social name of the procurator (if any) */
    socialName?: string;
};
export type PortabilityReceived = {
    /** Employer name as received in the portability message. When the employer is a legal entity, this is the company name */
    employerName: string;
    /** Employer document (CPF or CNPJ) as received in the portability message */
    employerDocument: string;
    /** CNPJ of the bank that holds the paycheck account (banco-folha) as received in the portability message */
    paycheckBankDetainerCnpj: string;
    /** ISPB of the bank that holds the paycheck account as received in the portability message */
    paycheckBankDetainerIspb: string;
    /** Date the portability was approved */
    portabilityApprovalDate: Date;
};
export type PaycheckBankLink = {
    /** Employer name as registered when the paycheck account was opened. When the employer is a legal entity, this is the company name */
    employerName: string;
    /** Employer document (CPF or CNPJ) as registered when the paycheck account was opened */
    employerDocument: string;
    /** CNPJ of the institution contracted to provide the paycheck service (banco-folha) */
    paycheckBankCnpj: string;
    /** ISPB of the institution contracted to provide the paycheck service */
    paycheckBankIspb: string;
    /** Date the paycheck account was opened */
    accountOpeningDate: Date;
};
export type Qualifications = {
    /** CNPJ of the company */
    companyCnpj: string;
    /** Code of the occupation */
    occupationCode?: 'RECEITA_FEDERAL' | 'CBO' | 'OUTRO';
    /** Free-text occupation description. When occupationCode is RECEITA_FEDERAL or CBO it holds the standardized list code; when OUTRO it describes the occupation in cases where the institution does not follow the Receita Federal nor the CBO list */
    occupationDescription?: string;
    /** Informed income */
    informedIncome?: InformedIncome;
    /** Informed patrimony */
    informedPatrimony?: InformedPatrimony;
    /** CNAE codes describing the economic activities of the business. Only one entry per response should be marked as main */
    economicActivities?: EconomicActivity[];
    /** Revenue (faturamento) informed by the business — the business equivalent of informedIncome */
    informedRevenue?: InformedRevenue;
};
export type EconomicActivity = {
    /** CNAE code (7 digits, including leading zeros). Follows the CNAE-Subclasse 2.3 classification */
    code: string;
    /** Whether this is the main economic activity (true) or a secondary one (false). Only one item per response should be true */
    isMain: boolean;
};
export type InformedIncome = {
    /** Frequency of the income (e.g., daily) */
    frequency: 'DIARIA' | 'SEMANAL' | 'QUINZENAL' | 'MENSAL' | 'BIMESTRAL' | 'TRIMESTRAL' | 'SEMESTRAL' | 'ANUAL' | 'OUTROS';
    /** Income amount */
    amount: number;
    /** Date the income was informed */
    date: Date;
};
export type InformedRevenue = {
    /** Amount of the informed revenue */
    amount: number;
    /** Frequency or period of the informed revenue */
    frequency?: 'DAILY' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'BIMONTHLY' | 'QUARTERLY' | 'SEMIANNUAL' | 'ANNUAL' | 'OTHER';
    /** Free-text complement to the frequency. Populated when frequency is OTHER */
    frequencyAdditionalInfo?: string;
    /** Reference year of the revenue */
    year?: number;
};
export type InformedPatrimony = {
    /** Patrimony amount */
    amount: number;
    /** Year of the patrimony */
    year: number;
    /** Reference date of the patrimony. Returned on the business path of Open Finance, where the source field is a full date rather than just a year */
    date?: Date;
};
