According to The Independent, the vessel – which was carrying 36 adults and four children – was around 600 metres off the Portuguese coast when it began taking on water.
The Portimao Maritime Police and Ferragudo Lifeguard Station received an alert at around 1.25pm and all passengers were rescued.
Authorities confirmed passengers were taken to Portimao Marina where paramedics, volunteer firefighters, civil protection officers and Red Cross personnel were waiting.
An investigation into the cause of the incident is under way.