XML 95 R63.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans and Allowances for Credit Losses, Credit Quality Indicators (Details) (USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Dec. 31, 2011
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment $ 12,336,710bokf_InternallyRiskGradedRecordedInvestment $ 10,789,740bokf_InternallyRiskGradedRecordedInvestment    
Non-Graded, Recorded Investment 1,871,327bokf_NonGradedRecordedInvestment 2,002,524bokf_NonGradedRecordedInvestment    
Total 14,208,037us-gaap_LoansAndLeasesReceivableGrossCarryingAmount 12,792,264us-gaap_LoansAndLeasesReceivableGrossCarryingAmount    
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 137,032bokf_InternallyRiskGradedAllowance 127,961bokf_InternallyRiskGradedAllowance    
Non-Graded, Related Allowance 23,979bokf_NonGradedAllowance 29,222bokf_NonGradedAllowance    
Total, Related Allowance 189,056us-gaap_LoansAndLeasesReceivableAllowance 185,396us-gaap_LoansAndLeasesReceivableAllowance 215,507us-gaap_LoansAndLeasesReceivableAllowance 253,481us-gaap_LoansAndLeasesReceivableAllowance
Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 12,222,486bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
10,650,784bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 1,825,709bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,966,324bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 79,071bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
74,007bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 35,153bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
64,949bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 45,618bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
36,200bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Commercial [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 9,073,030bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
7,888,219bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
   
Non-Graded, Recorded Investment 22,640bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
55,002bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
   
Total 9,095,670us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
7,943,221us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
   
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 90,085bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
78,250bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
   
Non-Graded, Related Allowance 790bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
930bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
   
Total, Related Allowance 90,875us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
79,180us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
   
Commercial [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 9,008,360bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
7,841,108bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 22,532bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
54,929bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Commercial [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 51,251bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
30,424bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Commercial [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 13,419bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
16,687bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 108bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
73bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Energy [Member]        
Recorded Investment [Abstract]        
Total 2,860,428us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
2,351,760us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
   
Energy [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,843,093bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,347,519bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Energy [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 15,919bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
2,381bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Energy [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,416bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
1,860bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Services [Member]        
Recorded Investment [Abstract]        
Total 2,518,229us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
2,282,210us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
   
Services [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,497,888bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,265,984bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Services [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 15,140bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
11,304bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Services [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 5,201bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
4,922bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Wholesale/retail [Member]        
Recorded Investment [Abstract]        
Total 1,313,316us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
1,201,364us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
   
Wholesale/retail [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,301,026bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,191,791bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Wholesale/retail [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 8,141bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
2,604bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Wholesale/retail [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 4,149bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
6,969bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Manufacturing [Member]        
Recorded Investment [Abstract]        
Total 532,594us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
391,751us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
   
Manufacturing [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 527,951bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
381,794bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Manufacturing [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 4,193bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
9,365bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Manufacturing [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 450bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
592bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Healthcare [Member]        
Recorded Investment [Abstract]        
Total 1,454,969us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
1,274,246us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
   
Healthcare [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,449,024bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,272,626bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Healthcare [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 4,565bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
34bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Healthcare [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,380bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
1,586bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Other commercial and industrial [Member]        
Recorded Investment [Abstract]        
Total 416,134us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
441,890us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
   
Other commercial and industrial [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 389,378bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
381,394bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 22,532bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
54,929bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Other commercial and industrial [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 3,293bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
4,736bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Other commercial and industrial [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 823bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
758bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 108bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
73bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Commercial Real Estate [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,728,150bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,415,353bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
   
Total 2,728,150us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,415,353us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
   
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 42,445bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
41,573bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
   
Non-Graded, Related Allowance 0bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
0bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
   
Total, Related Allowance 42,445us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
41,573us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
   
Commercial Real Estate [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,683,565bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,334,998bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Commercial Real Estate [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 26,028bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
39,505bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Commercial Real Estate [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 18,557bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
40,850bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Residential construction and land development [Member]        
Recorded Investment [Abstract]        
Total 143,591us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
206,258us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
   
Residential construction and land development [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 127,437bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
173,488bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Residential construction and land development [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 10,855bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
15,393bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Residential construction and land development [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 5,299bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
17,377bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Retail [Member]        
Recorded Investment [Abstract]        
Total 666,889us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
586,047us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
   
Retail [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 662,335bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
579,506bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Retail [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 628bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
1,684bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Retail [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 3,926bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
4,857bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Office [Member]        
Recorded Investment [Abstract]        
Total 415,544us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
411,499us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
   
Office [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 411,548bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
403,951bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Office [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 576bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
1,157bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Office [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 3,420bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
6,391bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Multifamily [Member]        
Recorded Investment [Abstract]        
Total 704,298us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
576,502us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
   
Multifamily [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 691,053bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
562,800bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Multifamily [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 13,245bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
13,695bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Multifamily [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
7bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Industrial [Member]        
Recorded Investment [Abstract]        
Total 428,817us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
243,877us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
   
Industrial [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 428,817bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
243,625bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Industrial [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Industrial [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
252bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Other commercial real estate [Member]        
Recorded Investment [Abstract]        
Total 369,011us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
391,170us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
   
Other commercial real estate [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 362,375bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
371,628bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Other commercial real estate [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 724bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
7,576bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Other commercial real estate [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 5,912bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
11,966bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Residential Mortgage [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 192,303bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
220,635bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
   
Non-Graded, Recorded Investment 1,757,209bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
1,831,391bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
   
Total 1,949,512us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
2,052,026us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
   
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 2,996bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
5,481bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
   
Non-Graded, Related Allowance 20,462bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
23,984bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
   
Total, Related Allowance 23,458us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
29,465us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
   
Residential Mortgage [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 187,520bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
210,142bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 1,712,098bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,796,281bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Residential Mortgage [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,773bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
3,283bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Residential Mortgage [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 3,010bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
7,210bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 45,111bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
35,110bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Permanent mortgage [Member]        
Recorded Investment [Abstract]        
Total 969,951us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
1,062,744us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
   
Permanent mortgage [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 187,520bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
210,142bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 745,813bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
815,040bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Permanent mortgage [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,773bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
3,283bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Permanent mortgage [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 3,010bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
7,210bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 31,835bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
27,069bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Permanent mortgages guaranteed by U.S. government agencies [Member]        
Recorded Investment [Abstract]        
Total 205,950us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
181,598us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
   
Permanent mortgages guaranteed by U.S. government agencies [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 202,238bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
180,821bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Permanent mortgages guaranteed by U.S. government agencies [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Permanent mortgages guaranteed by U.S. government agencies [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 3,712bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
777bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Home equity        
Recorded Investment [Abstract]        
Total 773,611us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
807,684us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
   
Home equity | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 764,047bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
800,420bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Home equity | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Home equity | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 9,564bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
7,264bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Consumer [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 343,227bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
265,533bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
   
Non-Graded, Recorded Investment 91,478bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
116,131bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
   
Total 434,705us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
381,664us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
   
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 1,506bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
2,657bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
   
Non-Graded, Related Allowance 2,727bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
4,308bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
   
Total, Related Allowance 4,233us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
6,965us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
   
Consumer [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 343,041bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
264,536bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Non-Graded, Recorded Investment 91,079bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
115,114bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
   
Consumer [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 19bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
795bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
   
Consumer [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 167bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
202bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Non-Graded, Recorded Investment 399bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
1,017bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
   
Specific Allowance [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 12,336,710bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
10,789,740bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
   
Non-Graded, Recorded Investment 1,871,327bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
2,002,524bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
   
Total 14,208,037us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
12,792,264us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
   
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 137,032bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
127,961bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
   
Non-Graded, Related Allowance 23,979bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
29,222bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
   
Total, Related Allowance 161,011us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
157,183us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
   
Nonspecific allowance [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Non-Graded, Recorded Investment 0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Total 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 0bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Non-Graded, Related Allowance 0bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Total, Related Allowance $ 28,045us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
$ 28,213us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
$ 44,187us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
$ 46,350us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember