The Changing Nature of Cross-Border Credit: Through the BIS API and the getBISy Package#

26 August 2025

It is well-known that cross-border capital flows can have destabilising consequences for local and global financial systems, illustrated through histories of financial crises in the 20th- and 21st -centuries.

The Asian Financial Crisis 1997-98 showed that countries running even modest fiscal and current account deficits - and no twin deficits at all, in the case of Singapore - could be destabilised by sudden capital outflows quite divorced from any perceptible fundamentals aside from a latent notion of global ‘risk-appetite’.

Indeed, large volumes of capital inflows, whilst arising initially from unpredictable sources, lead to self-fulfilling circles of rising asset prices and increased collateral values that fuel further borrowing and ultimately sow the seeds of a sudden reversal and a financial and currency crisis. This is at least partially the story of the Global Financial Crisis 2007-08 (‘GFC’).

But if we suppose the term ‘cross-border lending’ fully describes the anatomy of cross-border funding then we might miss an important story regarding the composition of this cross-border lending: namely, the distinction between funding via cross-border bank lending (‘CBL’) and international debt securities (‘IDS’) issuance.

Indeed, as BIS economists Torsten Ehlers, Bryan Hardy, and Patrick McGuire point out in an article from the first quarterly review this year, cross-border capital flows in the pre-GFC period consisted of a particularly high proportion of CBL. Now, however, IDS is increasingly replacing CBL as the primary source of cross-border funding.

These points can be illustrated through using BIS data collected through a new Python package that I’ve just published - getBISy.

After a rising rapidly from the turn of the millennium to the GFC 2007-08, total global cross-border credit was essentially flat up in the following decade up to the Covid-19 Pandemic of 2020, and growth since then has in contrast to the years preceding the crisis.

Hide code cell source

import getBISy.data as data
import getBISy.enums as enums

df = data.get_global_liquidity_data(
    freq='Q',
    currency='TO1',
    borrowing_country=enums.Region.LiquidityAllCountries,
    borrowing_sector=enums.Sector.LiquidityAllSectors,
    lending_sector=enums.Sector.Banks,
    position_type=enums.PositionType.CrossBorderAndLocal,
    instrument_type=enums.Instrument.All,
    unit_of_measure=enums.UnitOfMeasure.PercentageOfGDP
)

International claims on all sectors

At the same time, however, there are important regional differences.

Take the example of the contrasting experiences of Developing Asia and Developed Europe. Whilst being essentially flat in the period up to the GFC, extensions of credit from local lenders to local borrowers in Developing Asia began to rise consistently following the crisis, barely being interrupted by the Covid-19 pandemic. In fact, this rise seems to be almost a mirror image of the corresponding fall in local credit in Developed Europe.

Hide code cell source

import getBISy.data as data
import getBISy.enums as enums

s1 = data.get_global_liquidity_data(freq='Q',
                               currency='TO1',
                               borrowing_country=enums.Region.DevelopingAsiaAndPacific,
                               borrowing_sector=enums.Sector.NonFinancialPrivateSector,
                               lending_sector=enums.Sector.Banks,
                               position_type= enums.PositionType.Local,
                               instrument_type=enums.Instrument.Credit,
                               unit_of_measure=enums.UnitOfMeasure.PercentageOfGDP
                               )
s2 = data.get_global_liquidity_data(freq='Q',
                               currency='TO1',
                               borrowing_country=enums.Region.EuroArea,
                               borrowing_sector=enums.Sector.NonFinancialPrivateSector,
                               lending_sector=enums.Sector.Banks,
                               position_type= enums.PositionType.Local,
                               instrument_type=enums.Instrument.Credit,
                               unit_of_measure=enums.UnitOfMeasure.PercentageOfGDP
                               )

DivergingPathsOfLocalBankCredit

Meanwhile, the rise and subsequent stagnation of cross-border bank lending in Developed Europe following the GFC is well-known. And it was at this point that cross-border bank lending to Developing Asia began to rise, compensating at least partially for the decline in Europe.

But, eyeballing the below chart, the Covid-19 pandemic might have marked a structural break in this trend. In the past 5 years, cross-border bank lending has steadily increased for Developed Europe, but decreased for Developing Asia.

