OracleFree referencePDF, Excel, Word exportOracle E-Business Suite

Oracle EBS HR API List: HR_EMPLOYEE_API, HR_PERSON_API and Other HRMS Public APIs

This Oracle EBS HR API list covers the public HRMS APIs developers use most: HR_EMPLOYEE_API, HR_PERSON_API, HR_ASSIGNMENT_API, HR_EX_EMPLOYEE_API and the contact, address, job and position APIs. Search by package, procedure or parameter, then use the call example as a starting point.

Download:
Package.procedurePurposeKey IN parametersKey OUT / IN OUT parametersNote
HR_EMPLOYEE_API.CREATE_EMPLOYEE
Hire a new employee: creates the person, period of service and first assignment
p_validate, p_hire_date, p_business_group_id, p_last_name, p_sex, p_person_type_id, p_national_identifier
p_employee_number (IN OUT), p_person_id, p_assignment_id, p_per_object_version_number, p_asg_object_version_number, p_full_name
Legislation-specific variants exist, for example CREATE_US_EMPLOYEE and CREATE_GB_EMPLOYEE
HR_PERSON_API.UPDATE_PERSON
Update personal details of a person (name, birth date, marital status and similar)
p_effective_date, p_datetrack_update_mode, p_person_id, p_last_name, p_marital_status
p_object_version_number (IN OUT), p_effective_start_date, p_effective_end_date, p_full_name, p_comment_id
Pass hr_api.g_varchar2 / g_number / g_date to leave a value unchanged
HR_PERSON_API.UPDATE_US_PERSON
Update a person with United States specific fields
p_effective_date, p_datetrack_update_mode, p_person_id
p_object_version_number (IN OUT), p_effective_start_date, p_effective_end_date, p_full_name
Equivalent localized variants exist for other legislations such as UPDATE_GB_PERSON
HR_ASSIGNMENT_API.UPDATE_EMP_ASG
Update non-criteria assignment details, for example supervisor and manager flag
p_effective_date, p_datetrack_update_mode, p_assignment_id, p_supervisor_id
p_object_version_number (IN OUT), p_effective_start_date, p_effective_end_date
Does not change job, position, grade or organization; use UPDATE_EMP_ASG_CRITERIA for those
HR_ASSIGNMENT_API.UPDATE_EMP_ASG_CRITERIA
Change assignment criteria: job, position, grade, organization, location
p_effective_date, p_datetrack_update_mode, p_assignment_id, p_job_id, p_organization_id, p_location_id, p_grade_id
p_object_version_number (IN OUT), p_effective_start_date, p_effective_end_date, p_special_ceiling_step_id, p_people_group_id
Check the warning OUT flags it returns, such as salary and payroll warnings
HR_ASSIGNMENT_API.CREATE_SECONDARY_EMP_ASG
Create an additional assignment for an existing employee
p_effective_date, p_person_id, p_organization_id, p_assignment_number
p_assignment_id, p_object_version_number, p_effective_start_date, p_effective_end_date
Primary assignment is created by CREATE_EMPLOYEE
HR_EX_EMPLOYEE_API.ACTUAL_TERMINATION_EMP
Terminate an employee by recording the actual termination date
p_effective_date, p_period_of_service_id, p_actual_termination_date, p_leaving_reason
p_object_version_number (IN OUT), p_last_standard_process_date (IN OUT), p_supervisor_warning, p_event_warning
Followed by FINAL_PROCESS_EMP after the last standard process date
HR_EX_EMPLOYEE_API.FINAL_PROCESS_EMP
Final process an ex-employee after the last standard process date
p_period_of_service_id, p_final_process_date
p_object_version_number (IN OUT), p_final_process_date (IN OUT), p_org_now_no_manager_warning, p_asg_future_changes_warning
Used with ACTUAL_TERMINATION_EMP to complete the termination
HR_EX_EMPLOYEE_API.REVERSE_TERMINATE_EMPLOYEE
Reverse a termination and reinstate the employee
p_period_of_service_id, p_actual_termination_date
p_object_version_number (IN OUT)
Reversal rules depend on whether the employee was final processed
HR_CONTACT_REL_API.CREATE_CONTACT
Create a contact and its relationship to an employee
p_start_date, p_business_group_id, p_person_id, p_contact_type, p_last_name
p_contact_relationship_id, p_ctr_object_version_number, p_per_person_id, p_per_object_version_number, p_full_name
Can also link an existing person as the contact
HR_PERSON_ADDRESS_API.CREATE_PERSON_ADDRESS
Add an address to a person
p_effective_date, p_person_id, p_primary_flag, p_style, p_date_from, p_address_line1, p_country
p_address_id, p_object_version_number
Style selects the country address format; some styles add legislation specific segments
HR_PHONE_API.CREATE_PHONE
Add a phone number to a person or other parent record
p_date_from, p_phone_type, p_phone_number, p_parent_id, p_parent_table
p_phone_id, p_object_version_number
For employees, p_parent_table is PER_ALL_PEOPLE_F
HR_JOB_API.CREATE_JOB
Create a job in a business group
p_business_group_id, p_date_from, p_job_group_id, p_segment1
p_job_id, p_object_version_number, p_job_definition_id, p_name
Segments depend on your Job key flexfield structure
HR_POSITION_API.CREATE_POSITION
Create a position within a job and organization
p_job_id, p_organization_id, p_date_effective, p_segment1
p_position_id, p_object_version_number, p_position_definition_id, p_name
Segments depend on your Position key flexfield structure
HR_ORGANIZATION_API.CREATE_ORGANIZATION
Create an HR organization
p_business_group_id, p_date_from, p_name, p_location_id, p_type
p_organization_id, p_object_version_number
Classifications are added separately
HR_LOCATION_API.CREATE_LOCATION
Create a location
p_effective_date, p_location_code, p_description, p_style, p_address_line_1, p_country, p_postal_code
p_location_id, p_object_version_number
Style selects the address format used by the location
HR_APPLICANT_API.CREATE_APPLICANT
Create an applicant with an application
p_date_received, p_business_group_id, p_last_name, p_person_type_id
p_person_id, p_applicant_number (IN OUT), p_per_object_version_number, p_application_id, p_assignment_id
Hire later with HR_APPLICANT_API.HIRE_APPLICANT
FND_GLOBAL.APPS_INITIALIZE
Set the user, responsibility and application context before calling APIs from SQL*Plus or a script
user_id, resp_id, resp_appl_id
None
Required when running outside a concurrent program or session that already has the context

