Monday, 15 June 2026

Oracle Cloud Payroll: How to Load Personal Payment Methods Using HDL

Oracle Cloud Payroll: How to Load Personal Payment Methods Using HDL

Personal Payment Methods in Oracle Fusion HCM define how an employee receives payroll payments.

For example, an employee may receive:

  • 100 percent of their salary in one checking account
  • A fixed amount in a savings account
  • The remaining balance in another account

When loading a direct-deposit Personal Payment Method through HCM Data Loader (HDL), the Personal Payment Method cannot be created in isolation.

Oracle must first know the following hierarchy:

Bank
→ Bank Branch
→ External Bank Account
→ External Bank Account Owner
→ Personal Payment Method

In this article, we will load a bank account and create a Personal Payment Method that deposits 100 percent of the employee’s payroll payment into that account.


Example Data

Attribute Value
Person Number 82213
Assignment Number E82213
Bank Name BANK OF AMERICA
Routing Number 064000020
Branch Name BANK OF AMERICA - 064000020
Account Type Checking
Country US
Currency USD
Legislative Data Group US Legislative Data Group
Organization Payment Method DD
Payment Percentage 100
Processing Order 1

Note: The bank account number is masked in this article. Replace <BANK_ACCOUNT_NUMBER> with the actual account number in the secured HDL file.


Prerequisites

Before loading the Personal Payment Method, confirm that:

  • The employee exists in Oracle Fusion HCM.
  • Person number 82213 is valid.
  • Assignment number E82213 is valid.
  • The employee has a payroll relationship.
  • The assignment is associated with the required payroll.
  • US Legislative Data Group exists.
  • Organization Payment Method code DD exists.
  • The Organization Payment Method is effective on the Personal Payment Method start date.

The Organization Payment Method code is configured during payroll implementation. It may not always be DD, so confirm the value in the target environment.


Step 1: Load the Bank

Create a file named Bank.dat.

METADATA|Bank|BankName|CountryCode
MERGE|Bank|BANK OF AMERICA|US

This creates or identifies the bank using:

  • BankName: BANK OF AMERICA
  • CountryCode: US

If the bank already exists in Oracle with the same name and country, the existing bank can be used.

Bank names must be consistent across all the HDL files.

For example:

BANK OF AMERICA

and:

BANK OF AMERICA N.A.

may be treated as different bank names.




Step 2: Load the Bank Branch

Create a file named BankBranch.dat.

METADATA|BankBranch|BankName|CountryCode|BankBranchNumber|BankBranchName
MERGE|BankBranch|BANK OF AMERICA|US|064000020|BANK OF AMERICA - 064000020

The branch is associated with Bank of America using the bank name and country.

For example:

  • BankBranchNumber: 064000020
  • BankBranchName: BANK OF AMERICA - 064000020

For US bank accounts, the branch number normally represents the routing number.

The branch name can follow any agreed naming convention, but the same branch name must be used when loading the External Bank Account and Personal Payment Method.




Step 3a: Load the External Bank Account

Create a file named ExternalBankAccount.dat.

METADATA|ExternalBankAccount|BankName|BankBranchName|BankBranchNumber|AccountNumber|AccountType|AccountName|CountryCode|CurrencyCode
MERGE|ExternalBankAccount|BANK OF AMERICA|BANK OF AMERICA - 064000020|064000020|<BANK_ACCOUNT_NUMBER>|Checking||US|USD

This record creates an employee’s bank account.

The important attributes are:

  • BankName: BANK OF AMERICA
  • BankBranchName: BANK OF AMERICA - 064000020
  • BankBranchNumber: 064000020
  • AccountNumber: <BANK_ACCOUNT_NUMBER>
  • AccountType: Checking
  • CountryCode: US
  • CurrencyCode: USD

AccountName is left blank in this example.

It can also be populated with a description such as:

PRIMARY CHECKING ACCOUNT

The account-type value must be valid in the Oracle environment. Depending on the configured lookup values, the environment may expect a value such as Checking or CHECKING.


Step 3b: Load the External Bank Account Owner

Creating the External Bank Account does not automatically associate it with an employee.

The ExternalBankAccountOwner record establishes the ownership relationship.

Add the following record to ExternalBankAccount.dat:

METADATA|ExternalBankAccountOwner|PersonNumber|BankName|BankBranchName|AccountNumber|CountryCode|CurrencyCode|BankBranchNumber|AccountType|PrimaryFlag
MERGE|ExternalBankAccountOwner|82213|BANK OF AMERICA|BANK OF AMERICA - 064000020|<BANK_ACCOUNT_NUMBER>|US|USD|064000020|Checking|Y

The employee is identified using the person number:

