# Households ## List all households `client.Households.List(ctx, query) (*CursorPagination[Household], error)` **get** `/households` Retrieve a paginated list of households using cursor-based pagination ### Parameters - `query HouseholdListParams` - `After param.Field[string]` Cursor for forward pagination. Returns items after this cursor. - `Before param.Field[string]` Cursor for backward pagination. Returns items before this cursor. - `ExternalID param.Field[string]` Filter by external ID (exact match within the caller's tenant) - `Limit param.Field[int64]` Maximum number of items to return ### Returns - `type Household struct{…}` - `ID string` Unique identifier with household_ prefix - `CreatedAt Time` Timestamp when the household was created - `PrimaryRelationshipOwnerID string` User ID of the primary relationship owner - `UpdatedAt Time` Timestamp when the household was last updated - `ExternalID string` Customer-supplied identifier from an external system. Unique within the caller's tenant when set. - `Name string` Display name for the household - `Notes string` Notes about the household - `PrimaryIndividuals []Individual` Primary client profiles for this household (at most 2) - `ID string` Unique identifier with client_profile_ prefix - `CreatedAt Time` Timestamp when the individual was created - `FirstName string` First name of the individual - `HouseholdID string` Household ID this individual belongs to - `IsBeneficiary bool` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased bool` Whether this client profile is deceased - `IsGrantor bool` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary bool` Whether this is one of the (at most) two primary clients on this household - `IsTrustee bool` Whether this client profile should be an eligible trustee for entities - `LastName string` Last name of the individual - `UpdatedAt Time` Timestamp when the individual was last updated - `AddressLine1 string` Street address line 1 (from address edge) - `AddressLine2 string` Street address line 2 (from address edge) - `City string` City (from address edge) - `Country string` Country (from address edge) - `DateOfBirth Time` Date of birth (encrypted field) - `DateOfDeath Time` Date of death if applicable (encrypted field) - `DeletedAt Time` Timestamp when the individual was soft deleted - `Email string` Email address - `MiddleName string` Middle name of the individual - `Notes string` Notes about the client profile - `PostalCode string` ZIP or postal code (from address edge) - `State string` State or province (from address edge) - `Suffix string` Name suffix (Jr., Sr., III, etc.) ### Example ```go package main import ( "context" "fmt" "github.com/withluminary/go-sdk" "github.com/withluminary/go-sdk/option" ) func main() { client := withluminary.NewClient( option.WithClientID("My Client ID"), option.WithClientSecret("My Client Secret"), ) page, err := client.Households.List(context.TODO(), withluminary.HouseholdListParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "data": [ { "id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "primary_relationship_owner_id": "user_01ARZ3NDEKTSV4RRFFQ69G5FAV", "updated_at": "2024-01-20T14:45:00Z", "external_id": "crm-household-12345", "name": "Smith Family", "notes": "notes", "primary_individuals": [ { "id": "client_profile_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "first_name": "John", "household_id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "is_beneficiary": true, "is_deceased": true, "is_grantor": true, "is_primary": true, "is_trustee": true, "last_name": "Smith", "updated_at": "2024-01-20T14:45:00Z", "address_line1": "123 Main St", "address_line2": "Apt 4B", "city": "San Francisco", "country": "USA", "date_of_birth": "1980-05-15", "date_of_death": "2019-12-27", "deleted_at": "2019-12-27T18:11:19.117Z", "email": "john.smith@example.com", "middle_name": "Michael", "notes": "notes", "postal_code": "94102", "state": "CA", "suffix": "Jr." } ] } ], "page_info": { "has_next_page": true, "has_previous_page": false, "end_cursor": "eyJpZCI6ImhvdXNlaG9sZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9", "start_cursor": "eyJpZCI6ImhvdXNlaG9sZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9" }, "total_count": 100 } ``` ## Create a new household `client.Households.New(ctx, body) (*Household, error)` **post** `/households` Create a new household with the provided data ### Parameters - `body HouseholdNewParams` - `PrimaryRelationshipOwnerID param.Field[string]` User ID of the primary relationship owner - `ExternalID param.Field[string]` Customer-supplied identifier from an external system. Unique within the caller's tenant when set. - `Notes param.Field[string]` Optional notes about the household - `PrimaryIndividuals param.Field[[]HouseholdNewParamsPrimaryIndividual]` Primary client profiles to create for this household (at most 2) - `FirstName string` First name of the individual - `LastName string` Last name of the individual - `State string` State or province code (2 letter code) - `AddressLine1 string` Street address line 1 - `AddressLine2 string` Street address line 2 - `City string` City - `Country string` Country - `DateOfBirth Time` Date of birth - `Email string` Email address - `IsBeneficiary bool` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased bool` Whether the individual is deceased - `IsTrustee bool` Whether this client profile should be an eligible trustee for entities - `MiddleName string` Middle name of the individual - `Notes string` Notes about the client profile - `PostalCode string` ZIP or postal code - `Suffix string` Name suffix ### Returns - `type Household struct{…}` - `ID string` Unique identifier with household_ prefix - `CreatedAt Time` Timestamp when the household was created - `PrimaryRelationshipOwnerID string` User ID of the primary relationship owner - `UpdatedAt Time` Timestamp when the household was last updated - `ExternalID string` Customer-supplied identifier from an external system. Unique within the caller's tenant when set. - `Name string` Display name for the household - `Notes string` Notes about the household - `PrimaryIndividuals []Individual` Primary client profiles for this household (at most 2) - `ID string` Unique identifier with client_profile_ prefix - `CreatedAt Time` Timestamp when the individual was created - `FirstName string` First name of the individual - `HouseholdID string` Household ID this individual belongs to - `IsBeneficiary bool` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased bool` Whether this client profile is deceased - `IsGrantor bool` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary bool` Whether this is one of the (at most) two primary clients on this household - `IsTrustee bool` Whether this client profile should be an eligible trustee for entities - `LastName string` Last name of the individual - `UpdatedAt Time` Timestamp when the individual was last updated - `AddressLine1 string` Street address line 1 (from address edge) - `AddressLine2 string` Street address line 2 (from address edge) - `City string` City (from address edge) - `Country string` Country (from address edge) - `DateOfBirth Time` Date of birth (encrypted field) - `DateOfDeath Time` Date of death if applicable (encrypted field) - `DeletedAt Time` Timestamp when the individual was soft deleted - `Email string` Email address - `MiddleName string` Middle name of the individual - `Notes string` Notes about the client profile - `PostalCode string` ZIP or postal code (from address edge) - `State string` State or province (from address edge) - `Suffix string` Name suffix (Jr., Sr., III, etc.) ### Example ```go package main import ( "context" "fmt" "github.com/withluminary/go-sdk" "github.com/withluminary/go-sdk/option" ) func main() { client := withluminary.NewClient( option.WithClientID("My Client ID"), option.WithClientSecret("My Client Secret"), ) household, err := client.Households.New(context.TODO(), withluminary.HouseholdNewParams{ PrimaryRelationshipOwnerID: "user_01ARZ3NDEKTSV4RRFFQ69G5FAV", }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", household.ID) } ``` #### Response ```json { "id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "primary_relationship_owner_id": "user_01ARZ3NDEKTSV4RRFFQ69G5FAV", "updated_at": "2024-01-20T14:45:00Z", "external_id": "crm-household-12345", "name": "Smith Family", "notes": "notes", "primary_individuals": [ { "id": "client_profile_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "first_name": "John", "household_id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "is_beneficiary": true, "is_deceased": true, "is_grantor": true, "is_primary": true, "is_trustee": true, "last_name": "Smith", "updated_at": "2024-01-20T14:45:00Z", "address_line1": "123 Main St", "address_line2": "Apt 4B", "city": "San Francisco", "country": "USA", "date_of_birth": "1980-05-15", "date_of_death": "2019-12-27", "deleted_at": "2019-12-27T18:11:19.117Z", "email": "john.smith@example.com", "middle_name": "Michael", "notes": "notes", "postal_code": "94102", "state": "CA", "suffix": "Jr." } ] } ``` ## Delete a household `client.Households.Delete(ctx, id) error` **delete** `/households/{id}` Soft delete a household (marks as deleted but preserves data) ### Parameters - `id string` ### Example ```go package main import ( "context" "github.com/withluminary/go-sdk" "github.com/withluminary/go-sdk/option" ) func main() { client := withluminary.NewClient( option.WithClientID("My Client ID"), option.WithClientSecret("My Client Secret"), ) err := client.Households.Delete(context.TODO(), "id") if err != nil { panic(err.Error()) } } ``` ## Get a household by ID `client.Households.Get(ctx, id) (*Household, error)` **get** `/households/{id}` Retrieve detailed information about a specific household ### Parameters - `id string` ### Returns - `type Household struct{…}` - `ID string` Unique identifier with household_ prefix - `CreatedAt Time` Timestamp when the household was created - `PrimaryRelationshipOwnerID string` User ID of the primary relationship owner - `UpdatedAt Time` Timestamp when the household was last updated - `ExternalID string` Customer-supplied identifier from an external system. Unique within the caller's tenant when set. - `Name string` Display name for the household - `Notes string` Notes about the household - `PrimaryIndividuals []Individual` Primary client profiles for this household (at most 2) - `ID string` Unique identifier with client_profile_ prefix - `CreatedAt Time` Timestamp when the individual was created - `FirstName string` First name of the individual - `HouseholdID string` Household ID this individual belongs to - `IsBeneficiary bool` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased bool` Whether this client profile is deceased - `IsGrantor bool` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary bool` Whether this is one of the (at most) two primary clients on this household - `IsTrustee bool` Whether this client profile should be an eligible trustee for entities - `LastName string` Last name of the individual - `UpdatedAt Time` Timestamp when the individual was last updated - `AddressLine1 string` Street address line 1 (from address edge) - `AddressLine2 string` Street address line 2 (from address edge) - `City string` City (from address edge) - `Country string` Country (from address edge) - `DateOfBirth Time` Date of birth (encrypted field) - `DateOfDeath Time` Date of death if applicable (encrypted field) - `DeletedAt Time` Timestamp when the individual was soft deleted - `Email string` Email address - `MiddleName string` Middle name of the individual - `Notes string` Notes about the client profile - `PostalCode string` ZIP or postal code (from address edge) - `State string` State or province (from address edge) - `Suffix string` Name suffix (Jr., Sr., III, etc.) ### Example ```go package main import ( "context" "fmt" "github.com/withluminary/go-sdk" "github.com/withluminary/go-sdk/option" ) func main() { client := withluminary.NewClient( option.WithClientID("My Client ID"), option.WithClientSecret("My Client Secret"), ) household, err := client.Households.Get(context.TODO(), "id") if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", household.ID) } ``` #### Response ```json { "id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "primary_relationship_owner_id": "user_01ARZ3NDEKTSV4RRFFQ69G5FAV", "updated_at": "2024-01-20T14:45:00Z", "external_id": "crm-household-12345", "name": "Smith Family", "notes": "notes", "primary_individuals": [ { "id": "client_profile_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "first_name": "John", "household_id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "is_beneficiary": true, "is_deceased": true, "is_grantor": true, "is_primary": true, "is_trustee": true, "last_name": "Smith", "updated_at": "2024-01-20T14:45:00Z", "address_line1": "123 Main St", "address_line2": "Apt 4B", "city": "San Francisco", "country": "USA", "date_of_birth": "1980-05-15", "date_of_death": "2019-12-27", "deleted_at": "2019-12-27T18:11:19.117Z", "email": "john.smith@example.com", "middle_name": "Michael", "notes": "notes", "postal_code": "94102", "state": "CA", "suffix": "Jr." } ] } ``` ## Update a household `client.Households.Update(ctx, id, body) (*Household, error)` **put** `/households/{id}` Update an existing household with new data ### Parameters - `id string` - `body HouseholdUpdateParams` - `ExternalID param.Field[string]` Customer-supplied identifier from an external system. Unique within the caller's tenant when set. Send null to clear. - `Notes param.Field[string]` Notes about the household - `PrimaryRelationshipOwnerID param.Field[string]` User ID of the primary relationship owner ### Returns - `type Household struct{…}` - `ID string` Unique identifier with household_ prefix - `CreatedAt Time` Timestamp when the household was created - `PrimaryRelationshipOwnerID string` User ID of the primary relationship owner - `UpdatedAt Time` Timestamp when the household was last updated - `ExternalID string` Customer-supplied identifier from an external system. Unique within the caller's tenant when set. - `Name string` Display name for the household - `Notes string` Notes about the household - `PrimaryIndividuals []Individual` Primary client profiles for this household (at most 2) - `ID string` Unique identifier with client_profile_ prefix - `CreatedAt Time` Timestamp when the individual was created - `FirstName string` First name of the individual - `HouseholdID string` Household ID this individual belongs to - `IsBeneficiary bool` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased bool` Whether this client profile is deceased - `IsGrantor bool` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary bool` Whether this is one of the (at most) two primary clients on this household - `IsTrustee bool` Whether this client profile should be an eligible trustee for entities - `LastName string` Last name of the individual - `UpdatedAt Time` Timestamp when the individual was last updated - `AddressLine1 string` Street address line 1 (from address edge) - `AddressLine2 string` Street address line 2 (from address edge) - `City string` City (from address edge) - `Country string` Country (from address edge) - `DateOfBirth Time` Date of birth (encrypted field) - `DateOfDeath Time` Date of death if applicable (encrypted field) - `DeletedAt Time` Timestamp when the individual was soft deleted - `Email string` Email address - `MiddleName string` Middle name of the individual - `Notes string` Notes about the client profile - `PostalCode string` ZIP or postal code (from address edge) - `State string` State or province (from address edge) - `Suffix string` Name suffix (Jr., Sr., III, etc.) ### Example ```go package main import ( "context" "fmt" "github.com/withluminary/go-sdk" "github.com/withluminary/go-sdk/option" ) func main() { client := withluminary.NewClient( option.WithClientID("My Client ID"), option.WithClientSecret("My Client Secret"), ) household, err := client.Households.Update( context.TODO(), "id", withluminary.HouseholdUpdateParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", household.ID) } ``` #### Response ```json { "id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "primary_relationship_owner_id": "user_01ARZ3NDEKTSV4RRFFQ69G5FAV", "updated_at": "2024-01-20T14:45:00Z", "external_id": "crm-household-12345", "name": "Smith Family", "notes": "notes", "primary_individuals": [ { "id": "client_profile_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "first_name": "John", "household_id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "is_beneficiary": true, "is_deceased": true, "is_grantor": true, "is_primary": true, "is_trustee": true, "last_name": "Smith", "updated_at": "2024-01-20T14:45:00Z", "address_line1": "123 Main St", "address_line2": "Apt 4B", "city": "San Francisco", "country": "USA", "date_of_birth": "1980-05-15", "date_of_death": "2019-12-27", "deleted_at": "2019-12-27T18:11:19.117Z", "email": "john.smith@example.com", "middle_name": "Michael", "notes": "notes", "postal_code": "94102", "state": "CA", "suffix": "Jr." } ] } ``` ## List all documents in a household `client.Households.ListDocuments(ctx, id, query) (*CursorPagination[Document], error)` **get** `/households/{id}/documents` Retrieve a paginated list of documents belonging to a specific household ### Parameters - `id string` - `query HouseholdListDocumentsParams` - `After param.Field[string]` Cursor for forward pagination. Returns items after this cursor. - `Before param.Field[string]` Cursor for backward pagination. Returns items before this cursor. - `Limit param.Field[int64]` Maximum number of items to return - `Type param.Field[DocumentType]` Filter by document type ### Returns - `type Document struct{…}` - `ID string` Unique identifier with document_ prefix - `CreatedAt Time` Timestamp when the document was created - `HouseholdID string` Household ID this document belongs to - `Name string` Display name of the document - `Type DocumentType` Type of document - `const DocumentTypeGratDesignSummary DocumentType = "GRAT_DESIGN_SUMMARY"` - `const DocumentTypeGeneratedPresentation DocumentType = "GENERATED_PRESENTATION"` - `const DocumentTypeAssetValuation DocumentType = "ASSET_VALUATION"` - `const DocumentTypeSignedTrustDocument DocumentType = "SIGNED_TRUST_DOCUMENT"` - `const DocumentTypeTrustAmendment DocumentType = "TRUST_AMENDMENT"` - `const DocumentTypeTransferConfirmation DocumentType = "TRANSFER_CONFIRMATION"` - `const DocumentTypeExistingRemainderTrustDocument DocumentType = "EXISTING_REMAINDER_TRUST_DOCUMENT"` - `const DocumentTypeBalanceSheet DocumentType = "BALANCE_SHEET"` - `const DocumentTypeWill DocumentType = "WILL"` - `const DocumentTypeWillCodicil DocumentType = "WILL_CODICIL"` - `const DocumentTypePowerOfAttorney DocumentType = "POWER_OF_ATTORNEY"` - `const DocumentTypeAssignmentOfInterest DocumentType = "ASSIGNMENT_OF_INTEREST"` - `const DocumentTypeAssignmentOfTangibleProperty DocumentType = "ASSIGNMENT_OF_TANGIBLE_PROPERTY"` - `const DocumentTypeLoanNoteAgreement DocumentType = "LOAN_NOTE_AGREEMENT"` - `const DocumentTypeArticlesOfIncorporation DocumentType = "ARTICLES_OF_INCORPORATION"` - `const DocumentTypeOperatingAgreement DocumentType = "OPERATING_AGREEMENT"` - `const DocumentTypePartnershipAgreement DocumentType = "PARTNERSHIP_AGREEMENT"` - `const DocumentTypeAccountDocumentationStatement DocumentType = "ACCOUNT_DOCUMENTATION_STATEMENT"` - `const DocumentTypeTaxIDConfirmation DocumentType = "TAX_ID_CONFIRMATION"` - `const DocumentTypeGiftTaxReturn DocumentType = "GIFT_TAX_RETURN"` - `const DocumentTypeIncomeTaxReturn DocumentType = "INCOME_TAX_RETURN"` - `const DocumentTypeTaxReceipt DocumentType = "TAX_RECEIPT"` - `const DocumentTypeTaxFiling DocumentType = "TAX_FILING"` - `const DocumentTypeCorporateBylaws DocumentType = "CORPORATE_BYLAWS"` - `const DocumentTypeLlcAgreement DocumentType = "LLC_AGREEMENT"` - `const DocumentTypeLlcAgreementAmendment DocumentType = "LLC_AGREEMENT_AMENDMENT"` - `const DocumentTypeOperatingAgreementAmendment DocumentType = "OPERATING_AGREEMENT_AMENDMENT"` - `const DocumentTypePartnershipAgreementAmendment DocumentType = "PARTNERSHIP_AGREEMENT_AMENDMENT"` - `const DocumentTypeShareholdersAgreement DocumentType = "SHAREHOLDERS_AGREEMENT"` - `const DocumentTypeStateBusinessFiling DocumentType = "STATE_BUSINESS_FILING"` - `const DocumentTypeLoggedContribution DocumentType = "LOGGED_CONTRIBUTION"` - `const DocumentTypeLoggedDistribution DocumentType = "LOGGED_DISTRIBUTION"` - `const DocumentTypeInsurancePolicy DocumentType = "INSURANCE_POLICY"` - `const DocumentTypeCrummeyLetter DocumentType = "CRUMMEY_LETTER"` - `const DocumentTypeInsurancePremiumPayment DocumentType = "INSURANCE_PREMIUM_PAYMENT"` - `const DocumentTypeBeneficialOwnershipInformationReport DocumentType = "BENEFICIAL_OWNERSHIP_INFORMATION_REPORT"` - `const DocumentTypeFincenFiling DocumentType = "FINCEN_FILING"` - `const DocumentTypeHealthcareProxy DocumentType = "HEALTHCARE_PROXY"` - `const DocumentTypeLivingWill DocumentType = "LIVING_WILL"` - `const DocumentTypeDriversLicense DocumentType = "DRIVERS_LICENSE"` - `const DocumentTypePassport DocumentType = "PASSPORT"` - `const DocumentTypeDeed DocumentType = "DEED"` - `const DocumentTypeOther DocumentType = "OTHER"` - `UpdatedAt Time` Timestamp when the document was last updated - `EnableAISuggestions bool` Whether this document should be used for AI suggestions - `EntityID string` Entity ID if this document is owned by an entity - `IndividualID string` Individual ID if this document is associated with an individual ### Example ```go package main import ( "context" "fmt" "github.com/withluminary/go-sdk" "github.com/withluminary/go-sdk/option" ) func main() { client := withluminary.NewClient( option.WithClientID("My Client ID"), option.WithClientSecret("My Client Secret"), ) page, err := client.Households.ListDocuments( context.TODO(), "id", withluminary.HouseholdListDocumentsParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "data": [ { "id": "document_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "household_id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "name": "Trust Agreement.pdf", "type": "GRAT_DESIGN_SUMMARY", "updated_at": "2024-01-20T14:45:00Z", "enable_ai_suggestions": true, "entity_id": "entity_01ARZ3NDEKTSV4RRFFQ69G5FAV", "individual_id": "client_profile_01ARZ3NDEKTSV4RRFFQ69G5FAV" } ], "page_info": { "has_next_page": true, "has_previous_page": false, "end_cursor": "eyJpZCI6ImhvdXNlaG9sZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9", "start_cursor": "eyJpZCI6ImhvdXNlaG9sZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9" }, "total_count": 100 } ``` ## List all entities in a household `client.Households.ListEntities(ctx, id, query) (*CursorPagination[Entity], error)` **get** `/households/{id}/entities` Retrieve a paginated list of entities belonging to a specific household ### Parameters - `id string` - `query HouseholdListEntitiesParams` - `After param.Field[string]` Cursor for forward pagination. Returns items after this cursor. - `Before param.Field[string]` Cursor for backward pagination. Returns items before this cursor. - `Kind param.Field[EntityKind]` Filter by entity kind/type - `Limit param.Field[int64]` Maximum number of items to return ### Returns - `type Entity struct{…}` - `ID string` Unique identifier with entity_ prefix - `CreatedAt Time` Timestamp when the entity was created - `DisplayName string` Display name of the entity - `HouseholdID string` Household ID this entity belongs to - `InEstateStatus EntityInEstateStatus` Whether the entity is in or out of the estate - `const EntityInEstateStatusInEstate EntityInEstateStatus = "in_estate"` - `const EntityInEstateStatusOutOfEstate EntityInEstateStatus = "out_of_estate"` - `const EntityInEstateStatusNone EntityInEstateStatus = "none"` - `Kind EntityKind` Type of entity - determines the specific subtype and applicable fields - `const EntityKindRevocableTrust EntityKind = "REVOCABLE_TRUST"` - `const EntityKindIrrevocableTrust EntityKind = "IRREVOCABLE_TRUST"` - `const EntityKindSlatTrust EntityKind = "SLAT_TRUST"` - `const EntityKindIlitTrust EntityKind = "ILIT_TRUST"` - `const EntityKindQprtTrust EntityKind = "QPRT_TRUST"` - `const EntityKindGratTrust EntityKind = "GRAT_TRUST"` - `const EntityKindCrtTrust EntityKind = "CRT_TRUST"` - `const EntityKindCltTrust EntityKind = "CLT_TRUST"` - `const EntityKindIndividualPersonalAccount EntityKind = "INDIVIDUAL_PERSONAL_ACCOUNT"` - `const EntityKindJointPersonalAccount EntityKind = "JOINT_PERSONAL_ACCOUNT"` - `const EntityKindCustodialPersonalAccount EntityKind = "CUSTODIAL_PERSONAL_ACCOUNT"` - `const EntityKindInsurancePersonalAccount EntityKind = "INSURANCE_PERSONAL_ACCOUNT"` - `const EntityKindQualifiedTuitionPersonalAccount EntityKind = "QUALIFIED_TUITION_PERSONAL_ACCOUNT"` - `const EntityKindRetirementPersonalAccount EntityKind = "RETIREMENT_PERSONAL_ACCOUNT"` - `const EntityKindDonorAdvisedFund EntityKind = "DONOR_ADVISED_FUND"` - `const EntityKindPrivateFoundation EntityKind = "PRIVATE_FOUNDATION"` - `const EntityKindLlcBusinessEntity EntityKind = "LLC_BUSINESS_ENTITY"` - `const EntityKindLpBusinessEntity EntityKind = "LP_BUSINESS_ENTITY"` - `const EntityKindGpBusinessEntity EntityKind = "GP_BUSINESS_ENTITY"` - `const EntityKindSoleProprietorshipBusinessEntity EntityKind = "SOLE_PROPRIETORSHIP_BUSINESS_ENTITY"` - `const EntityKindScorpBusinessEntity EntityKind = "SCORP_BUSINESS_ENTITY"` - `const EntityKindCcorpBusinessEntity EntityKind = "CCORP_BUSINESS_ENTITY"` - `Stage EntityStage` Lifecycle stage of the entity - `const EntityStagePreCreated EntityStage = "PRE_CREATED"` - `const EntityStageAICreating EntityStage = "AI_CREATING"` - `const EntityStageAICreationFailed EntityStage = "AI_CREATION_FAILED"` - `const EntityStageAINeedsReview EntityStage = "AI_NEEDS_REVIEW"` - `const EntityStageDraft EntityStage = "DRAFT"` - `const EntityStageReadyForProposal EntityStage = "READY_FOR_PROPOSAL"` - `const EntityStageImplementation EntityStage = "IMPLEMENTATION"` - `const EntityStageActive EntityStage = "ACTIVE"` - `const EntityStageCompleted EntityStage = "COMPLETED"` - `const EntityStageArchived EntityStage = "ARCHIVED"` - `UpdatedAt Time` Timestamp when the entity was last updated - `ExternalID string` Customer-supplied identifier from an external system. Unique within the caller's tenant when set. ### Example ```go package main import ( "context" "fmt" "github.com/withluminary/go-sdk" "github.com/withluminary/go-sdk/option" ) func main() { client := withluminary.NewClient( option.WithClientID("My Client ID"), option.WithClientSecret("My Client Secret"), ) page, err := client.Households.ListEntities( context.TODO(), "id", withluminary.HouseholdListEntitiesParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "data": [ { "id": "entity_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "display_name": "My Revocable Trust", "household_id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "in_estate_status": "in_estate", "kind": "REVOCABLE_TRUST", "stage": "PRE_CREATED", "updated_at": "2024-01-20T14:45:00Z", "external_id": "crm-entity-12345" } ], "page_info": { "has_next_page": true, "has_previous_page": false, "end_cursor": "eyJpZCI6ImhvdXNlaG9sZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9", "start_cursor": "eyJpZCI6ImhvdXNlaG9sZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9" }, "total_count": 100 } ``` ## List all individuals in a household `client.Households.ListIndividuals(ctx, id, query) (*CursorPagination[Individual], error)` **get** `/households/{id}/individuals` Retrieve a paginated list of client profiles/individuals belonging to a specific household ### Parameters - `id string` - `query HouseholdListIndividualsParams` - `After param.Field[string]` Cursor for forward pagination. Returns items after this cursor. - `Before param.Field[string]` Cursor for backward pagination. Returns items before this cursor. - `IsPrimary param.Field[bool]` Filter by primary client status - `Limit param.Field[int64]` Maximum number of items to return ### Returns - `type Individual struct{…}` - `ID string` Unique identifier with client_profile_ prefix - `CreatedAt Time` Timestamp when the individual was created - `FirstName string` First name of the individual - `HouseholdID string` Household ID this individual belongs to - `IsBeneficiary bool` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased bool` Whether this client profile is deceased - `IsGrantor bool` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary bool` Whether this is one of the (at most) two primary clients on this household - `IsTrustee bool` Whether this client profile should be an eligible trustee for entities - `LastName string` Last name of the individual - `UpdatedAt Time` Timestamp when the individual was last updated - `AddressLine1 string` Street address line 1 (from address edge) - `AddressLine2 string` Street address line 2 (from address edge) - `City string` City (from address edge) - `Country string` Country (from address edge) - `DateOfBirth Time` Date of birth (encrypted field) - `DateOfDeath Time` Date of death if applicable (encrypted field) - `DeletedAt Time` Timestamp when the individual was soft deleted - `Email string` Email address - `MiddleName string` Middle name of the individual - `Notes string` Notes about the client profile - `PostalCode string` ZIP or postal code (from address edge) - `State string` State or province (from address edge) - `Suffix string` Name suffix (Jr., Sr., III, etc.) ### Example ```go package main import ( "context" "fmt" "github.com/withluminary/go-sdk" "github.com/withluminary/go-sdk/option" ) func main() { client := withluminary.NewClient( option.WithClientID("My Client ID"), option.WithClientSecret("My Client Secret"), ) page, err := client.Households.ListIndividuals( context.TODO(), "id", withluminary.HouseholdListIndividualsParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "data": [ { "id": "client_profile_01ARZ3NDEKTSV4RRFFQ69G5FAV", "created_at": "2024-01-15T09:30:00Z", "first_name": "John", "household_id": "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", "is_beneficiary": true, "is_deceased": true, "is_grantor": true, "is_primary": true, "is_trustee": true, "last_name": "Smith", "updated_at": "2024-01-20T14:45:00Z", "address_line1": "123 Main St", "address_line2": "Apt 4B", "city": "San Francisco", "country": "USA", "date_of_birth": "1980-05-15", "date_of_death": "2019-12-27", "deleted_at": "2019-12-27T18:11:19.117Z", "email": "john.smith@example.com", "middle_name": "Michael", "notes": "notes", "postal_code": "94102", "state": "CA", "suffix": "Jr." } ], "page_info": { "has_next_page": true, "has_previous_page": false, "end_cursor": "eyJpZCI6ImhvdXNlaG9sZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9", "start_cursor": "eyJpZCI6ImhvdXNlaG9sZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9" }, "total_count": 100 } ``` ## Domain Types ### Household - `type Household struct{…}` - `ID string` Unique identifier with household_ prefix - `CreatedAt Time` Timestamp when the household was created - `PrimaryRelationshipOwnerID string` User ID of the primary relationship owner - `UpdatedAt Time` Timestamp when the household was last updated - `ExternalID string` Customer-supplied identifier from an external system. Unique within the caller's tenant when set. - `Name string` Display name for the household - `Notes string` Notes about the household - `PrimaryIndividuals []Individual` Primary client profiles for this household (at most 2) - `ID string` Unique identifier with client_profile_ prefix - `CreatedAt Time` Timestamp when the individual was created - `FirstName string` First name of the individual - `HouseholdID string` Household ID this individual belongs to - `IsBeneficiary bool` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased bool` Whether this client profile is deceased - `IsGrantor bool` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary bool` Whether this is one of the (at most) two primary clients on this household - `IsTrustee bool` Whether this client profile should be an eligible trustee for entities - `LastName string` Last name of the individual - `UpdatedAt Time` Timestamp when the individual was last updated - `AddressLine1 string` Street address line 1 (from address edge) - `AddressLine2 string` Street address line 2 (from address edge) - `City string` City (from address edge) - `Country string` Country (from address edge) - `DateOfBirth Time` Date of birth (encrypted field) - `DateOfDeath Time` Date of death if applicable (encrypted field) - `DeletedAt Time` Timestamp when the individual was soft deleted - `Email string` Email address - `MiddleName string` Middle name of the individual - `Notes string` Notes about the client profile - `PostalCode string` ZIP or postal code (from address edge) - `State string` State or province (from address edge) - `Suffix string` Name suffix (Jr., Sr., III, etc.) ### Individual List - `type IndividualList struct{…}` - `Data []Individual` - `ID string` Unique identifier with client_profile_ prefix - `CreatedAt Time` Timestamp when the individual was created - `FirstName string` First name of the individual - `HouseholdID string` Household ID this individual belongs to - `IsBeneficiary bool` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased bool` Whether this client profile is deceased - `IsGrantor bool` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary bool` Whether this is one of the (at most) two primary clients on this household - `IsTrustee bool` Whether this client profile should be an eligible trustee for entities - `LastName string` Last name of the individual - `UpdatedAt Time` Timestamp when the individual was last updated - `AddressLine1 string` Street address line 1 (from address edge) - `AddressLine2 string` Street address line 2 (from address edge) - `City string` City (from address edge) - `Country string` Country (from address edge) - `DateOfBirth Time` Date of birth (encrypted field) - `DateOfDeath Time` Date of death if applicable (encrypted field) - `DeletedAt Time` Timestamp when the individual was soft deleted - `Email string` Email address - `MiddleName string` Middle name of the individual - `Notes string` Notes about the client profile - `PostalCode string` ZIP or postal code (from address edge) - `State string` State or province (from address edge) - `Suffix string` Name suffix (Jr., Sr., III, etc.) - `PageInfo PageInfo` - `HasNextPage bool` When paginating forwards, are there more items? - `HasPreviousPage bool` When paginating backwards, are there more items? - `EndCursor string` Cursor pointing to the last item in the current page - `StartCursor string` Cursor pointing to the first item in the current page - `TotalCount int64` Total number of items matching the query (across all pages)