The South African rand (ZAR) is the only method of payment accepted in South Africa. Traders generally do not accept euros or US dollars. But you can easily exchange your currency for Rands at banks and other facilities in the bigger centres, so you don’t have to do this back home.
Everybody in Swaziland and Lesotho accepts Rands. Keep in mind that currency exchange facilities are few and far between in the rural areas. If you plan to exchange foreign currency, do so in one of the larger cities. Most big hotels offer money-changing facilities, but these are on the expensive side.
Rather use banks and recognised agencies such as Thomas Cook or Rennies to exchange. Visa and Mastercard are accepted throughout Southern Africa.