PersonNumber: 82213

The employee is also marked as the primary account owner:

PrimaryFlag: Y

It is important to use the person number here, not the assignment number.

Combined ExternalBankAccount.dat File

METADATA|ExternalBankAccount|BankName|BankBranchName|BankBranchNumber|AccountNumber|AccountType|AccountName|CountryCode|CurrencyCode
MERGE|ExternalBankAccount|BANK OF AMERICA|BANK OF AMERICA - 064000020|064000020|<BANK_ACCOUNT_NUMBER>|Checking||US|USD

METADATA|ExternalBankAccountOwner|PersonNumber|BankName|BankBranchName|AccountNumber|CountryCode|CurrencyCode|BankBranchNumber|AccountType|PrimaryFlag
MERGE|ExternalBankAccountOwner|82213|BANK OF AMERICA|BANK OF AMERICA - 064000020|<BANK_ACCOUNT_NUMBER>|US|USD|064000020|Checking|Y

Uploading: 43601 of 43601 bytes uploaded.



Step 4: Load the Personal Payment Method

After the bank account and account owner are successfully loaded, create PersonalPaymentMethod.dat.

METADATA|PersonalPaymentMethod|EffectiveStartDate|EffectiveEndDate|PersonalPaymentMethodCode|PaymentAmountType|Percentage|ProcessingOrder|LegislativeDataGroupName|AssignmentNumber|OrganizationPaymentMethodCode|BankAccountNumber|BankBranchName|BankName|BankCountryCode|BankBranchNumber|BankAccountType
MERGE|PersonalPaymentMethod|2021/02/01|4712/12/31|PPM_82213_1|P|100|1|US Legislative Data Group|E82213|DD|<BANK_ACCOUNT_NUMBER>|BANK OF AMERICA - 064000020|BANK OF AMERICA|US|064000020|Checking

Let us look at the important attributes.





Effective Start and End Dates

EffectiveStartDate: 2021/02/01
EffectiveEndDate: 4712/12/31

The effective start date determines when the payment method becomes active.

The date must be valid for the employee’s:

  • Work relationship
  • Assignment
  • Payroll relationship
  • Organization Payment Method

4712/12/31 is commonly used as an open-ended effective end date.


Personal Payment Method Code

PersonalPaymentMethodCode: PPM_82213_1

This is the identifier for the Personal Payment Method.

A simple naming convention is:

PPM_<PERSON_NUMBER>_<SEQUENCE>

For example:

PPM_82213_1
PPM_82213_2

The second value can be used when an employee has multiple payment methods.


Payment Amount Type

PaymentAmountType: P

P represents a percentage-based payment method in this example.

Because the payment amount type is percentage, the Percentage attribute is populated:

Percentage: 100

This means that 100 percent of the applicable payroll payment will be deposited into the account.


Processing Order

ProcessingOrder: 1

Processing orders are important when an employee has multiple Personal Payment Methods.

For example:

  • Account 1: Processing order 1
  • Account 2: Processing order 2

Oracle processes the payment methods according to this sequence.


Legislative Data Group

LegislativeDataGroupName: US Legislative Data Group

The value must exactly match the Legislative Data Group configured in Oracle Fusion HCM.


Assignment Number

AssignmentNumber: E82213

The Personal Payment Method is associated with the employee’s payroll assignment using the assignment number.

This is different from the External Bank Account Owner record, which uses the person number.

ExternalBankAccountOwner → PersonNumber
PersonalPaymentMethod → AssignmentNumber

This is an important distinction when preparing the HDL files.


Organization Payment Method

OrganizationPaymentMethodCode: DD

The Organization Payment Method defines the payment mechanism used by payroll.

In this example, DD represents direct deposit.

The code must:

  • Exist in the target environment
  • Be associated with the correct Legislative Data Group
  • Be effective on the Personal Payment Method start date
  • Support the required payment type and currency

Bank Account Reference

The final attributes identify the External Bank Account:

  • BankAccountNumber
  • BankBranchName
  • BankName
  • BankCountryCode
  • BankBranchNumber
  • BankAccountType

The values must match the External Bank Account record.

For example:

  • BankAccountNumber: <BANK_ACCOUNT_NUMBER>
  • BankBranchName: BANK OF AMERICA - 064000020
  • BankName: BANK OF AMERICA
  • BankCountryCode: US
  • BankBranchNumber: 064000020
  • BankAccountType: Checking

Even a small difference in the bank or branch values can cause Oracle to report that the bank account cannot be found.


Recommended Load Order

Load the HDL files in the following sequence:

  1. Bank.dat
  2. BankBranch.dat
  3. ExternalBankAccount.dat
  4. PersonalPaymentMethod.dat

