Hi,
the pppd program, before ending, it executes a terminating script; at that point, thereis an environment varibale that has the transmitted bytes.
I use a SonyEriscsson to bluetooth-connect to the internet, and when disconnecting the gprs, the amount of bytes showing on the phone screen exactly matched the value given by pppd.
For detailed info check pppd documentation.
For the required softwre that automatically makes your required transferred bytes checks and accounting, I leave that for you ;-)
HTH