XML 114 R80.htm IDEA: XBRL DOCUMENT
v2.4.1.9

Loans - Analysis of Gross Loans, Disaggregated by Loan Class (Detail) (USD $) In Thousands, unless otherwise specified | Dec. 31, 2014 | Dec. 31, 2013
--- | --- | ---
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | $ 2,785,261 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount | $ 2,234,089 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
Real estate loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 2,508,515 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember | 1,969,798 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember
Real estate loans [Member] | Retail [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 683,607 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember | 543,619 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember
Real estate loans [Member] | Hotel/motel [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 462,181 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember | 322,927 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember
Real estate loans [Member] | Gas station [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 369,985 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember | 292,557 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember
Real estate loans [Member] | Other [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 847,922 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember | 731,617 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember
Real estate loans [Member] | Construction [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 9,517 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateConstructionMember |
Real estate loans [Member] | Residential property [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 135,303 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember | 79,078 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember
Commercial and industrial loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 249,189 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember | 231,786 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember
Commercial and industrial loans [Member] | Commercial term [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 116,400 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember | 124,391 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember
Commercial and industrial loans [Member] | Commercial lines of credit [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 93,860 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember | 71,042 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember
Commercial and industrial loans [Member] | International loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 38,929 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember | 36,353 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember
Consumer loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 27,557 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember | 32,505 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember
Non-PCI Loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 9,713 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 3,607 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due | 6,729 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 4,072 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due | 7,857 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 8,595 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 24,299 us-gaap_FinancingReceivableRecordedInvestmentPastDue / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 16,274 us-gaap_FinancingReceivableRecordedInvestmentPastDue / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 2,716,461 us-gaap_FinancingReceivableRecordedInvestmentCurrent / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 2,217,815 us-gaap_FinancingReceivableRecordedInvestmentCurrent / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 2,740,760 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 2,234,089 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Real estate loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 2,464,386 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
Non-PCI Loans [Member] | Real estate loans [Member] | Retail [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 1,554 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 202 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due | 281 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 426 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due | 1,920 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 2,196 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 3,755 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 2,824 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 671,317 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 540,794 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 675,072 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 543,619 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateRetailMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Real estate loans [Member] | Hotel/motel [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 1,531 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 1,087 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due | 2,340 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
90 Days or More Past Due | 433 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 1,532 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 4,304 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 2,619 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 450,195 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 320,308 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 454,499 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 322,927 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_HotelAndMotelMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Real estate loans [Member] | Gas station [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 2,991 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 141 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due | 1,113 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 410 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due | 353 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 153 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 4,457 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 704 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 357,783 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 291,853 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 362,240 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 292,557 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_GasolineStationMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Real estate loans [Member] | Other [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 1,674 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 423 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due | 2,156 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 2,036 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due | 1,142 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 839 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 4,972 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 3,298 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 837,154 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 728,320 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 842,126 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 731,617 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateOtherMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Real estate loans [Member] | Construction [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 9,517 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateConstructionMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
Total Loans | 9,517 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateConstructionMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialRealEstateConstructionMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
Non-PCI Loans [Member] | Real estate loans [Member] | Residential property [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 167 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
60-89 Days Past Due |  | 122 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due | 687 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 279 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 854 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 401 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 120,078 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 78,677 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 120,932 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 79,078 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_RealEstateLoanMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_ResidentialPropertyRealEstateLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Commercial and industrial loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total Loans | 248,862 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
Non-PCI Loans [Member] | Commercial and industrial loans [Member] | Commercial term [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 1,107 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 1,443 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due | 490 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 886 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due | 2,847 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 3,269 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 4,444 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 5,598 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 111,629 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 118,793 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 116,073 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 124,391 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialTermLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Commercial and industrial loans [Member] | Commercial lines of credit [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
60-89 Days Past Due |  | 150 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due | 227 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 250 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 227 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 400 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 93,633 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 70,642 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 93,860 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 71,042 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_CommercialLinesOfCreditMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Commercial and industrial loans [Member] | International loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 200 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
Total Past Due | 200 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember |
Current | 38,729 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 36,353 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 38,929 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 36,353 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = hafc_CommercialAndIndustrialLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = hafc_InternationalLoansMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Non-PCI Loans [Member] | Consumer loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
30-59 Days Past Due | 489 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 311 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due | 349 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 42 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due | 248 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 77 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due | 1,086 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 430 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Current | 26,426 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 32,075 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Total Loans | 27,512 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | 32,505 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember
Accruing 90 Days or More Past Due | $ 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember | $ 0 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancialInstrumentAxis = us-gaap_ConsumerLoanMember / hafc_ImpairedFinancialReceivableTypeAxis = hafc_NonPurchasedCreditImpairedLoansMember

X
- Definition Financing receivables that are less than 60 days past due but more than 29 days past due. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Financing receivables that are less than 90 days past due but more than 59 days past due. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Recorded investment in financing receivables that are 90 days or more past due and still accruing. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7 -Subparagraph (d) -URI http://asc.fasb.org/extlink&oid=35738203&loc=d3e5111-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Financing receivables that are current. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentCurrent
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Financing receivables that are equal to or greater than 90 days past due. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Recorded Investment in financing receivables that are past due at the balance sheet date. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentPastDue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentPastDueLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount before allowance of loans and leases held in portfolio, including but not limited to, commercial and consumer loans. Includes deferred interest and fees, undisbursed portion of loan balance, unamortized costs and premiums and discounts from face amounts. Excludes loans and leases covered under loss sharing agreements. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 45 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=28367877&loc=d3e4428-111522 + Details
Name: | us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Details
Name: | hafc_ImpairedFinancialReceivableTypeAxis=hafc_NonPurchasedCreditImpairedLoansMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancialInstrumentAxis=hafc_CommercialAndIndustrialLoansMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancialInstrumentAxis=hafc_RealEstateLoanMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancialInstrumentAxis=us-gaap_ConsumerLoanMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |