You're multiplying the total duration for all calls for the client by the total number of payments the client has made.
The query doesn't actually use the left join to the payments table, so you can just remove it:
select
c.login,
cname.Name,
cname.LastName,
DATE_FORMAT(Creation_Date,'%m-%d-%y')as regdate,
(Select max(data) from payments where payments.id_client = c.id_client) as lastpayment,
(Select max(call_start) from calls where calls.id_client = c.id_client) as lastcall,
c.account_state,
sum(cdr.duration / 60) as total_duration
from
clientsshared as c
left join invoiceclients as cname on cname.IdClient = c.id_client
left join calls as cdr on cdr.id_client = c.id_client
where
c.id_reseller='10'
group by
c.id_client
order by
total_duration desc
limit 100