XML 450 R130.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans by past due status for non-covered loans held-in-portfolio (Net of unearned income) (Detail) (USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio $ 19,404,451us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome [1] $ 21,611,866us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome [1]
Commercial Multi Family [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 487,280us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
1,175,937us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
Commercial Real Estate Non Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 2,526,146us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
2,970,505us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
Commercial Real Estate Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 1,667,267us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
2,166,545us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
Commercial And Industrial Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 3,453,574us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
3,724,197us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
Commercial Real Estate Construction Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 251,820us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
206,084us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Mortgages [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 6,502,886us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
6,681,476us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
Finance Leases Portfolio Segment Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 564,389us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
543,761us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
Legacy [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 80,818us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
[2] 211,135us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
[2]
Consumer [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 3,870,271us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
3,932,226us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
Consumer [Member] | Consumer Credit Card Financing Receivable [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 1,155,229us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
1,185,272us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Consumer [Member] | Home Equity Line of Credit [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 366,162us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
478,211us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Consumer [Member] | Personal [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 1,375,452us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
1,349,119us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Consumer [Member] | Consumer Loans Auto Financing Receivable [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 767,369us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
699,980us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Consumer [Member] | Consumer Other Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 206,059us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
219,644us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Non Covered Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 455,574us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
481,455us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 223,209us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
223,825us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 1,137,107us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
1,058,658us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 1,815,890us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
1,763,938us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 17,588,561us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
19,847,928us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 19,404,451us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
21,611,866us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Commercial Multi Family [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 308us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
4,067us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 445us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
1,675us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 2,199us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
25,838us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 2,952us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
31,580us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 484,328us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
1,144,357us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 487,280us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
1,175,937us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Commercial Real Estate Non Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 11,306us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
18,144us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 121us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
349us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 33,452us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
84,372us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 44,879us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
102,865us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 2,481,267us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
2,867,640us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 2,526,146us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
2,970,505us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Commercial Real Estate Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 8,999us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
14,382us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 11,340us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
16,770us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 93,453us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
106,948us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 113,792us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
138,100us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 1,553,475us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
2,028,445us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 1,667,267us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
2,166,545us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Commercial And Industrial Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 19,631us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
12,291us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 5,392us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
6,482us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 131,615us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
62,451us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 156,638us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
81,224us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 3,296,936us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
3,642,973us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 3,453,574us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
3,724,197us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Commercial Real Estate Construction Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 3,307us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
2,329us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 13,812us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
23,771us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 17,119us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
26,100us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 234,701us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
179,984us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 251,820us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
206,084us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Mortgages [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 333,901us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
347,376us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 175,865us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
164,512us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 789,962us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
671,736us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 1,299,728us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
1,183,624us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 5,203,158us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
5,497,852us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 6,502,886us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
6,681,476us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Finance Leases Portfolio Segment Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 6,779us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
7,457us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 1,246us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
1,607us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 3,102us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
3,495us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 11,127us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
12,559us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 553,262us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
531,202us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 564,389us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
543,761us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Legacy [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 929us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
9,079us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 1,931us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
2,098us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 1,545us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
15,050us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Total Past Due 4,405us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
26,227us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Financing Receivable Recorded Investment Current 76,413us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
184,908us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Loans held-in-portfolio 80,818us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
211,135us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Non Covered Loans [Member] | Consumer [Member] | Consumer Credit Card Financing Receivable [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 14,029us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
14,082us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 9,536us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
10,191us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 20,817us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
20,799us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Total Past Due 44,382us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
45,072us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Financing Receivable Recorded Investment Current 1,110,847us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
1,140,200us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Loans held-in-portfolio 1,155,229us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
1,185,272us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Non Covered Loans [Member] | Consumer [Member] | Home Equity Line of Credit [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 5,173us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
2,927us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 1,184us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
2,251us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 4,111us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
8,779us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Total Past Due 10,468us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
13,957us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Financing Receivable Recorded Investment Current 355,694us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
464,254us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Loans held-in-portfolio 366,162us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
478,211us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Non Covered Loans [Member] | Consumer [Member] | Personal [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 15,955us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
16,093us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 7,539us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
7,620us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 27,098us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
18,699us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Total Past Due 50,592us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
42,412us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Financing Receivable Recorded Investment Current 1,324,860us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
1,306,707us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Loans held-in-portfolio 1,375,452us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
1,349,119us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Non Covered Loans [Member] | Consumer [Member] | Consumer Loans Auto Financing Receivable [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 34,238us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
31,351us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 8,397us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
9,361us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 11,387us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
10,564us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Total Past Due 54,022us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
51,276us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Financing Receivable Recorded Investment Current 713,347us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
648,704us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Loans held-in-portfolio 767,369us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
699,980us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Non Covered Loans [Member] | Consumer [Member] | Consumer Other Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 1,019us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
1,877us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Financing Receivable Recorded Investment 60 To 89 Days Past Due 213us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
909us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 4,554us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
6,156us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Total Past Due 5,786us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
8,942us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Financing Receivable Recorded Investment Current 200,273us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
210,702us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Loans held-in-portfolio 206,059us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
219,644us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
PUERTO RICO    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 15,938,114us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 15,887,839us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Commercial Multi Family [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 80,077us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 82,403us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Commercial Real Estate Non Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 2,013,579us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 1,864,218us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Commercial Real Estate Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 1,473,362us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 1,606,503us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Commercial And Industrial Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 2,807,785us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 2,912,466us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Commercial Real Estate Construction Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 159,384us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 161,171us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Mortgages [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 5,450,501us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 5,400,679us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Finance Leases Portfolio Segment Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 564,389us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 543,761us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Consumer [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 3,389,037us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3] 3,316,638us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_PR
[3]
PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 413,674us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
424,470us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 206,334us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
196,677us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 1,118,007us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
907,965us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 1,738,015us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,529,112us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 14,200,099us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
14,358,727us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 15,938,114us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
15,887,839us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Commercial Multi Family [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 221us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
446us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 69us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 2,199us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
4,944us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 2,489us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
5,390us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 77,588us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
77,013us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 80,077us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
82,403us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Commercial Real Estate Non Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 9,828us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
13,889us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 121us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
349us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 33,452us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
41,959us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 43,401us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
56,197us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 1,970,178us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,808,021us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 2,013,579us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,864,218us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Commercial Real Estate Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 8,954us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
13,725us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 7,709us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
8,318us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 92,648us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
83,441us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 109,311us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
105,484us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 1,364,051us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,501,019us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 1,473,362us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,606,503us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Commercial And Industrial Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 18,498us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
9,960us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 5,269us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
4,463us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 130,105us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
56,309us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 153,872us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
70,732us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 2,653,913us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
2,841,734us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 2,807,785us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
2,912,466us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Commercial Real Estate Construction Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 2,497us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
2,329us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 13,812us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
18,108us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 16,309us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
20,437us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 143,075us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
140,734us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 159,384us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
161,171us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Mortgages [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 304,319us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
316,663us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 167,219us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
154,882us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 780,678us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
645,444us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 1,252,216us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,116,989us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 4,198,285us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
4,283,690us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 5,450,501us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
5,400,679us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Finance Leases Portfolio Segment Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 6,779us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
7,457us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 1,246us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,607us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 3,102us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
3,495us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 11,127us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
12,559us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 553,262us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
531,202us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 564,389us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
543,761us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Consumer [Member] | Consumer Credit Card Financing Receivable [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 13,715us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
13,797us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 9,290us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
9,991us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 20,368us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
20,313us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 43,373us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
44,101us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 1,096,791us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,125,520us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 1,140,164us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,169,621us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Consumer [Member] | Home Equity Line of Credit [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 137us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
133us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 159us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
53us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 21us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
147us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 317us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
333us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 13,083us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
14,845us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 13,400us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
15,178us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Consumer [Member] | Personal [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 13,479us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
12,897us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 6,646us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
6,794us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 25,688us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
17,108us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 45,813us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
36,799us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 1,216,720us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,177,085us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 1,262,533us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,213,884us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Consumer [Member] | Consumer Loans Auto Financing Receivable [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 34,238us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
31,340us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 8,397us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
9,361us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 11,387us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
10,562us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 54,022us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
51,263us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 713,274us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
648,228us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 767,296us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
699,491us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Non Covered Loans [Member] | Consumer [Member] | Consumer Other Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 1,009us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,834us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment 60 To 89 Days Past Due 209us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
859us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 4,547us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
6,135us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Total Past Due 5,765us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
8,828us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Financing Receivable Recorded Investment Current 199,879us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
209,636us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Loans held-in-portfolio 205,644us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
218,464us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
UNITED STATES    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 3,466,337us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 5,724,027us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Commercial Multi Family [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 407,203us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 1,093,534us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Commercial Real Estate Non Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 512,567us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 1,106,287us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Commercial Real Estate Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 193,905us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 560,042us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Commercial And Industrial Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 645,789us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 811,731us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Commercial Real Estate Construction Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 92,436us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 44,913us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Mortgages [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 1,052,385us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 1,280,797us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Legacy [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 80,818us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 211,135us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Consumer [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Loans held-in-portfolio 481,234us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
[4] 615,588us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 41,900us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
56,985us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 16,875us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
27,148us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 19,100us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
150,693us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 77,875us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
234,826us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 3,388,462us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
5,489,201us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 3,466,337us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
5,724,027us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Commercial Multi Family [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 87us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
3,621us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 376us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,675us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
20,894us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 463us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
26,190us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 406,740us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,067,344us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 407,203us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,093,534us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Commercial Real Estate Non Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 1,478us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
4,255us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
42,413us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 1,478us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
46,668us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 511,089us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,059,619us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 512,567us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,106,287us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Commercial Real Estate Owner Occupied [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 45us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
657us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 3,631us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
8,452us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 805us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
23,507us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 4,481us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
32,616us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 189,424us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
527,426us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 193,905us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
560,042us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Commercial And Industrial Loans [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 1,133us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
2,331us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 123us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
2,019us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 1,510us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
6,142us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 2,766us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
10,492us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 643,023us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
801,239us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 645,789us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
811,731us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Commercial Real Estate Construction Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 810us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
5,663us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 810us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
5,663us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 91,626us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
39,250us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 92,436us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
44,913us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Mortgages [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 29,582us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
30,713us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 8,646us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
9,630us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 9,284us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
26,292us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 47,512us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
66,635us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 1,004,873us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,214,162us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 1,052,385us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,280,797us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Legacy [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 929us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
9,079us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 1,931us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
2,098us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 1,545us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
15,050us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 4,405us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
26,227us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 76,413us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
184,908us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 80,818us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
211,135us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Consumer [Member] | Consumer Credit Card Financing Receivable [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 314us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
285us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 246us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
200us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 449us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
486us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 1,009us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
971us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 14,056us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
14,680us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 15,065us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
15,651us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Consumer [Member] | Home Equity Line of Credit [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 5,036us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
2,794us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 1,025us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
2,198us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 4,090us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
8,632us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 10,151us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
13,624us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 342,611us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
449,409us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 352,762us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
463,033us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Consumer [Member] | Personal [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 2,476us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
3,196us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 893us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
826us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 1,410us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,591us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 4,779us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
5,613us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 108,140us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
129,622us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 112,919us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
135,235us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Consumer [Member] | Consumer Loans Auto Financing Receivable [Member]    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
11us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
2us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 0us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
13us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 73us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
476us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio 73us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
489us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
UNITED STATES | Non Covered Loans [Member] | Consumer [Member] | Consumer Other Financing Receivable Member    
Financing Receivable, Recorded Investment, Past Due [Line Items]    
Financing Receivable Recorded Investment 30 To 59 Days Past Due 10us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
43us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment 60 To 89 Days Past Due 4us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
50us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Equal To Greater Than 90 Days Past Due 7us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
21us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Total Past Due 21us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
114us-gaap_FinancingReceivableRecordedInvestmentPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Financing Receivable Recorded Investment Current 394us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,066us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Loans held-in-portfolio $ 415us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
$ 1,180us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
[1] Non-covered loans held-in-portfolio at December 31, 2014 are net of $94 million in unearned income and exclude $106 million in loans held-for-sale. (December 31, 2013 - $92 million in unearned income and $110 million in loans held-for-sale.)
[2] The legacy portfolio is comprised of commercial loans, construction loans and lease financings related to certain lending products exited by the Corporation as part of restructuring efforts carried out in prior years at the BPNA segment.
[3] Excludes covered loans acquired in the Westernbank FDIC-assisted transaction.
[4]  Excludes discontinued operations.