I have successfully programmed charging using getHostedPaymentPageResponse to get a token and then posting to https://accept.authorize.net/payment/payment as described on https://developer.authorize.net/api/reference/features/accept_hosted.html. I cannot find how to use this method to do recurring billing. The only things I can find in the documentation is for either non-hosted ARB or for Accept.js.
As far as I know, the route you have to go is --- Setup the customer, then call the "getAcceptCustomerProfilePage" endpoint which returns a token. Then you use that token (search google for 'authorize.net api customer profiles hosted') to open the customer profile page and enter payment info. Then you can use another api call to "setup ARB from the customer payment profile".
I wish there was a direct HOSTED ARB solution though, as this all seems rather cumbersome when the ARB subscriptions don't stay connected to the customer anyway.