Hide code cell source

s1 = data.get_locational_banking_data('Q',
                                        enums.LbsMeasure.Stocks,
                                        enums.Position.Claims,
                                        enums.Instrument.LoansAndDeposits,
                                        'USD',
                                        enums.CurrencyType.All,
                                        '5J',
                                        enums.Institution.All,
                                        '5A',
                                        enums.Sector.NonBanks,
                                        enums.Region.DevelopingAsiaAndPacific,
                                        enums.PositionType.CrossBorder)
s2 = data.get_locational_banking_data('Q',
                                        enums.LbsMeasure.Stocks,
                                        enums.Position.Claims,
                                        enums.Instrument.LoansAndDeposits,
                                        'USD',
                                        enums.CurrencyType.All,
                                        '5J',
                                        enums.Institution.All,
                                        '5A',
                                        enums.Sector.NonBanks,
                                        enums.Region.EuropeanDevelopedCountries,
                                        enums.PositionType.CrossBorder)

Divergence in Cross-Border Credit

The international funding model in the post-GFC period - including for EMEs - has instead been characterised international debt issuance, particularly of USD-denominated debt.

Hide code cell source

all_countries_debt_securities = data.get_global_liquidity_data(
    freq='Q',
    currency='USD',
    borrowing_country=enums.Region.AllCountries,
    borrowing_sector=enums.Sector.NonBanks,
    lending_sector=enums.Sector.LiquidityAllSectors,
    position_type=enums.PositionType.CrossBorderAndLocal,
    instrument_type=enums.Instrument.Debt,
    unit_of_measure=enums.UnitOfMeasure.USD
)

emerging_markets_debt_securities = data.get_global_liquidity_data(
    freq='Q',
    currency='USD',
    borrowing_country=enums.Region.EmergingAndDevelopingEconomies,
    borrowing_sector=enums.Sector.NonBanks,
    lending_sector=enums.Sector.LiquidityAllSectors,
    position_type=enums.PositionType.CrossBorderAndLocal,
    instrument_type=enums.Instrument.Debt,
    unit_of_measure=enums.UnitOfMeasure.USD
)

IncreasingdDebtIssuance

As laid out in BIS’s most recent Quarterly Review pointed out there is an important difference between the private and government sectors in relation to the currency composition of international debt issuance. Whilst the denomination of private sector debt in EMEs tends still to be USD denominated, governments have tended to issue local currency debt.

And foreign holdings of this local currency government debt has remained firm, even as EME private sector has continued issuance of USD-denominated debt. See the below chart from the BIS.

ForeignHoldingsOfEMEGovernmentBondsHaveHeldFirm

What are the consequences of this transition? For the EME private sector, the song remains the same: to the extent that these liabilities might remain unhedged a currency mismatch on their balance-sheets, they reamin exposed to local currency depreciation.

For EME governments who now increasingly have local-currency denominated liabilities, local currency depreciation would no longer lead to the vicious circle of depreciation precipitating foreign capital outflows, leading to further depreciation. That is to say, progress has been made in overcoming the ‘Original Sin’ highlighted by Eichengreen & Hausmann in their seminal 1999 paper.

The negative consequences of exchange-rate depreciation has, however, now been shifted to creditors - posing a potential vicious circle from currency mismatch even for EME borrowers without foreign currency debt. Local currency depreciation manifests as mark-to-market losses on foreign lenders’ balance-sheets, triggering selloffs and ex post hedging that further drives down local asset prices including the currency.

For researchers in international finance the BIS Stats API is an excellent source of data, providing access to a trove of unique datasets on international financial statistics underpinning some of the most interesting papers on these topics. Until now, there’s been no Python package providing an intuitive programmatic interface to the excellent international finance data provided in the BIS Data Portal.

getBISy allows researchers and developers to obtain BIS data through intuitive Python functions, rather than having to work out the GET requests, or manually download the datasets on the website.

As of today, you can use the package to obtain data on 5 different topics in the Data Portal:

  • Policy Rates

  • Exchange Rates

  • Locational Banking Statistics

  • International Debt Securities

  • Global Liquidity

Matthew Potts crossbordercode.com