Validate each load before proceeding to the next file.

For example, do not load the Personal Payment Method until the External Bank Account and External Bank Account Owner have completed successfully.


Uploading the HDL Files

To upload the files:

  1. Save each file with the .dat extension.
  2. Place the .dat file inside a ZIP file.
  3. Navigate to My Client Groups.
  4. Open Data Exchange.
  5. Select Import and Load Data.
  6. Upload the ZIP file.
  7. Monitor the import and load processes.
  8. Review the object and component statuses.

If a record fails, download the error file and review the detailed error message.


Common Errors

Bank Could Not Be Found

Verify that:

  • The bank was loaded successfully.
  • The bank name matches exactly.
  • The country code is correct.
  • The same bank name is used in all files.

Bank Branch Could Not Be Found

Verify:

  • BankName
  • BankBranchName
  • BankBranchNumber
  • CountryCode

The branch name and routing number must match the Bank Branch record.

Also verify that leading zeros have not been removed from the routing number.

External Bank Account Could Not Be Found

Compare the following values between ExternalBankAccount.dat and PersonalPaymentMethod.dat:

  • AccountNumber
  • AccountType
  • BankName
  • BankBranchName
  • BankBranchNumber
  • CountryCode
  • CurrencyCode

The most common issue is a difference in one of the identifying values.

Account Owner Could Not Be Created

Verify that:

  • Person number 82213 exists.
  • The External Bank Account loaded successfully.
  • The person number, not the assignment number, is used.
  • PrimaryFlag contains a valid value.

Assignment Could Not Be Found

Verify that:

  • Assignment number E82213 exists.
  • The assignment is active on the effective start date.
  • The employee has a valid payroll relationship.
  • The assignment belongs to the expected legislative context.

Organization Payment Method Is Invalid

Verify that:

  • DD is the configured Organization Payment Method code.
  • It belongs to US Legislative Data Group.
  • It is effective on 2021/02/01.
  • It supports the required currency and payment method.

Account Type Is Invalid

Verify the accepted lookup value for the Account Type attribute.

The target environment may accept:

Checking

or may require a lookup code such as:

CHECKING

Use the value supported by the target Oracle environment.


Complete HDL Example

Bank.dat

METADATA|Bank|BankName|CountryCode
MERGE|Bank|BANK OF AMERICA|US

BankBranch.dat

METADATA|BankBranch|BankName|CountryCode|BankBranchNumber|BankBranchName
MERGE|BankBranch|BANK OF AMERICA|US|064000020|BANK OF AMERICA - 064000020

ExternalBankAccount.dat

METADATA|ExternalBankAccount|BankName|BankBranchName|BankBranchNumber|AccountNumber|AccountType|AccountName|CountryCode|CurrencyCode
MERGE|ExternalBankAccount|BANK OF AMERICA|BANK OF AMERICA - 064000020|064000020|<BANK_ACCOUNT_NUMBER>|Checking||US|USD

METADATA|ExternalBankAccountOwner|PersonNumber|BankName|BankBranchName|AccountNumber|CountryCode|CurrencyCode|BankBranchNumber|AccountType|PrimaryFlag
MERGE|ExternalBankAccountOwner|82213|BANK OF AMERICA|BANK OF AMERICA - 064000020|<BANK_ACCOUNT_NUMBER>|US|USD|064000020|Checking|Y

PersonalPaymentMethod.dat

METADATA|PersonalPaymentMethod|EffectiveStartDate|EffectiveEndDate|PersonalPaymentMethodCode|PaymentAmountType|Percentage|ProcessingOrder|LegislativeDataGroupName|AssignmentNumber|OrganizationPaymentMethodCode|BankAccountNumber|BankBranchName|BankName|BankCountryCode|BankBranchNumber|BankAccountType
MERGE|PersonalPaymentMethod|2021/02/01|4712/12/31|PPM_82213_1|P|100|1|US Legislative Data Group|E82213|DD|<BANK_ACCOUNT_NUMBER>|BANK OF AMERICA - 064000020|BANK OF AMERICA|US|064000020|Checking

Final Thoughts

The key to successfully loading a Personal Payment Method is understanding the dependency between the HDL business objects.

The Personal Payment Method is the final record in the following chain:

Bank
→ Bank Branch
→ External Bank Account
→ External Bank Account Owner
→ Personal Payment Method

Load and validate each object in sequence.

Also remember the two different worker identifiers used in the files:

Account owner → Person Number
Personal Payment Method → Assignment Number

Once the employee, payroll relationship, bank account, account owner, and Organization Payment Method are available, the Personal Payment Method can be loaded successfully using HDL.

No comments:

Post a Comment