XML 22 R42.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans and Allowances for Credit Losses, Credit Quality Indicators (Details) (USD $)
In Thousands, unless otherwise specified
Mar. 31, 2015
Dec. 31, 2014
Mar. 31, 2014
Dec. 31, 2013
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment $ 12,840,895bokf_InternallyRiskGradedRecordedInvestment $ 12,336,710bokf_InternallyRiskGradedRecordedInvestment $ 11,140,443bokf_InternallyRiskGradedRecordedInvestment  
Non-Graded, Recorded Investment 1,843,241bokf_NonGradedRecordedInvestment 1,871,327bokf_NonGradedRecordedInvestment 1,937,411bokf_NonGradedRecordedInvestment  
Total 14,684,136us-gaap_LoansAndLeasesReceivableGrossCarryingAmount 14,208,037us-gaap_LoansAndLeasesReceivableGrossCarryingAmount 13,077,854us-gaap_LoansAndLeasesReceivableGrossCarryingAmount  
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 145,825bokf_InternallyRiskGradedAllowance 137,032bokf_InternallyRiskGradedAllowance 133,382bokf_InternallyRiskGradedAllowance  
Non-Graded, Related Allowance 23,788bokf_NonGradedAllowance 23,979bokf_NonGradedAllowance 27,971bokf_NonGradedAllowance  
Total, Related Allowance 197,686us-gaap_LoansAndLeasesReceivableAllowance 189,056us-gaap_LoansAndLeasesReceivableAllowance 188,318us-gaap_LoansAndLeasesReceivableAllowance 185,396us-gaap_LoansAndLeasesReceivableAllowance
Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 12,687,045bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
12,222,486bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
11,001,684bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Non-Graded, Recorded Investment 1,798,601bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,825,709bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,897,379bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 117,757bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
79,071bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
74,085bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 36,093bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
35,153bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
64,674bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Non-Graded, Recorded Investment 44,640bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
45,618bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
40,032bokf_NonGradedRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Commercial [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 9,367,119bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
9,073,030bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
8,029,443bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
 
Non-Graded, Recorded Investment 24,044bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
22,640bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
22,263bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
 
Total 9,391,163us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
9,095,670us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
8,051,706us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
 
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 100,592bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
90,085bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
84,333bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
 
Non-Graded, Related Allowance 819bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
790bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
913bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
 
Total, Related Allowance 101,411us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
90,875us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
85,246us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
 
Commercial [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 9,252,509bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
9,008,360bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
7,972,912bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Non-Graded, Recorded Investment 23,957bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
22,532bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
22,149bokf_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 100,817bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
51,251bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
37,598bokf_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,793bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
13,419bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
18,933bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Non-Graded, Recorded Investment 87bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
108bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
114bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Energy [Member]        
Recorded Investment [Abstract]        
Total 2,902,994us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
2,860,428us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
2,344,072us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
 
Energy [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,857,004bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,843,093bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,339,578bokf_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
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 44,115bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
15,919bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
2,735bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Energy [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,875bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
1,416bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
1,759bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Services [Member]        
Recorded Investment [Abstract]        
Total 2,728,354us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
2,518,229us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
2,232,471us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
 
Services [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,709,357bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,497,888bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,213,569bokf_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
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 14,253bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
15,140bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
14,321bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Services [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 4,744bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
5,201bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
4,581bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Wholesale/retail [Member]        
Recorded Investment [Abstract]        
Total 1,270,322us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
1,313,316us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
1,225,990us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
 
Wholesale/retail [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,241,961bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,301,026bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,216,725bokf_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
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 23,960bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
8,141bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
2,411bokf_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,401bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
4,149bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
6,854bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Manufacturing [Member]        
Recorded Investment [Abstract]        
Total 560,925us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
532,594us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
444,215us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
 
Manufacturing [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 546,566bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
527,951bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
429,523bokf_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
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 13,942bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
4,193bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
11,127bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Manufacturing [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 417bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
450bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
3,565bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Healthcare [Member]        
Recorded Investment [Abstract]        
Total 1,511,177us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
1,454,969us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
1,396,562us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
 
Healthcare [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,505,072bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,449,024bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,392,315bokf_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
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,547bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
4,565bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
2,804bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Healthcare [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 1,558bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
1,380bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
1,443bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Other commercial and industrial [Member]        
Recorded Investment [Abstract]        
Total 417,391us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
416,134us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
408,396us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
 
Other commercial and industrial [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 392,549bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
389,378bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
381,202bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Non-Graded, Recorded Investment 23,957bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
22,532bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
22,149bokf_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 0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
3,293bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
4,200bokf_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 798bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
823bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
731bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Non-Graded, Recorded Investment 87bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
108bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
114bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Commercial Real Estate [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,935,464bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,728,150bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,631,407bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
 
Total 2,935,464us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,728,150us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,631,407us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
 
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 40,819bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
42,445bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
41,589bokf_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
0bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
 
Total, Related Allowance 40,819us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
42,445us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
41,589us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
 
Commercial Real Estate [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,900,708bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,683,565bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,558,346bokf_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
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 14,854bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
26,028bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
33,756bokf_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 19,902bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
18,557bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
39,305bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Residential construction and land development [Member]        
Recorded Investment [Abstract]        
Total 139,152us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
143,591us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
184,820us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
 
Residential construction and land development [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 128,795bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
127,437bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
153,836bokf_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
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 759bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
10,855bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
14,437bokf_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 9,598bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
5,299bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
16,547bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Retail [Member]        
Recorded Investment [Abstract]        
Total 658,860us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
666,889us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
640,506us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
 
Retail [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 654,429bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
662,335bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
634,253bokf_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
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 574bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
628bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
1,627bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Retail [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 3,857bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
3,926bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
4,626bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Office [Member]        
Recorded Investment [Abstract]        
Total 513,862us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
415,544us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
436,264us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
 
Office [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 510,881bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
411,548bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
428,815bokf_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
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 571bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
576bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
1,148bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Office [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,410bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
3,420bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
6,301bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Multifamily [Member]        
Recorded Investment [Abstract]        
Total 749,986us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
704,298us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
662,674us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
 
Multifamily [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 737,750bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
691,053bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
648,999bokf_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
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 12,236bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
13,245bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
13,675bokf_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
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Industrial [Member]        
Recorded Investment [Abstract]        
Total 478,584us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
428,817us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
305,207us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
 
Industrial [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 478,508bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
428,817bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
304,321bokf_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
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
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Industrial [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 76bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
886bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Other commercial real estate [Member]        
Recorded Investment [Abstract]        
Total 395,020us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
369,011us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
401,936us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
 
Other commercial real estate [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 390,345bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
362,375bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
388,122bokf_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
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 714bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
724bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
2,869bokf_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 3,961bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
5,912bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
10,945bokf_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
0bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Residential Mortgage [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 196,782bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
192,303bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
209,608bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Non-Graded, Recorded Investment 1,730,217bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
1,757,209bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
1,809,067bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Total 1,926,999us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
1,949,512us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
2,018,675us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 3,028bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
2,996bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
4,695bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Non-Graded, Related Allowance 20,216bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
20,462bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
23,612bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Total, Related Allowance 23,244us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
23,458us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
28,307us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
 
Residential Mortgage [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 192,473bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
187,520bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
200,662bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Non-Graded, Recorded Investment 1,685,970bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,712,098bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,769,929bokf_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 2,069bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
1,773bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
2,704bokf_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 2,240bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
3,010bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
6,242bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Non-Graded, Recorded Investment 44,247bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
45,111bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
39,138bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Permanent mortage [Member]        
Recorded Investment [Abstract]        
Total 964,264us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
969,951us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
1,033,572us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
 
Permanent mortage [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 192,473bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
187,520bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
200,662bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Non-Graded, Recorded Investment 736,357bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
745,813bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
793,864bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Permanent mortage [Member] | Potential Problem [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,069bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
1,773bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
2,704bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Permanent mortage [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 2,240bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
3,010bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
6,242bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Non-Graded, Recorded Investment 31,125bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
31,835bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
30,100bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Permanent mortgages guaranteed by US govenment agencies [Member]        
Recorded Investment [Abstract]        
Total 200,179us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
205,950us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
184,822us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
 
Permanent mortgages guaranteed by US govenment 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
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Non-Graded, Recorded Investment 196,923bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
202,238bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
183,250bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Permanent mortgages guaranteed by US govenment 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
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Permanent mortgages guaranteed by US govenment 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
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Non-Graded, Recorded Investment 3,256bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
3,712bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
1,572bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Home equity {Member]        
Recorded Investment [Abstract]        
Total 762,556us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
773,611us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
800,281us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
 
Home equity {Member] | 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
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Non-Graded, Recorded Investment 752,690bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
764,047bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
792,815bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Home equity {Member] | 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
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Home equity {Member] | 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
0bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Non-Graded, Recorded Investment 9,866bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
9,564bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
7,466bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Consumer [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 341,530bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
343,227bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
269,985bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
 
Non-Graded, Recorded Investment 88,980bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
91,478bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
106,081bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
 
Total 430,510us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
434,705us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
376,066us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
 
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 1,386bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
1,506bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
2,765bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
 
Non-Graded, Related Allowance 2,753bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
2,727bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
3,446bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
 
Total, Related Allowance 4,139us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
4,233us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
6,211us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
 
Consumer [Member] | Performing [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 341,355bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
343,041bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
269,764bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
 
Non-Graded, Recorded Investment 88,674bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
91,079bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
105,301bokf_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 17bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
19bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
27bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_PotentialProblemFinancingReceivableMember
 
Consumer [Member] | Nonaccrual [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 158bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
167bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
194bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Non-Graded, Recorded Investment 306bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
399bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
780bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
/ us-gaap_InternalCreditAssessmentAxis
= bokf_NonaccrualFinancingReceivableMember
 
Specific Allowance [Member]        
Recorded Investment [Abstract]        
Internally Risk Graded, Recorded Investment 12,840,895bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
12,336,710bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
11,140,443bokf_InternallyRiskGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
 
Non-Graded, Recorded Investment 1,843,241bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
1,871,327bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
1,937,411bokf_NonGradedRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
 
Total 14,684,136us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
14,208,037us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
13,077,854us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
 
Related Allowance [Abstract]        
Internally Risk Graded, Related Allowance 145,825bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
137,032bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
133,382bokf_InternallyRiskGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
 
Non-Graded, Related Allowance 23,788bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
23,979bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
27,971bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
 
Total, Related Allowance 169,613us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
161,011us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_SpecificAllowanceMember
161,353us-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
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
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
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
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
0bokf_NonGradedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
 
Total, Related Allowance $ 28,073us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
$ 28,045us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
$ 26,965us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
$ 28,213us-gaap_LoansAndLeasesReceivableAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember