# Get income employment details (VOIE) Retrieves details of an Individual's income and employment based on employment/income related Items, including history and status. MeasureOne uses a set of heuristics to make a final determination. These heuristics are summarized in Reason Codes as detailed in the following table. ### Reason Codes |Code|Description| |--- |--- | |MIE_VF_DPC|Verification method: Direct payroll account connection| |MIE_VF_USP_BAC|Verification method: User-submitted paystub with bank account check| |MIE_VF_USP_NO_BAC|Verification method: User-submitted paystub without bank account check| |MIE_VF_US_EDR|Verification method: User-submitted THE WORK NUMBER Employment Data Report| |MIE_VF_USW2|Verification method: User-submitted W-2| |MIE_VF_US1099B| Verification method: User-submitted 1099-B| |MIE_VF_US1099OID| Verification method: User-submitted 1099-OID| |MIE_VF_US1099DIV| Verification method: User-submitted 1099-DIV| |MIE_VF_US1099INT| Verification method: User-submitted 1099-INT| |MIE_VF_US1099CONSOLIDATED| Verification method: User-submitted 1099-CONSOLIDATED| |MIE_VF_DPC_USP|Verification method: Direct payroll account connection and one or more User-submitted Paystub| |MIE_VF_DPC_USW2|Verification method: Direct payroll account connection and User-submitted W-2| |MIE_VF_USP_USW2|Verification method: User-submitted one or more Paystub and W-2| |MIE_VF_W2|Verification method: W-2 reported income is the wages, tips and other comp. (box 1) as reported on the W-2| |MIE_ERNG_1099INT|Interest income computed using data available on 1099-INT| |MIE_ERNG_1099DIV|Dividend income computed using data available on 1099-DIV| |MIE_ERNG_1099B|Investment income computed using data available on 1099-B| |MIE_ERNG_1099OID|Interest income computed using data available on 1099-OID| |MIE_ERNG_1099MISC|Rental income is Rents (box 1) as reported on 1099-MISC| |MIE_ERNG_1099MISC|Royalty income is Royalties (box 2) as reported on 1099-MISC| |MIE_ERNG_1099MISC|Other income is Other Income (box 3) as reported on 1099-MISC| |MIE_VF_UCB|Verification method: User-connected bank account| |MIE_DA_ESD|Employment start date directly available in source data| |MIE_DRVD_ESD|Employment start date derived earliest available paystub| |MIE_DRVD_EIN|Employment Identification Number (EIN) derived from W-2| |MIE_DA_EED|Employment end date directly available in source data| |MIE_DRVD_EED|Employment end date derived from latest paystub| |MIE_DA_ROLE|Role information directly available in source data| |MIE_DA_ES|Employment status directly available in source data| |MIE_DRVD_ES|Employment status derived based on last pay date| |MIE_NI_BEM|Net income on Paystub matches with a corresponding entry in the bank statement| |MIE_NI_NO_BEM|Net income on Paystub does not matches with a corresponding entry in the bank statement| |MIE_NID_BEM|Net income on Paystub matches with a corresponding entry in the bank statement (Deposit Split)| |MIE_INSUFFICIENT_DATA|Insufficient information to derive employment status| |MIE_INSUFFICIENT_DATA|Insufficient information to derive employee role| |MIE_INSUFFICIENT_DATA|Insufficient information to derive employment start date| |MIE_INSUFFICIENT_DATA|Insufficient information to derive employment end date| |MIE_INSUFFICIENT_DATA|Insufficient information to derive earnings| |MIE_INSUFFICIENT_DATA|Insufficient information to derive yearly earnings| |MIE_INSUFFICIENT_DATA|Insufficient information to derive an EIN| Endpoint: POST /v3/services/get_income_employment_details Version: 3.0 Security: Bearer ## Header parameters: - `version` (number) Version number of the MeasureOne API you wish to integrate. - `Authorization` (string) Authorization API Key - `Content-type` (string) Content-type of the request payload. MeasureOne accepts content in application/json format unless specified otherwise ## Response 200 fields (application/json): - `individual` (object) - `individual.individual_id` (string) Unique ID of the Individual identified by MeasureOne - `individual.datasources` (array) - `service_context_id` (string) Unique ID of the service context identified by MeasureOne - `processing_status` (string) Processing status of the request. Enum: "COMPLETED", "ACQUIRING" - `metadata` (object) metadata can be used for storing additional information in a structured format. metadata will be sent in webhooks and report response. - `income_employment_details` (array) - `income_employment_details.datasource` (object) Datasource details - `income_employment_details.datasource.id` (string) MeasureOne datasource identifier - `income_employment_details.datasource.type` (string) Type of datasource - `income_employment_details.datasource.name` (string) Name of datasource - `income_employment_details.datasource.provider_name` (string) Name of provider - `income_employment_details.as_of_date` (number) Timestamp (milliseconds) when this record was generated - `income_employment_details.datarequest_id` (string) Unique ID of the Data Request identified by MeasureOne - `income_employment_details.employer` (object) Employer information - `income_employment_details.employer.name` (string) Name of the employer - `income_employment_details.employer.phone_number` (string) Phone number of the employer - `income_employment_details.employer.ein` (string) Employer identification number - `income_employment_details.employer.address` (object) - `income_employment_details.employer.address.addr1` (string) - `income_employment_details.employer.address.addr2` (string) - `income_employment_details.employer.address.city` (string) - `income_employment_details.employer.address.state_name` (string) - `income_employment_details.employer.address.zipcode` (string) - `income_employment_details.employer.address.country` (object) - `income_employment_details.employer.address.country.name` (string) - `income_employment_details.employee` (object) - `income_employment_details.employee.service_details` (object) - `income_employment_details.employee.service_details.employee_id` (string) employee_id provided by the employer - `income_employment_details.employee.service_details.hire_date` (number) Hire date of the employee (timestamp in milliseconds) - `income_employment_details.employee.service_details.status` (string) Status of employee with the employer Enum: "ACTIVE", "INACTIVE", "TERMINATED", "UNKNOWN" - `income_employment_details.employee.service_details.salary` (number) Salary of the employee - `income_employment_details.employee.service_details.salary_basis` (string) Basis of salary Enum: "HOURLY", "MONTHLY", "SEMI_MONTHLY", "WEEKLY", "BI_WEEKLY", "ANNUAL", "OTHER" - `income_employment_details.employee.service_details.termination_date` (number) Termination date of the employee (timestamp in milliseconds) - `income_employment_details.employee.service_details.termination_reason` (string) Termination reason - `income_employment_details.employee.first_name` (string) First name of the employee - `income_employment_details.employee.middle_name` (string) Middle name of the employee - `income_employment_details.employee.last_name` (string) Last Name of the employee - `income_employment_details.employee.email` (string) Email address of the employee - `income_employment_details.employee.prefix` (string) Name prefix - `income_employment_details.employee.suffix` (string) Name suffix - `income_employment_details.employee.gender` (string) Gender of the employee - `income_employment_details.employee.phone_number` (string) Phone number of the employee - `income_employment_details.employee.date_of_birth` (string) Date of Birth of the employee in MM/DD/YYYY format. - `income_employment_details.employee.ssn` (string) Social Security Number of the the employee - `income_employment_details.roles` (array) Array of objects representing Employment of an Individual - `income_employment_details.roles.position` (object) - `income_employment_details.roles.position.name` (string) Name of the position - `income_employment_details.roles.position.title` (string) Title of the position - `income_employment_details.roles.type` (string) Type of position Enum: "FULL_TIME", "PART_TIME", "CONTRACT", "OTHER" - `income_employment_details.roles.supervisor` (string) Name of supervisor - `income_employment_details.roles.interval` (object) - `income_employment_details.roles.interval.start_date` (number) Start date timestamp (milliseconds) of the deployment - `income_employment_details.roles.interval.end_date` (number) End date timestamp (milliseconds) of the deployment - `income_employment_details.roles.location` (object) - `income_employment_details.roles.location.name` (string) Location name - `income_employment_details.roles.department` (string) Department during the deployment - `income_employment_details.reason_codes` (array) Array of reason codes used for determining the income employment details. Helps developer understand how has the details been derived. - `income_employment_details.reason_codes.code` (string) Reason code applicable - `income_employment_details.reason_codes.description` (string) Description providing details to understand how has the details been derived. - `income_employment_details.earnings` (array) Earnings of the employee - `income_employment_details.earnings.type` (string) Type of earning Enum: "SALARY", "WAGE", "INVESTMENT", "RENTAL", "COMMISSION", "INTEREST", "INVESTMENT", "ROYALTY", "GIFTS", "ALLOWANCE", "GOVERNMENT_PAYMENT", "DIVIDENDS", "RETIREMENT_PENSION", "TAX_REFUND", "UNEMPLOYMENT", "TRANSFER_IN", "OTHER_DEPOSITS", "OTHER" - `income_employment_details.earnings.basis` (string) Basis of earnings Enum: "HOURLY", "MONTHLY", "SEMI_MONTHLY", "WEEKLY", "ANNUAL", "BI_WEEKLY", "OTHER" - `income_employment_details.earnings.pay_date` (string) Payment date timestamp (milliseconds) - `income_employment_details.earnings.interval` (object) Earning interval - `income_employment_details.earnings.interval.start_date` (number) Start date timestamp (milliseconds) of the earning - `income_employment_details.earnings.interval.end_date` (number) End date timestamp (milliseconds) of the earning - `income_employment_details.earnings.amounts` (array) - `income_employment_details.earnings.amounts.currency` (string) Earning currency Enum: "USD", "OTHER" - `income_employment_details.earnings.amounts.type` (string) Type of amount Enum: "GROSS", "NET", "REGULAR", "OVERTIME", "BONUS", "COMMISSION", "OTHER", "W2_REPORTED_INCOME", "F1099_INT_REPORTED_INCOME", "F1099_DIV_REPORTED_INCOME", "F1099_B_REPORTED_INCOME", "F1099_OID_REPORTED_INCOME", "F1099_MISC_REPORTED_INCOME" - `income_employment_details.earnings.amounts.description` (string) Description of amount. Description would be populated when include_earnings_description is for the request. - `income_employment_details.earnings.amounts.ytd_flag` (boolean) Indicates if the amount given is year to date - `income_employment_details.earnings.amounts.value` (number) Value of earning amount - `income_employment_details.earnings.amounts.rate` (number) Pay rate of the employee - `income_employment_details.earnings.amounts.hours` (number) Number of hours worked - `income_employment_details.yearly_earnings` (array) Yearly earnings of the employee - `income_employment_details.yearly_earnings.year` (integer) year of earning - `income_employment_details.yearly_earnings.type` (string) type of earning Enum: "SALARY", "WAGE", "INVESTMENT", "RENTAL", "COMMISSION", "INTEREST", "INVESTMENT", "ROYALTY", "GIFTS", "ALLOWANCE", "GOVERNMENT_PAYMENT", "DIVIDENDS", "RETIREMENT_PENSION", "TAX_REFUND", "UNEMPLOYMENT", "TRANSFER_IN", "OTHER_DEPOSITS", "OTHER" - `income_employment_details.account_holders` (array) List of account holders associated with the connected bank account. - `income_employment_details.account_holders.name` (string) Name of the account holder - `income_employment_details.account_holders.email` (string) Email of the account holder - `income_employment_details.account_holders.phone_number` (string) Phone number of the account holder - `income_employment_details.account_holders.addresss` (object) Address of the account holder - `income_employment_details.deductions` (array) Deductions of the employee - `income_employment_details.deductions.type` (string) Type of deduction Enum: "OTHER" - `income_employment_details.deductions.interval` (object) Deduction interval - `income_employment_details.deductions.interval.start_date` (number) Start date timestamp of the deduction - `income_employment_details.deductions.interval.end_date` (number) End date timestamp of the deduction - `income_employment_details.benefits` (array) Benefits of the employee - `income_employment_details.benefits.type` (string) Type of benefit Enum: "OTHER" - `income_employment_details.benefits.interval` (object) Benefit interval - `income_employment_details.benefits.interval.start_date` (number) Start date timestamp of the benefit - `income_employment_details.benefits.interval.end_date` (number) End date timestamp of the benefit - `transaction_id` (string) Unique ID of this transaction. ## Response 400 fields (application/json): - `timestamp` (number) Timestamp in milliseconds - `error_code` (string) MeasureOne Error code - `error_message` (string) Details of the error ## Response 401 fields (application/json): - `timestamp` (number) Timestamp in milliseconds - `error_code` (string) MeasureOne Error code - `error_message` (string) Details of the error ## Response 404 fields (application/json): - `timestamp` (number) Timestamp in milliseconds - `error_code` (string) MeasureOne Error code - `error_message` (string) Details of the error ## Response 405 fields (application/json): - `timestamp` (number) Timestamp in milliseconds Example: 1655227025839 - `error_code` (string) MeasureOne Error code Example: "METHOD_NOT_ALLOWED" - `error_message` (string) Details of the error Example: "Given Method not allowed" ## Response 409 fields (application/json): - `timestamp` (number) Timestamp in milliseconds Example: 1655227025839 - `http_code` (number) Error status code Example: 409 - `error_code` (string) MeasureOne Error code Example: "MULTIPLE_REPORT_INSTANCES" - `error_message` (string) Details of the error Example: "Multiple instances of the report INCOME_EMPLOYMENT_DETAILS found in the Data Request. Please provide params/metadata in request" ## Response 422 fields (application/json): - `timestamp` (number) Timestamp in milliseconds - `error_code` (string) MeasureOne Error code - `error_message` (string) Details of the error - `reason_codes` (array) List of reason codes. Helps developer understand what error occurred during processing an item. - `reason_codes.code` (string) Reason code applicable |Reason Code|Description| |--- |--- | |UNSUPPORTED_FORMAT| The report could not be generated as the following items are of unsupported format. |UNPROCESSABLE_DOCUMENT_QUALITY| The report could not be generated as the following items are unprocessable. |PARTIAL_DOCUMENT| The report could not be generated as the following items are partial. |NO_ITEMS| The report could not be generated as there are no items for this Individual. - `reason_codes.description` (string) Description providing details to understand what error occurred during processing an item. - `reason_codes.context` (object) Context to understand where the reason code is applicable - `reason_codes.context.items` (array) List of Items where the reason code is applicable ## Response 500 fields (application/json): - `timestamp` (number) Timestamp in milliseconds - `error_code` (string) MeasureOne Error code - `error_message` (string) Details of the error