Loans and Allowances for Credit Losses, Troubled Debt Restructurings, Modifications (Details) (USD $) In Thousands, unless otherwise specified
|
12 Months Ended |
Dec. 31, 2014
|
Dec. 31, 2013
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
$ 44,210bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod |
$ 36,021bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
34,607bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault |
30,706bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault |
Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
32,679bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember |
24,063bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
29,585bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember |
23,918bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember |
Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
15,386bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
11,545bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
17,293bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
12,518bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
11,531bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember |
11,958bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
5,022bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember |
6,788bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember |
Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
214bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
4,243bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
6,355bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
7,288bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
5,389bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Commercial [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
3,738bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
1,667bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
13bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
1,635bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
Commercial [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
Commercial [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Commercial [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Commercial [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
3,738bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
1,667bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
13bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
1,635bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember |
Commercial [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
139bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Commercial [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
3,657bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
1,471bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Commercial [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
81bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
57bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Energy [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
Energy [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
Energy [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Energy [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Energy [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember |
Energy [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Energy [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Energy [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_EnergyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Services [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
1,080bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
1,080bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
Services [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
Services [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Services [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Services [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
1,080bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
1,080bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember |
Services [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Services [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
1,080bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Services [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ServicesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Wholesale/retail [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
3,261bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
Wholesale/retail [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
Wholesale/retail [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Wholesale/retail [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Wholesale/retail [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
3,261bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember |
Wholesale/retail [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Wholesale/retail [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
3,261bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Wholesale/retail [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_WholesaleAndRetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Manufacturing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
391bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
391bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
Manufacturing [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
Manufacturing [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Manufacturing [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Manufacturing [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
391bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
391bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember |
Manufacturing [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Manufacturing [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
391bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Manufacturing [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_ManufacturingMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Healthcare [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
Healthcare [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
Healthcare [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Healthcare [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Healthcare [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember |
Healthcare [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Healthcare [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Healthcare [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_HealthcareMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Other commercial and industrial [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
477bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
196bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
13bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
164bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
Other commercial and industrial [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
Other commercial and industrial [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Other commercial and industrial [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Other commercial and industrial [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
477bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
196bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
13bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
164bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember |
Other commercial and industrial [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
139bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Other commercial and industrial [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
396bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Other commercial and industrial [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
81bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
57bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialAndIndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Commercial Real Estate [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
3,822bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
3,822bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
Commercial Real Estate [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
Commercial Real Estate [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Commercial Real Estate [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Commercial Real Estate [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
3,822bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
3,822bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember |
Commercial Real Estate [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Commercial Real Estate [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
3,822bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Commercial Real Estate [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Residential construction and land development [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
Residential construction and land development [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
Residential construction and land development [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Residential construction and land development [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Residential construction and land development [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
Residential construction and land development [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Residential construction and land development [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Residential construction and land development [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Retail [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
486bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
486bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
Retail [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
Retail [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Retail [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Retail [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
486bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
486bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember |
Retail [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Retail [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
486bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Retail [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_RetailMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Office [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
2,819bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
2,819bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
Office [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
Office [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Office [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Office [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
2,819bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
2,819bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember |
Office [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Office [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
2,819bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Office [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OfficeMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Multifamily [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
Multifamily [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
Multifamily [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Multifamily [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Multifamily [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember |
Multifamily [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Multifamily [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Multifamily [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_MultifamilyMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Industrial [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
Industrial [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
Industrial [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Industrial [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Industrial [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember |
Industrial [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Industrial [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Industrial [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_IndustrialMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Other commercial real estate [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
517bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
517bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
Other commercial real estate [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
Other commercial real estate [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Other commercial real estate [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Other commercial real estate [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
517bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
517bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember |
Other commercial real estate [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Other commercial real estate [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
517bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Other commercial real estate [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_OtherCommercialRealEstateMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Residential Mortgage [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
40,396bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
29,819bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
34,569bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
25,094bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
Residential Mortgage [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
32,679bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
24,063bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
29,585bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
23,918bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
Residential Mortgage [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
15,386bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
11,545bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Residential Mortgage [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
17,293bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
12,518bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Residential Mortgage [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
7,717bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
5,756bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
4,984bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
1,176bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember |
Residential Mortgage [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Residential Mortgage [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
586bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
1,062bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Residential Mortgage [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
7,131bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
4,694bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Permanent mortgage [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
4,124bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
2,956bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
2,836bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
586bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
Permanent mortgage [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
Permanent mortgage [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Permanent mortgage [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Permanent mortgage [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
4,124bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
2,956bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
2,836bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
586bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember |
Permanent mortgage [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Permanent mortgage [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
586bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
1,062bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Permanent mortgage [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
3,538bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
1,894bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentResidentialMortgageMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Permanent mortgages guaranteed by U.S. government agencies [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
33,738bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
24,063bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
30,632bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
23,918bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
Permanent mortgages guaranteed by U.S. government agencies [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
32,679bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
24,063bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
29,585bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
23,918bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
Permanent mortgages guaranteed by U.S. government agencies [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
15,386bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
11,545bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Permanent mortgages guaranteed by U.S. government agencies [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
17,293bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
12,518bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Permanent mortgages guaranteed by U.S. government agencies [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
1,059bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
1,047bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember |
Permanent mortgages guaranteed by U.S. government agencies [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Permanent mortgages guaranteed by U.S. government agencies [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Permanent mortgages guaranteed by U.S. government agencies [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
1,059bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Home equity |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
2,534bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
2,800bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
1,101bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
590bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
Home equity | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
Home equity | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Home equity | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Home equity | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
2,534bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
2,800bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
1,101bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
590bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember |
Home equity | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Home equity | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Home equity | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
2,534bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
2,800bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Consumer [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
76bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
713bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
25bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
155bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
Consumer [Member] | Accruing [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
Consumer [Member] | Accruing [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Consumer [Member] | Accruing [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_FinancingReceivablesAccruingMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
Consumer [Member] | Nonaccrual [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
76bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
713bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
Troubled Debt Restructurings, Recorded Balance With Payment Default |
25bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
155bokf_TroubledDebtRestructuringsRecordedBalanceWithPaymentDefault / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember |
Consumer [Member] | Nonaccrual [Member] | Interest Rate Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
75bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_InterestRateModificationMember |
Consumer [Member] | Nonaccrual [Member] | Payment Stream Modification [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
0bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_PaymentStreamModificationMember |
Consumer [Member] | Nonaccrual [Member] | Combination & Other Modifications [Member] |
|
|
Accounts, Notes, Loans and Financing Receivable [Line Items] |
|
|
Troubled Debt Restructurings, Recorded Balance Modified During The Period |
$ 76bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |
$ 638bokf_TroubledDebtRestructuringsRecordedBalanceModifiedDuringPeriod / bokf_AccruingStatusOfFinancingReceivablesAxis = bokf_NonaccrualFinancingReceivableMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / bokf_TroubledDebtRestructuringTypeOfConcessionAxis = bokf_CombinationOtherModificationsMember |