{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"PartnerCompanyIngressService"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"partnercompanyingressservice","__idx":0},"children":["PartnerCompanyIngressService"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Endpoints taken on behalf of a company. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CreateCompany"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ListSupportedHrisProviders"]}," expect only the base Authorization header; all other company endpoints require the target company UUID."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"Authorization: Bearer <token>\nx-identity-uuid: <company_uuid>\nx-identity-type: COMPANY\n","lang":"http"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"createcompany","__idx":1},"children":["CreateCompany"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a company ready to initiate onboarding. This endpoint does not require the uuid or identity to be included. If a company exists with the same EIN, this will error and the company will not be created."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc CreateCompany(CreateCompanyRequest) returns (CreateCompanyResponse);\n}\n\nmessage CreateCompanyRequest {\n  string external_id = 1;\n  string business_name = 2;\n  optional string business_phone = 3;\n  string email = 4;\n  com.basiccapital.common.external.Address address = 5;\n  EntityType entity_type = 6;\n  string ein = 7;\n  optional string state_of_organization = 8;\n}\n\nmessage CreateCompanyResponse {\n  Company company = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#company"},"children":["Company"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#entitytype"},"children":["EntityType"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getcompany","__idx":2},"children":["GetCompany"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns the company."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetCompany(GetCompanyRequest) returns (GetCompanyResponse);\n}\n\nmessage GetCompanyRequest {}\n\nmessage GetCompanyResponse {\n  Company company = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#company"},"children":["Company"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"updatecompany","__idx":3},"children":["UpdateCompany"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates company fields. Note that if a field is not included in the update it will remain unchanged."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc UpdateCompany(UpdateCompanyRequest) returns (UpdateCompanyResponse);\n}\n\nmessage UpdateCompanyRequest {\n  optional com.basiccapital.common.external.Address address = 1;\n  optional string business_name = 2;\n  optional string business_phone = 3;\n  optional string state_of_organization = 4;\n  optional string email = 5;\n}\n\nmessage UpdateCompanyResponse {\n  Company company = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#company"},"children":["Company"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getonboardingstatus","__idx":4},"children":["GetOnboardingStatus"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Get onboarding status for the company. All sections are required for the company to complete onboarding."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ready_to_enroll_employees"]}," signals when you can start adding employees via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AddEmployees"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ready_to_start_deductions"]}," ","signals when you can start deductions for enrolled employees."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetOnboardingStatus(GetOnboardingStatusRequest) returns (GetOnboardingStatusResponse);\n}\n\nmessage GetOnboardingStatusRequest {}\n\nmessage GetOnboardingStatusResponse {\n  enum OnboardingStatus {\n    UNKNOWN_ONBOARDING_STATUS = 0;\n    ONBOARDING_IN_PROGRESS = 1;\n    ONBOARDING_COMPLETE = 2;\n  }\n\n  enum SectionStatus {\n    UNKNOWN_SECTION_STATUS = 0;\n    BLOCKED = 1;\n    PENDING = 2;\n    IN_PROGRESS = 3;\n    COMPLETE = 4;\n  }\n\n  SectionStatus plan_configuration_status = 1;\n  SectionStatus sign_agreements_status = 2;\n  SectionStatus bank_linking_status = 3;\n  bool ready_to_enroll_employees = 4;\n  bool ready_to_start_deductions = 5;\n  OnboardingStatus status = 6;\n  SectionStatus trustee_kyc_status = 7;\n  SectionStatus kyb_status = 8;\n  SectionStatus link_hris_status = 9;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"beginbanklink","__idx":5},"children":["BeginBankLink"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Starts the bank linking process and returns the token that the client side Plaid widget will need."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc BeginBankLink(BeginBankLinkRequest) returns (BeginBankLinkResponse);\n}\n\nmessage BeginBankLinkRequest {}\n\nmessage BeginBankLinkResponse {\n  string link_token = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"completebanklink","__idx":6},"children":["CompleteBankLink"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This will throw a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HAS_MAX_LINKED_BANK_ACCOUNTS"]}," error if there is already an account linked for this company. Currently only one bank is allowed for per company."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BankAccount"]}," object will include an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_verified"]},". Plaid may require a micro-deposit to verify the bank account. When this is complete, the company can be verified via the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VerifyBankLink"]}," endpoint."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc CompleteBankLink(CompleteBankLinkRequest) returns (CompleteBankLinkResponse);\n}\n\nmessage CompleteBankLinkRequest {\n  string public_token = 1;\n}\n\nmessage CompleteBankLinkResponse {\n  BankAccount bank_account = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#bankaccount"},"children":["BankAccount"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"verifybanklink","__idx":7},"children":["VerifyBankLink"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This endpoint is used to verify bank link, either if the initial setup requires verification, or if the link expires. The United States requires ACH credentials to be re-verified every 12 months; but individual states and territories may have a shorter expiry period."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc VerifyBankLink(VerifyBankLinkRequest) returns (VerifyBankLinkResponse);\n}\n\nmessage VerifyBankLinkRequest {\n  string bank_account_uuid = 1;\n}\n\nmessage VerifyBankLinkResponse {\n  string link_token = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listbankaccounts","__idx":8},"children":["ListBankAccounts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists linked bank accounts for the company."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListBankAccounts(ListBankAccountsRequest) returns (ListBankAccountsResponse);\n}\n\nmessage ListBankAccountsRequest {}\n\nmessage ListBankAccountsResponse {\n  repeated BankAccount accounts = 1;\n  int32 max_linked_bank_accounts = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#bankaccount"},"children":["BankAccount"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"unlinklinkedaccount","__idx":9},"children":["UnlinkLinkedAccount"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Remove a linked bank account. If a company wants to link a different bank account you will first have to unlink the currently linked bank account."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc UnlinkLinkedAccount(UnlinkLinkedAccountRequest) returns (UnlinkLinkedAccountResponse);\n}\n\nmessage UnlinkLinkedAccountRequest {\n  string linked_account_uuid = 1;\n}\n\nmessage UnlinkLinkedAccountResponse {}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"settrustee","__idx":10},"children":["SetTrustee"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Trustee must be set before a company can sign agreements since the Trustee is the signing party. We recommend partners place setting the trustee at the beginning of their onboarding flow even though it is not blocking for the majority of the onboarding steps."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note: If the partner is also serving as the identity provider, the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["external_id"]}," should be the identifier we use when pulling KYC for the trustee. Calling SetTrustee will overwrite the previously set trustee if one exists. If the partner is not acting as the identity provider then KYC will need to be completed for the Trustee before they can sign agreements."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc SetTrustee(SetTrusteeRequest) returns (SetTrusteeResponse);\n}\n\nmessage SetTrusteeRequest {\n  string external_id = 1;\n  string email = 2;\n  string given_name = 3;\n  string surname = 4;\n}\n\nmessage SetTrusteeResponse {\n  TrusteeInfo trustee_info = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#trusteeinfo"},"children":["TrusteeInfo"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"gettrustee","__idx":11},"children":["GetTrustee"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns trustee info if a trustee is set."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetTrustee(GetTrusteeRequest) returns (GetTrusteeResponse);\n}\n\nmessage GetTrusteeRequest {}\n\nmessage GetTrusteeResponse {\n  optional TrusteeInfo trustee_info = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#trusteeinfo"},"children":["TrusteeInfo"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"createplanconfiguration","__idx":12},"children":["CreatePlanConfiguration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This starts off the plan configuration. It requires a management option because this determines which configurations will be prefilled in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PlanConfiguration"]},". For example if the user selects ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PARTNER_FULLY_MANAGED"]}," the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["InvestmentConfig"]}," will be filled and in a locked state. Note: each company can only have one plan configuration."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc CreatePlanConfiguration(CreatePlanConfigurationRequest) returns (CreatePlanConfigurationResponse);\n}\n\nmessage CreatePlanConfigurationRequest {\n  ManagementOptionType management_option_type = 1;\n}\n\nmessage CreatePlanConfigurationResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#managementoptiontype"},"children":["ManagementOptionType"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getplanconfiguration","__idx":13},"children":["GetPlanConfiguration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns the plan configuration."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetPlanConfiguration(GetPlanConfigurationRequest) returns (GetPlanConfigurationResponse);\n}\n\nmessage GetPlanConfigurationRequest {}\n\nmessage GetPlanConfigurationResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"updateplanconfiguration","__idx":14},"children":["UpdatePlanConfiguration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This can be used to update any part of the plan configuration."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Will return one of the following errors in these cases:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EDIT_LOCKED_SECTION"]},": If you attempt to update any sections that have a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LOCKED"]}," status; this will also error if another part of the update locks a previously unlocked section that you then attempt to edit."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_INVESTMENT_CONFIGURATION"]},": If you provide an incorrect QDIA + ticker_symbol combo e.g. VANGUARD with no Vanguard TDF included when setting ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["InvestmentConfig"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_CORE_CONFIGURATION"]},":",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enable_mega_backdoor_roth"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enable_roth"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},". The latter must be true for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enable_mega_backdoor_roth"]}," to be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you are setting the hour eligibility rule on the config there is a max you can set the hour requirement at for a given period."]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc UpdatePlanConfiguration(UpdatePlanConfigurationRequest) returns (UpdatePlanConfigurationResponse);\n}\n\nmessage UpdatePlanConfigurationRequest {\n  optional SetManagementOptionTypeRequest management_option = 1;\n  optional SetInvestmentConfigRequest investment_config = 2;\n  optional UpdateCoreConfigRequest core_config = 3;\n}\n\nmessage UpdatePlanConfigurationResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"validateplanconfiguration","__idx":15},"children":["ValidatePlanConfiguration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Checks the current plan configuration against the Safe Harbor and Secure Act 2.0 requirements described in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/integration-guide/plan-configuration#safe-harbor"},"children":["Safe Harbor"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/integration-guide/plan-configuration#secure-act-20"},"children":["Secure Act 2.0"]},". Returns one ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ValidationResult"]}," per ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ValidationType"]},", with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_valid"]}," and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["debug_description"]}," explaining any failure."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ValidatePlanConfiguration(ValidatePlanConfigurationRequest) returns (ValidatePlanConfigurationResponse);\n}\n\nmessage ValidatePlanConfigurationRequest {}\n\nmessage ValidatePlanConfigurationResponse {\n  message ValidationResult {\n    ValidationType type = 1;\n    bool is_valid = 2;\n    string debug_description = 3;\n  }\n\n  enum ValidationType {\n    UNKNOWN_VALIDATION_TYPE = 0;\n    SECURE_ACT = 1;\n    SAFE_HARBOR = 2;\n  }\n\n  repeated ValidationResult validation_results = 3;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listmanagementoptions","__idx":16},"children":["ListManagementOptions"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note:"]}," Bearer token only"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Provides the list of management options available to that company."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListManagementOptions(ListManagementOptionsRequest) returns (ListManagementOptionsResponse);\n}\n\nmessage ListManagementOptionsRequest {}\n\nmessage ListManagementOptionsResponse {\n  repeated ManagementOption management_options = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#managementoption"},"children":["ManagementOption"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"setmanagementoptiontype","__idx":17},"children":["SetManagementOptionType"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This updates your management option and will also have the side effect of setting your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["InvestmentConfig"]}," if you switch from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PARTNER_EMPLOYER_MANAGED"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PARTNER_FULLY_MANAGED"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc SetManagementOptionType(SetManagementOptionTypeRequest) returns (SetManagementOptionTypeResponse);\n}\n\nmessage SetManagementOptionTypeRequest {\n  ManagementOptionType management_option_type = 1;\n}\n\nmessage SetManagementOptionTypeResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#managementoptiontype"},"children":["ManagementOptionType"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"setinvestmentconfig","__idx":18},"children":["SetInvestmentConfig"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sets the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["InvestmentConfig"]},". Note: This overwrites the entire investment config when called."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Errors:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_INVESTMENT_CONFIGURATION"]},": If you provide an incorrect QDIA + ticker_symbol combo i.e. VANGUARD with no Vanguard TDF included."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EDIT_LOCKED_SECTION"]},": If this section is locked"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc SetInvestmentConfig(SetInvestmentConfigRequest) returns (SetInvestmentConfigResponse);\n}\n\nmessage SetInvestmentConfigRequest {\n  QdiaType qdia_type = 1;\n  repeated string ticker_symbols = 2;\n}\n\nmessage SetInvestmentConfigResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#qdiatype"},"children":["QdiaType"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listavailableplaninvestmentoptions","__idx":19},"children":["ListAvailablePlanInvestmentOptions"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note:"]}," Bearer token only"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Provides a list of available investment options including popular investment options and QDIA for both Vanguard and Fidelity. Each investment option has an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AssetSuggestionType"]},"; the corresponding target date funds for the QDIA you choose will be marked as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REQUIRED"]}," indicating that these assets must be included when setting investment options for that QDIA type."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListAvailablePlanInvestmentOptions(ListAvailablePlanInvestmentOptionsRequest) returns (ListAvailablePlanInvestmentOptionsResponse);\n}\n\nmessage ListAvailablePlanInvestmentOptionsRequest {\n  QdiaType qdia_type = 1;\n}\n\nmessage ListAvailablePlanInvestmentOptionsResponse {\n  repeated AssetMetadata investment_options = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/accounts-and-investments#assetmetadata"},"children":["AssetMetadata"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#qdiatype"},"children":["QdiaType"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listqdiafunds","__idx":20},"children":["ListQdiaFunds"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note:"]}," Bearer token only"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List all the possible QDIA funds to pick from."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListQdiaFunds(ListQdiaFundsRequest) returns (ListQdiaFundsResponse);\n}\n\nmessage ListQdiaFundsRequest {}\n\nmessage ListQdiaFundsResponse {\n  repeated QdiaType qdia = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#qdiatype"},"children":["QdiaType"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getcuratedinvestmentconfig","__idx":21},"children":["GetCuratedInvestmentConfig"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns the preset investment config as determined by Basic Capital and is what the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["InvestmentConfig"]}," will be set to if the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PARTNER_FULLY_MANAGED"]}," management option is selected. This may vary across companies, so must be requested on a per-company basis."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetCuratedInvestmentConfig(GetCuratedInvestmentConfigRequest) returns (GetCuratedInvestmentConfigResponse);\n}\n\nmessage GetCuratedInvestmentConfigRequest {}\n\nmessage GetCuratedInvestmentConfigResponse {\n  InvestmentConfig investment_config = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#investmentconfig"},"children":["InvestmentConfig"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"updatecoreconfig","__idx":22},"children":["UpdateCoreConfig"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates core settings. Note: if a field is not included the existing value on the config will remain."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Errors:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_CORE_CONFIGURATION"]},":",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enable_mega_backdoor_roth"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enable_roth"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},". The latter must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enable_mega_backdoor_roth"]}," to be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you are setting the hour eligibility rule on the config there is a max you can set the hour requirement at for a given period."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EDIT_LOCKED_SECTION"]},": If this section is locked"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc UpdateCoreConfig(UpdateCoreConfigRequest) returns (UpdateCoreConfigResponse);\n}\n\nmessage UpdateCoreConfigRequest {\n  repeated EmployerMatchTier employer_match_tiers = 1;\n  optional bool enable_roth = 2;\n  optional bool enable_plan401K_loans = 3;\n  optional bool enable_mega_backdoor_roth = 4;\n  optional int32 employee_auto_enrollment_bps = 5;\n  optional int32 employee_auto_enrollment_increase_bps = 6;\n  optional Date ideal_start_date = 7;\n  optional EligibilityConfig eligibility_config = 8;\n}\n\nmessage UpdateCoreConfigResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#date"},"children":["Date"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#eligibilityconfig"},"children":["EligibilityConfig"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#employermatchtier"},"children":["EmployerMatchTier"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"clearcoreconfigemployermatch","__idx":23},"children":["ClearCoreConfigEmployerMatch"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Clears the employer match on the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CoreConfig"]},". Note: this should be used to set no employer match rather than setting match to 0%."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ClearCoreConfigEmployerMatch(ClearCoreConfigEmployerMatchRequest) returns (ClearCoreConfigEmployerMatchResponse);\n}\n\nmessage ClearCoreConfigEmployerMatchRequest {}\n\nmessage ClearCoreConfigEmployerMatchResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"clearcoreconfigeligibility","__idx":24},"children":["ClearCoreConfigEligibility"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Clears the eligibility config."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ClearCoreConfigEligibility(ClearCoreConfigEligibilityRequest) returns (ClearCoreConfigEligibilityResponse);\n}\n\nmessage ClearCoreConfigEligibilityRequest {}\n\nmessage ClearCoreConfigEligibilityResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"deleteplanconfiguration","__idx":25},"children":["DeletePlanConfiguration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This will delete a plan configuration. Note: if any of the sections of the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PlanConfiguration"]}," object are in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LOCKED_INCOMPLETE"]}," state (meaning the plan configuration needs manual intervention) or the plan configuration has been submitted then this will fail."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc DeletePlanConfiguration(DeletePlanConfigurationRequest) returns (DeletePlanConfigurationResponse);\n}\n\nmessage DeletePlanConfigurationRequest {}\n\nmessage DeletePlanConfigurationResponse {}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"submitplanconfiguration","__idx":26},"children":["SubmitPlanConfiguration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PlanConfiguration"]}," must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["READY_FOR_SUBMISSION"]}," otherwise attempting to submit will cause an error. Once submitted, the company cannot edit the configuration without reaching out to the Basic Capital Ops team."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc SubmitPlanConfiguration(SubmitPlanConfigurationRequest) returns (SubmitPlanConfigurationResponse);\n}\n\nmessage SubmitPlanConfigurationRequest {}\n\nmessage SubmitPlanConfigurationResponse {\n  PlanConfiguration plan_configuration = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#planconfiguration"},"children":["PlanConfiguration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"addemployees","__idx":27},"children":["AddEmployees"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Adds a new employee to a specific company. This action will error if the company is not marked as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ready_to_enroll_employees"]},". Each employee added will be returned with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AddEmployeeResult"]}," which could include an error if the employee was unable to be added."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Errors:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["START_DATE_IN_FUTURE"]},": Employees can only be added on or after their start date."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MISSING_INFORMATIONAL"]},": Required information for the employee is missing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["READY_TERMINATED"]},": Employees cannot be added if they are already terminated."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INTERNAL_ERROR"]},": Internal error."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc AddEmployees(AddEmployeesRequest) returns (AddEmployeesResponse);\n}\n\nmessage AddEmployeesRequest {\n  repeated CreateEmployeeInfo create_employees_info = 1;\n}\n\nmessage AddEmployeesResponse {\n  repeated AddEmployeeResult results = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#addemployeeresult"},"children":["AddEmployeeResult"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#createemployeeinfo"},"children":["CreateEmployeeInfo"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listemployeedetails","__idx":28},"children":["ListEmployeeDetails"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetches a list of employee details."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListEmployeeDetails(ListEmployeeDetailsRequest) returns (ListEmployeeDetailsResponse);\n}\n\nmessage ListEmployeeDetailsRequest {\n  optional com.basiccapital.common.external.PaginationRequest pagination = 1;\n  repeated EmployeeDetails.ParticipationStatus statuses = 2;\n  optional string search_query = 3;\n}\n\nmessage ListEmployeeDetailsResponse {\n  repeated EmployeeDetails employees = 1;\n  optional string next_page_token = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#employeedetails"},"children":["EmployeeDetails"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getemployeedetails","__idx":29},"children":["GetEmployeeDetails"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetch a single employee's details."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetEmployeeDetails(GetEmployeeDetailsRequest) returns (GetEmployeeDetailsResponse);\n}\n\nmessage GetEmployeeDetailsRequest {\n  string employee_uuid = 1;\n}\n\nmessage GetEmployeeDetailsResponse {\n  EmployeeDetails employee = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#employeedetails"},"children":["EmployeeDetails"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"setemployeecontributionrates","__idx":30},"children":["SetEmployeeContributionRates"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Endpoint to set contribution rates when initiated by an employer. Note: this should only be used in an employer initiated contribution change on behalf of an employee in an employer application."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc SetEmployeeContributionRates(CompanySetEmployeeContributionRatesRequest) returns (CompanySetEmployeeContributionRatesResponse);\n}\n\nmessage CompanySetEmployeeContributionRatesRequest {\n  string employee_uuid = 1;\n  repeated ContributionInfo employee_contribution_rates = 2;\n}\n\nmessage CompanySetEmployeeContributionRatesResponse {}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#contributioninfo"},"children":["ContributionInfo"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"terminateemployee","__idx":31},"children":["TerminateEmployee"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Mark an employee as terminated."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc TerminateEmployee(TerminateEmployeeRequest) returns (TerminateEmployeeResponse);\n}\n\nmessage TerminateEmployeeRequest {\n  string employee_uuid = 1;\n  Date termination_date = 2;\n}\n\nmessage TerminateEmployeeResponse {\n  EmployeeDetails employee = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#date"},"children":["Date"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#employeedetails"},"children":["EmployeeDetails"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listtransactions","__idx":32},"children":["ListTransactions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List transactions for the company."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListTransactions(ListTransactionsRequest) returns (ListTransactionsResponse);\n}\n\nmessage ListTransactionsRequest {\n  optional com.basiccapital.common.external.PaginationRequest pagination = 1;\n  optional IntervalRequest interval = 2;\n  optional Transaction.TransactionType transaction_type = 3;\n  repeated string payroll_event_uuids = 4;\n}\n\nmessage ListTransactionsResponse {\n  repeated Transaction transactions = 1;\n  optional string next_page_token = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#intervalrequest"},"children":["IntervalRequest"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#transaction"},"children":["Transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["See also:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/integration-guide/performance"},"children":["Performance and data querying"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listemployeecontributiondetails","__idx":33},"children":["ListEmployeeContributionDetails"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List the per employee contributions for a given company transaction."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListEmployeeContributionDetails(ListEmployeeContributionDetailsRequest) returns (ListEmployeeContributionDetailsResponse);\n}\n\nmessage ListEmployeeContributionDetailsRequest {\n  string transaction_uuid = 1;\n  optional com.basiccapital.common.external.PaginationRequest pagination = 2;\n}\n\nmessage ListEmployeeContributionDetailsResponse {\n  message EmployeeContributionDetails {\n    string employee_uuid = 1;\n    ContributionDetails contribution_details = 2;\n  }\n\n  repeated EmployeeContributionDetails employee_contribution_details = 1;\n  Transaction transaction = 2;\n  optional string next_page_token = 4;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#contributiondetails"},"children":["ContributionDetails"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#transaction"},"children":["Transaction"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getplanbalance","__idx":34},"children":["GetPlanBalance"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns plan balance details for a given date in the past."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetPlanBalance(GetPlanBalanceRequest) returns (GetPlanBalanceResponse);\n}\n\nmessage GetPlanBalanceRequest {\n  optional Date on_date = 1;\n}\n\nmessage GetPlanBalanceResponse {\n  PlanBalanceDetail plan_balance_details = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#date"},"children":["Date"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#planbalancedetail"},"children":["PlanBalanceDetail"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listeligibilitycounts","__idx":35},"children":["ListEligibilityCounts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List eligibility counts over a given interval."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListEligibilityCounts(ListEligibilityCountsRequest) returns (ListEligibilityCountsResponse);\n}\n\nmessage ListEligibilityCountsRequest {\n  NonDiscreteIntervalRequest interval = 1;\n  optional com.basiccapital.common.external.PaginationRequest pagination = 2;\n}\n\nmessage ListEligibilityCountsResponse {\n  repeated DatedEligibilityCounts eligibility_counts = 1;\n  optional string next_page_token = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#datedeligibilitycounts"},"children":["DatedEligibilityCounts"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#nondiscreteintervalrequest"},"children":["NonDiscreteIntervalRequest"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["See also:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/integration-guide/performance"},"children":["Performance and data querying"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"geteligibilitycounts","__idx":36},"children":["GetEligibilityCounts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns eligibility counts for a specific date."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetEligibilityCounts(GetEligibilityCountsRequest) returns (GetEligibilityCountsResponse);\n}\n\nmessage GetEligibilityCountsRequest {\n  optional Date on_date = 1;\n}\n\nmessage GetEligibilityCountsResponse {\n  optional EligibilityCounts employee_eligibility_counts = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#date"},"children":["Date"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#eligibilitycounts"},"children":["EligibilityCounts"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listplanbalances","__idx":37},"children":["ListPlanBalances"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List the plan balance over a given interval."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListPlanBalances(ListPlanBalancesRequest) returns (ListPlanBalancesResponse);\n}\n\nmessage ListPlanBalancesRequest {\n  NonDiscreteIntervalRequest interval_request = 1;\n  optional com.basiccapital.common.external.PaginationRequest pagination = 2;\n}\n\nmessage ListPlanBalancesResponse {\n  repeated DatedPlanBalanceDetail plan_balance_details = 1;\n  optional string next_page_token = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#datedplanbalancedetail"},"children":["DatedPlanBalanceDetail"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#nondiscreteintervalrequest"},"children":["NonDiscreteIntervalRequest"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["See also:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/integration-guide/performance"},"children":["Performance and data querying"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listemployeeaveragecontributionrates","__idx":38},"children":["ListEmployeeAverageContributionRates"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List the average contributions rates for employees over a specific interval."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListEmployeeAverageContributionRates(ListEmployeeAverageContributionRatesRequest) returns (ListEmployeeAverageContributionRatesResponse);\n}\n\nmessage ListEmployeeAverageContributionRatesRequest {\n  NonDiscreteIntervalRequest interval = 1;\n  optional com.basiccapital.common.external.PaginationRequest pagination = 2;\n}\n\nmessage ListEmployeeAverageContributionRatesResponse {\n  repeated DatedEmployeeAverageContributionRates employee_average_contribution_rates = 1;\n  optional string next_page_token = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#datedemployeeaveragecontributionrates"},"children":["DatedEmployeeAverageContributionRates"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#nondiscreteintervalrequest"},"children":["NonDiscreteIntervalRequest"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["See also:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/integration-guide/performance"},"children":["Performance and data querying"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getemployeeaveragecontributionrates","__idx":39},"children":["GetEmployeeAverageContributionRates"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns the average contribution rate across employees for a given date."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetEmployeeAverageContributionRates(GetEmployeeAverageContributionRatesRequest) returns (GetEmployeeAverageContributionRatesResponse);\n}\n\nmessage GetEmployeeAverageContributionRatesRequest {\n  optional Date on_date = 1;\n}\n\nmessage GetEmployeeAverageContributionRatesResponse {\n  optional EmployeeAverageContributionRates employee_average_contribution_rates = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#date"},"children":["Date"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#employeeaveragecontributionrates"},"children":["EmployeeAverageContributionRates"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listcompanysummary","__idx":40},"children":["ListCompanySummary"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List the company summary data over a specific interval."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListCompanySummary(ListCompanySummaryRequest) returns (ListCompanySummaryResponse);\n}\n\nmessage ListCompanySummaryRequest {\n  NonDiscreteIntervalRequest interval = 1;\n  optional com.basiccapital.common.external.PaginationRequest pagination = 2;\n}\n\nmessage ListCompanySummaryResponse {\n  repeated DatedCompanySummary company_summaries = 1;\n  optional string next_page_token = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#datedcompanysummary"},"children":["DatedCompanySummary"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#nondiscreteintervalrequest"},"children":["NonDiscreteIntervalRequest"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["See also:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/integration-guide/performance"},"children":["Performance and data querying"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getcompanysummary","__idx":41},"children":["GetCompanySummary"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Provides useful summary data for a company."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc GetCompanySummary(GetCompanySummaryRequest) returns (GetCompanySummaryResponse);\n}\n\nmessage GetCompanySummaryRequest {\n  optional Date on_date = 1;\n}\n\nmessage GetCompanySummaryResponse {\n  optional CompanySummary company_summary = 1;\n  optional CompanyYtdSummary company_ytd_summary = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#companysummary"},"children":["CompanySummary"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/reporting#companyytdsummary"},"children":["CompanyYtdSummary"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#date"},"children":["Date"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"submitpayrollevent","__idx":42},"children":["SubmitPayrollEvent"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Used to tell Basic Capital they should fetch pay event data from the payment provider and initiate an ACH pull from company's linked bank account."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc SubmitPayrollEvent(SubmitPayrollEventRequest) returns (SubmitPayrollEventResponse);\n}\n\nmessage SubmitPayrollEventRequest {\n  string external_payroll_event_id = 1;\n}\n\nmessage SubmitPayrollEventResponse {\n  PayrollEvent payroll_event = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#payrollevent"},"children":["PayrollEvent"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listcompanypayrollevents","__idx":43},"children":["ListCompanyPayrollEvents"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This will return all payroll events as they are in Basic Capital."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListCompanyPayrollEvents(ListCompanyPayrollEventsRequest) returns (ListCompanyPayrollEventsResponse);\n}\n\nmessage ListCompanyPayrollEventsRequest {\n  optional com.basiccapital.common.external.PaginationRequest pagination = 1;\n  optional IntervalRequest interval = 2;\n  repeated string external_ids = 3;\n}\n\nmessage ListCompanyPayrollEventsResponse {\n  repeated PayrollEvent payroll_events = 1;\n  optional string next_page_token = 2;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/common#intervalrequest"},"children":["IntervalRequest"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/employees#payrollevent"},"children":["PayrollEvent"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["See also:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/integration-guide/performance"},"children":["Performance and data querying"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listsupportedhrisproviders","__idx":44},"children":["ListSupportedHrisProviders"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists supported HRIS providers for the partner that are supported when invoking ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SetHrisProvider"]},". Please contact Basic Capital to configure or add to your list of supported providers. Note: this needs no company identity header."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc ListSupportedHrisProviders(ListSupportedHrisProvidersRequest) returns (ListSupportedHrisProvidersResponse);\n}\n\nmessage ListSupportedHrisProvidersRequest {}\n\nmessage ListSupportedHrisProvidersResponse {\n  repeated Company.HrisProviderType hris_provider_types = 1;\n}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#company"},"children":["Company"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sethrisprovider","__idx":45},"children":["SetHrisProvider"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sets the HRIS provider Basic Capital reads the company's payroll from and writes its 401(k) deductions to. It must be one of the providers ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ListSupportedHrisProviders"]}," returns. If only one provider is set, Basic Capital will auto link any new company to this HRIS provider during company creation. When more than one HRIS provider is supported, then the partner must call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SetHrisProvider"]}," during onboarding. This is tracked via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["link_hris_status"]}," on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GetOnboardingStatus"]}," for a company. Calling it again with the same provider is safe."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Errors:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_ENUM_VALUE"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hris_provider_type"]}," is unset."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_ARGUMENT"]}," status: the provider set is not in the list of supported providers for this partner, or Basic Capital is unable to link this company to this provider."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALREADY_EXISTS"]}," status: the company is already linked to a different HRIS provider."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"protobuf","header":{"controls":{"copy":{}}},"source":"service PartnerCompanyIngressService {\n  rpc SetHrisProvider(SetHrisProviderRequest) returns (SetHrisProviderResponse);\n}\n\nmessage SetHrisProviderRequest {\n  Company.HrisProviderType hris_provider_type = 1;\n}\n\nmessage SetHrisProviderResponse {}\n","lang":"protobuf"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data types:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/core-data-types/company-and-plan#company"},"children":["Company"]}]}]},"headings":[{"value":"PartnerCompanyIngressService","id":"partnercompanyingressservice","depth":1},{"value":"CreateCompany","id":"createcompany","depth":2},{"value":"GetCompany","id":"getcompany","depth":2},{"value":"UpdateCompany","id":"updatecompany","depth":2},{"value":"GetOnboardingStatus","id":"getonboardingstatus","depth":2},{"value":"BeginBankLink","id":"beginbanklink","depth":2},{"value":"CompleteBankLink","id":"completebanklink","depth":2},{"value":"VerifyBankLink","id":"verifybanklink","depth":2},{"value":"ListBankAccounts","id":"listbankaccounts","depth":2},{"value":"UnlinkLinkedAccount","id":"unlinklinkedaccount","depth":2},{"value":"SetTrustee","id":"settrustee","depth":2},{"value":"GetTrustee","id":"gettrustee","depth":2},{"value":"CreatePlanConfiguration","id":"createplanconfiguration","depth":2},{"value":"GetPlanConfiguration","id":"getplanconfiguration","depth":2},{"value":"UpdatePlanConfiguration","id":"updateplanconfiguration","depth":2},{"value":"ValidatePlanConfiguration","id":"validateplanconfiguration","depth":2},{"value":"ListManagementOptions","id":"listmanagementoptions","depth":2},{"value":"SetManagementOptionType","id":"setmanagementoptiontype","depth":2},{"value":"SetInvestmentConfig","id":"setinvestmentconfig","depth":2},{"value":"ListAvailablePlanInvestmentOptions","id":"listavailableplaninvestmentoptions","depth":2},{"value":"ListQdiaFunds","id":"listqdiafunds","depth":2},{"value":"GetCuratedInvestmentConfig","id":"getcuratedinvestmentconfig","depth":2},{"value":"UpdateCoreConfig","id":"updatecoreconfig","depth":2},{"value":"ClearCoreConfigEmployerMatch","id":"clearcoreconfigemployermatch","depth":2},{"value":"ClearCoreConfigEligibility","id":"clearcoreconfigeligibility","depth":2},{"value":"DeletePlanConfiguration","id":"deleteplanconfiguration","depth":2},{"value":"SubmitPlanConfiguration","id":"submitplanconfiguration","depth":2},{"value":"AddEmployees","id":"addemployees","depth":2},{"value":"ListEmployeeDetails","id":"listemployeedetails","depth":2},{"value":"GetEmployeeDetails","id":"getemployeedetails","depth":2},{"value":"SetEmployeeContributionRates","id":"setemployeecontributionrates","depth":2},{"value":"TerminateEmployee","id":"terminateemployee","depth":2},{"value":"ListTransactions","id":"listtransactions","depth":2},{"value":"ListEmployeeContributionDetails","id":"listemployeecontributiondetails","depth":2},{"value":"GetPlanBalance","id":"getplanbalance","depth":2},{"value":"ListEligibilityCounts","id":"listeligibilitycounts","depth":2},{"value":"GetEligibilityCounts","id":"geteligibilitycounts","depth":2},{"value":"ListPlanBalances","id":"listplanbalances","depth":2},{"value":"ListEmployeeAverageContributionRates","id":"listemployeeaveragecontributionrates","depth":2},{"value":"GetEmployeeAverageContributionRates","id":"getemployeeaveragecontributionrates","depth":2},{"value":"ListCompanySummary","id":"listcompanysummary","depth":2},{"value":"GetCompanySummary","id":"getcompanysummary","depth":2},{"value":"SubmitPayrollEvent","id":"submitpayrollevent","depth":2},{"value":"ListCompanyPayrollEvents","id":"listcompanypayrollevents","depth":2},{"value":"ListSupportedHrisProviders","id":"listsupportedhrisproviders","depth":2},{"value":"SetHrisProvider","id":"sethrisprovider","depth":2}],"frontmatter":{"title":"PartnerCompanyIngress","seo":{"title":"PartnerCompanyIngressService"}},"lastModified":"2026-10-15T20:52:55.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/grpc/partnercompanyingressservice","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}