Call example (verify parameters against the package specification in your release): BEGIN fnd_global.apps_initialize(user_id => 1234, resp_id => 50000, resp_appl_id => 800); hr_person_api.update_person(p_validate => FALSE, p_effective_date => TRUNC(SYSDATE), p_datetrack_update_mode => 'CORRECTION', p_person_id => 5678, p_object_version_number => l_ovn, p_effective_start_date => l_esd, p_effective_end_date => l_eed, p_full_name => l_full_name, p_comment_id => l_comment_id, p_name_combination_warning => l_name_warn, p_assign_payroll_warning => l_payroll_warn, p_orig_hire_warning => l_hire_warn); COMMIT; END; Parameter lists differ by release (R12.1, R12.2) and legislation. Confirm exact signatures with DESC on the package or in the Oracle Integration Repository. Use p_validate => TRUE to test a call and roll it back.

EBS data access, kept on-prem

Ask how a private AI layer can answer questions over EBS data while it stays on your servers. Optional.

Optional. The tool and every export work without this. No spam.

How to use the reference

Search for the business event you need, such as hire, terminate or change assignment, and read across the row: the package and procedure, the key IN parameters, and the OUT and IN OUT values you must keep. The list is a map, not a full parameter dictionary. Always confirm the full parameter list in your release with DESC on the package spec or in the Oracle Integration Repository, because the signature depends on your version and legislation.

Rules every HRMS API call follows

Initialize the apps context with FND_GLOBAL.APPS_INITIALIZE before calling from outside an application session. Date-tracked records need a date-track update mode such as CORRECTION, UPDATE, UPDATE_OVERRIDE or UPDATE_CHANGE_INSERT and an effective date. The object version number is IN OUT: pass the current value and store the one returned for the next call. Use the hr_api default constants to leave a value unchanged on update.

  • Set context with FND_GLOBAL.APPS_INITIALIZE
  • Pass p_effective_date and a date-track mode for date-tracked updates
  • Keep and reuse the returned object version number
  • Use p_validate => TRUE to dry-run and roll back
  • Commit yourself; the APIs do not commit

Why use the APIs and not direct table updates

The public APIs enforce HR business rules, maintain date-track history, fire business events and keep related tables consistent. Direct inserts or updates into PER_ALL_PEOPLE_F, PER_ALL_ASSIGNMENTS_F or PER_PERIODS_OF_SERVICE skip that logic and can corrupt data or break payroll and benefits, and they put you outside Oracle support. Use APIs for any write, and use views and SQL only for reading.

Common mistakes

Frequent failures are missing apps context, passing a stale object version number after another update, using the wrong date-track mode for the change, and ignoring warning flags the API returns. Terminations also take two steps, actual termination and final process. Test in a non-production instance with p_validate set to TRUE before bulk loading with a script.

Frequently Asked Questions

What is HR_EMPLOYEE_API.CREATE_EMPLOYEE used for?

It hires a new employee in Oracle EBS HRMS by creating the person record, the period of service and the first assignment in one call. It returns the person id, assignment id, object version numbers and the employee number.

Do Oracle HR APIs commit the transaction?

No. The public HRMS APIs do not issue a commit, so your code must commit or roll back. You can use the p_validate parameter set to TRUE to run all validation and roll the change back automatically.

Where can I find the full parameter list of an HR API?

Use DESC on the package in SQL*Plus or read the package specification in the database, or look at the API in the Oracle Integration Repository for your release. Parameters vary between releases and legislations.

Can I update HR tables directly instead of using the APIs?

You should not. Direct changes bypass date-track handling, business rules and events, and can cause data corruption and unsupported states. Use the public APIs for writes and keep SQL for reporting only.

If you want to query your EBS HR and ERP data in plain language without exposing it outside your network, Netray builds private, read-only AI layers that run on-prem.

Keep exploring

Free tools

ERP fixes and how-tos

Runs with your ERP

AI on your ERP

Integrations

Software