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

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:
- Bank.dat
- BankBranch.dat
- ExternalBankAccount.dat
- 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:
- Save each file with the .dat extension.
- Place the .dat file inside a ZIP file.
- Navigate to My Client Groups.
- Open Data Exchange.
- Select Import and Load Data.
- Upload the ZIP file.
- Monitor the import and load processes.
- 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.