XML 237 R126.htm IDEA: XBRL DOCUMENT v2.4.1.9
Disclosures related to loans individually evaluated for impairment (Detail) (USD $)
In Thousands, unless otherwise specified
Mar. 31, 2015
Dec. 31, 2014
Financing Receivable, Impaired [Line Items]    
Related Allowance $ 140,438us-gaap_ImpairedFinancingReceivableRelatedAllowance $ 140,146us-gaap_ImpairedFinancingReceivableRelatedAllowance
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 101,689us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment 99,960us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
Impaired Financing Receivable, with Related Allowance, Recorded Investment 906,256us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment 833,954us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
Recorded Investment 1,007,945us-gaap_ImpairedFinancingReceivableRecordedInvestment 933,914us-gaap_ImpairedFinancingReceivableRecordedInvestment
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 137,389us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance 131,837us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 966,876us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance 894,518us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
Unpaid Principal Balance 1,104,265us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance 1,026,355us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
Covered Under Loss Sharing Agreements With F D I C [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 1,473us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
5us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 5,067us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
4,487us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 5,663us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
2,419us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
Recorded Investment 10,730us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
6,906us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 10,231us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
4,487us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 5,663us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
7,500us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
Unpaid Principal Balance 15,894us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
11,987us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
PUERTO RICO    
Financing Receivable, Impaired [Line Items]    
Related Allowance 139,716us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_StatementGeographicalAxis
= country_PR
139,508us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 99,337us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_StatementGeographicalAxis
= country_PR
97,629us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 901,454us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_StatementGeographicalAxis
= country_PR
829,807us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 1,000,791us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_StatementGeographicalAxis
= country_PR
927,436us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 134,270us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_StatementGeographicalAxis
= country_PR
128,490us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 961,484us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_StatementGeographicalAxis
= country_PR
889,977us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 1,095,754us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_StatementGeographicalAxis
= country_PR
1,018,467us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_StatementGeographicalAxis
= country_PR
PUERTO RICO | Covered Under Loss Sharing Agreements With F D I C [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 1,473us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
5us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 5,067us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
4,487us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 5,663us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
2,419us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 10,730us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
6,906us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 10,231us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
4,487us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 5,663us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
7,500us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 15,894us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
11,987us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_CoveredUnderLossSharingAgreementsWithFDICMember
/ us-gaap_StatementGeographicalAxis
= country_PR
UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 722us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
638us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 2,352us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
2,331us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 4,802us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
4,147us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 7,154us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
6,478us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 3,119us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
3,347us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 5,392us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
4,541us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 8,511us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
7,888us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial Multi Family [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 18us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 551us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Recorded Investment 551us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 551us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Unpaid Principal Balance 551us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Commercial Multi Family [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 18us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 551us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 551us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 551us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 551us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Commercial Multi Family [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialMultiFamilyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial Real Estate Non Owner Occupied [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 18,309us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
5,182us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 10,229us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
7,929us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 109,064us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
50,324us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Recorded Investment 119,293us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
58,253us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 10,229us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
7,929us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 109,727us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
53,154us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Unpaid Principal Balance 119,956us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
61,083us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Commercial Real Estate Non Owner Occupied [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 18,309us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
5,182us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 10,229us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
7,929us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 109,064us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
50,324us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 119,293us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
58,253us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 10,229us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
7,929us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 109,727us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
53,154us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 119,956us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
61,083us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Commercial Real Estate Non Owner Occupied [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateNonOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial Real Estate Owner Occupied [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 11,902us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
16,770us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 17,274us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
14,897us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 109,604us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
114,163us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Recorded Investment 126,878us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
129,060us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 20,884us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
16,110us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 127,531us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
127,855us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Unpaid Principal Balance 148,415us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
143,965us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Commercial Real Estate Owner Occupied [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 11,902us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
16,770us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 17,274us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
14,897us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 109,604us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
114,163us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 126,878us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
129,060us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 20,884us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
16,110us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 127,531us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
127,855us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 148,415us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
143,965us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Commercial Real Estate Owner Occupied [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialRealEstateOwnerOccupiedMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial And Industrial Loans [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 39,717us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
42,784us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 18,988us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
24,215us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 151,667us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
145,633us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Recorded Investment 170,655us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
169,848us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 27,760us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
31,972us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 153,758us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
148,204us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Unpaid Principal Balance 181,518us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
180,176us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Commercial And Industrial Loans [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 39,717us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
42,784us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 18,988us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
23,965us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 151,667us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
145,633us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 170,655us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
169,598us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 27,760us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
31,722us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 153,758us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
148,204us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 181,518us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
179,926us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Commercial And Industrial Loans [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
250us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
250us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
250us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
250us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_CommercialAndIndustrialLoansMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Commercial Real Estate Construction Financing Receivable Member | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 158us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
363us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 7,075us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
10,693us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 2,763us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
2,575us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Recorded Investment 9,838us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
13,268us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 20,092us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
28,994us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 8,513us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
7,980us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Unpaid Principal Balance 28,605us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
36,974us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Commercial Real Estate Construction Financing Receivable Member | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 158us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
363us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 7,075us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
10,693us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 2,763us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
2,575us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 9,838us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
13,268us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 20,092us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
28,994us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 8,513us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
7,980us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 28,605us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
36,974us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Commercial Real Estate Construction Financing Receivable Member | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Mortgages [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 42,570us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
46,111us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 42,182us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
36,864us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 408,430us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
398,960us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Recorded Investment 450,612us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
435,824us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 47,319us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
41,554us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 442,603us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
429,945us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Unpaid Principal Balance 489,922us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
471,499us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Mortgages [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 42,229us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
45,838us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 40,704us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
35,658us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 404,802us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
395,911us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 445,506us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
431,569us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 45,074us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
39,248us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 438,401us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
426,502us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 483,475us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
465,750us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Mortgages [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 341us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
273us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 1,478us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,206us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 3,628us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
3,049us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 5,106us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
4,255us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 2,245us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
2,306us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 4,202us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
3,443us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 6,447us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
5,749us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_MortgageReceivablesMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Legacy [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Legacy [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= bpop_LegacyMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Finance Leases Portfolio Segment Member | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 687us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
770us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 2,924us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
3,023us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Recorded Investment 2,924us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
3,023us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 2,924us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
3,023us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Unpaid Principal Balance 2,924us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
3,023us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
Finance Leases Portfolio Segment Member | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 687us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
770us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 2,924us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
3,023us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 2,924us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
3,023us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 2,924us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
3,023us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 2,924us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
3,023us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Finance Leases Portfolio Segment Member | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_FinanceLeasesPortfolioSegmentMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Loan [Member] | Consumer Credit Card Financing Receivable [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 7,756us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
8,023us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 41,197us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
41,477us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Recorded Investment 41,197us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
41,477us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 41,197us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
41,477us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Unpaid Principal Balance 41,197us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
41,477us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
Consumer Loan [Member] | Consumer Credit Card Financing Receivable [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 7,756us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
8,023us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 41,197us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
41,477us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 41,197us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
41,477us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 41,197us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
41,477us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 41,197us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
41,477us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Consumer Loan [Member] | Consumer Credit Card Financing Receivable [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Loan [Member] | Home Equity Line of Credit [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 229us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
362us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 790us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
791us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 847us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
1,095us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Recorded Investment 1,637us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
1,886us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 790us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
791us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 863us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
1,095us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Unpaid Principal Balance 1,653us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
1,886us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Consumer Loan [Member] | Home Equity Line of Credit [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Consumer Loan [Member] | Home Equity Line of Credit [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 229us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
362us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 790us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
791us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 847us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,095us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 1,637us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,886us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 790us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
791us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 863us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,095us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 1,653us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
1,886us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Loan [Member] | Personal [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 17,206us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
19,410us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 84us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 70,984us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
71,825us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Recorded Investment 71,068us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
71,825us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 84us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 70,984us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
71,825us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Unpaid Principal Balance 71,068us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
71,825us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
Consumer Loan [Member] | Personal [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 17,054us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
19,410us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 70,657us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
71,825us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 70,657us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
71,825us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 70,657us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
71,825us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 70,657us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
71,825us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Consumer Loan [Member] | Personal [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 152us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 84us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 327us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 411us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 84us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 327us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 411us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bpop_PersonalMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Loan [Member] | Consumer Loans Auto Financing Receivable [Member] | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 314us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
262us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 2,036us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
1,932us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Recorded Investment 2,036us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
1,932us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 2,036us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
1,932us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Unpaid Principal Balance 2,036us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
1,932us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
Consumer Loan [Member] | Consumer Loans Auto Financing Receivable [Member] | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 314us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
262us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 2,036us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,932us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 2,036us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,932us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 2,036us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,932us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 2,036us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
1,932us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Consumer Loan [Member] | Consumer Loans Auto Financing Receivable [Member] | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoansAutoFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Consumer Loan [Member] | Consumer Other Financing Receivable Member | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 99us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
104us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
84us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Impaired Financing Receivable, with Related Allowance, Recorded Investment 526us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
528us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Recorded Investment 526us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
612us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 526us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
528us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Unpaid Principal Balance 526us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
528us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Consumer Loan [Member] | Consumer Other Financing Receivable Member | PUERTO RICO | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 99us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
101us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Recorded Investment 526us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
525us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Recorded Investment 526us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
525us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 526us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
525us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Unpaid Principal Balance 526us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
525us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_PR
Consumer Loan [Member] | Consumer Other Financing Receivable Member | UNITED STATES | Non Covered Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
3us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Recorded Investment [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
84us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Recorded Investment 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
87us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, Unpaid Principal Balance [Abstract]    
Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
Unpaid Principal Balance $ 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US
$ 3us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_ConsumerLoanMember
/ bpop_BankingAgenciesAxis
= bpop_NonCoveredLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_StatementGeographicalAxis
= country_US