# Individuals ## List all individuals (client profiles) `client.Individuals.List(ctx, query) (*CursorPagination[Individual], error)` **get** `/individuals` Retrieve a paginated list of client profiles/individuals using cursor-based pagination ### Parameters - `query IndividualListParams` - `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. - `HouseholdID param.Field[string]` Filter individuals by household ID - `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.Individuals.List(context.TODO(), withluminary.IndividualListParams{ }) 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 } ``` ## Create a new individual (client profile) `client.Individuals.New(ctx, body) (*Individual, error)` **post** `/individuals` Create a new client profile/individual with the provided data ### Parameters - `body IndividualNewParams` - `FirstName param.Field[string]` First name of the individual - `HouseholdID param.Field[string]` Household ID this individual belongs to - `LastName param.Field[string]` Last name of the individual - `AddressLine1 param.Field[string]` Street address line 1 - `AddressLine2 param.Field[string]` Street address line 2 - `City param.Field[string]` City - `Country param.Field[string]` Country - `DateOfBirth param.Field[Time]` Date of birth - `Email param.Field[string]` Email address - `IsBeneficiary param.Field[bool]` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased param.Field[bool]` Whether the individual is deceased - `IsGrantor param.Field[bool]` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary param.Field[bool]` Whether this is a primary client of the household (at most 2 per household) - `IsTrustee param.Field[bool]` Whether this client profile should be an eligible trustee for entities - `MiddleName param.Field[string]` Middle name of the individual - `Notes param.Field[string]` Notes about the client profile - `PostalCode param.Field[string]` ZIP or postal code - `State param.Field[string]` State or province code (2 letter code) - `Suffix param.Field[string]` Name suffix ### 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"), ) individual, err := client.Individuals.New(context.TODO(), withluminary.IndividualNewParams{ FirstName: "John", HouseholdID: "household_01ARZ3NDEKTSV4RRFFQ69G5FAV", LastName: "Smith", }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", individual.ID) } ``` #### Response ```json { "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 an individual `client.Individuals.Delete(ctx, id) error` **delete** `/individuals/{id}` Soft delete a client profile (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.Individuals.Delete(context.TODO(), "id") if err != nil { panic(err.Error()) } } ``` ## Get an individual by ID `client.Individuals.Get(ctx, id) (*Individual, error)` **get** `/individuals/{id}` Retrieve detailed information about a specific client profile ### Parameters - `id string` ### 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"), ) individual, err := client.Individuals.Get(context.TODO(), "id") if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", individual.ID) } ``` #### Response ```json { "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 an individual `client.Individuals.Update(ctx, id, body) (*Individual, error)` **put** `/individuals/{id}` Update an existing client profile with new data ### Parameters - `id string` - `body IndividualUpdateParams` - `AddressLine1 param.Field[string]` Street address line 1 - `AddressLine2 param.Field[string]` Street address line 2 - `City param.Field[string]` City - `Country param.Field[string]` Country - `DateOfBirth param.Field[Time]` Date of birth - `DateOfDeath param.Field[Time]` Date of death if applicable - `Email param.Field[string]` Email address - `FirstName param.Field[string]` First name of the individual - `IsBeneficiary param.Field[bool]` Whether this client profile should be an eligible beneficiary for entities and gifts - `IsDeceased param.Field[bool]` Whether the individual is deceased - `IsGrantor param.Field[bool]` Whether this client profile should be an eligible grantor/owner/other principal for entities - `IsPrimary param.Field[bool]` Whether this is a primary client of the household (at most 2 per household) - `IsTrustee param.Field[bool]` Whether this client profile should be an eligible trustee for entities - `LastName param.Field[string]` Last name of the individual - `MiddleName param.Field[string]` Middle name of the individual - `Notes param.Field[string]` Notes about the client profile - `PostalCode param.Field[string]` ZIP or postal code - `State param.Field[string]` State or province code (2 letter code) - `Suffix param.Field[string]` Name suffix ### 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"), ) individual, err := client.Individuals.Update( context.TODO(), "id", withluminary.IndividualUpdateParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", individual.ID) } ``` #### Response ```json { "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." } ``` ## Domain Types ### Individual - `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.)