Without an adapter you have two bad choices. You can reshape your whole payment code around one vendor's API, and reshape it again when you change vendor. Or you can scatter small translations everywhere the vendor is used.
The lesson zooms out to layers. Your application code sits at the top and speaks only your types. The adapter layer translates to vendor types, with one adapter per vendor. The vendor SDKs handle the network details. The external APIs sit at the bottom.
This layering limits damage. A breaking change in an SDK touches one adapter file. A new vendor means one new adapter class, such as a Stripe adapter next to the Razorpay one. The application code, several layers away, does not change.
The lesson lists common places for adapters in microservices. One is a payment service that supports Stripe, Razorpay and PayPal behind one interface. Another is a service with a DatabaseAdapter for both DynamoDB and PostgreSQL. A third is an API gateway that normalises responses from many backends. Adapters also appear in an anti-corruption layer, which keeps another system's model out of yours. The anti-corruption layer lesson covers that case.