Quarterly report pursuant to Section 13 or 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
Mar. 31, 2015
Dec. 31, 2014
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Total Loans $ 2,816,557us-gaap_LoansAndLeasesReceivableGrossCarryingAmount $ 2,785,261us-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,539,939us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
2,508,515us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
Real estate loans [Member] | Retail [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Total Loans 690,503us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
683,607us-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 493,680us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
462,181us-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 353,239us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
369,985us-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 830,881us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
847,922us-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 15,123us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateConstructionMember
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 156,513us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_ResidentialPropertyRealEstateLoanMember
135,303us-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 250,632us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
249,189us-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,533us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
116,400us-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 97,761us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
93,860us-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 36,338us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_InternationalLoansMember
38,929us-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 25,986us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
27,557us-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 8,460us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
9,713us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due 7,115us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
6,729us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due 18,779us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
7,857us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 34,354us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
24,299us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 2,741,262us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
2,716,461us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 2,775,616us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
2,740,760us-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,499,323us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
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,943us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
1,554us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due 6,031us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
281us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due 2,950us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
1,920us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 10,924us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
3,755us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 669,014us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
671,317us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 679,938us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateRetailMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
675,072us-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 2,659us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
1,531us-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 3,421us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
433us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 6,080us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
4,304us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 475,880us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
450,195us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 481,960us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_HotelAndMotelMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
454,499us-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 580us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
2,991us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due 480us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
1,113us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due 4,088us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
353us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 5,148us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
4,457us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 341,650us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
357,783us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 346,798us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_GasolineStationMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
362,240us-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,770us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
1,674us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due 278us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
2,156us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due 3,544us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
1,142us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 5,592us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
4,972us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 815,115us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
837,154us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 820,707us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateOtherMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
842,126us-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 15,123us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateConstructionMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
9,517us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateConstructionMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 15,123us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialRealEstateConstructionMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
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
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
90 Days or More Past Due 547us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_ResidentialPropertyRealEstateLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
687us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_ResidentialPropertyRealEstateLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 547us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_ResidentialPropertyRealEstateLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
854us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_ResidentialPropertyRealEstateLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 154,250us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_ResidentialPropertyRealEstateLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
120,078us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_ResidentialPropertyRealEstateLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 154,797us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_RealEstateLoanMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_ResidentialPropertyRealEstateLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
120,932us-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 250,351us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
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 (30)us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
1,107us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
60-89 Days Past Due 87us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
490us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due 3,062us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
2,847us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 3,119us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
4,444us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 113,133us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
111,629us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 116,252us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialTermLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
116,073us-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]    
30-59 Days Past Due 1,407us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
 
90 Days or More Past Due 819us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
227us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 2,226us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
227us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 95,535us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
93,633us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 97,761us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_CommercialLinesOfCreditMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
93,860us-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 131us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_InternationalLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
200us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_InternationalLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 131us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_InternationalLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
200us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_InternationalLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 36,207us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_InternationalLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
38,729us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_InternationalLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 36,338us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= hafc_CommercialAndIndustrialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hafc_InternationalLoansMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
38,929us-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
60-89 Days Past Due 239us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
349us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
90 Days or More Past Due 348us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
248us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Past Due 587us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
1,086us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Current 25,355us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
26,426us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
Total Loans 25,942us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancialInstrumentAxis
= us-gaap_ConsumerLoanMember
/ hafc_ImpairedFinancialReceivableTypeAxis
= hafc_NonPurchasedCreditImpairedLoansMember
27,512us-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