Annual report pursuant to Section 13 and 15(d)

Loans - Analysis of Gross Loans, Disaggregated by Loan Class (Detail)

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