Lots of duplication here... it should be possible to reuse most of this code from the abstract base class and only override the endpoint/http method. (e.g. a recent one I did: https://github.com/omnipay/coinbase/blob/master/src/Message/PurchaseRequest.php#L29 )