DECLARES a purchase defined with ``purchaseid`` (bound to vingd transfer
        referenced by ``transferid``) as finished, with user being granted the
        access to the service or goods.
        
        If seller fails to commit the purchase, the user (buyer) shall be
        refunded full amount paid (reserved).
        
        :type purchaseid: ``bigint``
        :param purchaseid:
            Purchase ID, as returned in purchase description, upon
            token/purchase verification.
        :type transferid: ``bigint``
        :param transferid:
            Transfer ID, as returned in purchase description, upon
            token/purchase verification.
        
        :rtype: ``dict``
        :returns:
            ``{'ok': <boolean>}``.
        :raises InvalidData: invalid format of input parameters
        :raises NotFound: non-existing order/purchase/transfer
        :raises GeneralException: depends on details of error
        :raises InternalError: Vingd internal error (network, server, app)
        
        :see: `verify_purchase`.
        :resource: ``purchases/<purchaseid>``
        :access: authorized users (ACL flag: ``type.business``)

def commit_purchase(self, purchaseid, transferid):
        """
        DECLARES a purchase defined with ``purchaseid`` (bound to vingd transfer
        referenced by ``transferid``) as finished, with user being granted the
        access to the service or goods.
        
        If seller fails to commit the purchase, the user (buyer) shall be
        refunded full amount paid (reserved).
        
        :type purchaseid: ``bigint``
        :param purchaseid:
            Purchase ID, as returned in purchase description, upon
            token/purchase verification.
        :type transferid: ``bigint``
        :param transferid:
            Transfer ID, as returned in purchase description, upon
            token/purchase verification.
        
        :rtype: ``dict``
        :returns:
            ``{'ok': <boolean>}``.
        :raises InvalidData: invalid format of input parameters
        :raises NotFound: non-existing order/purchase/transfer
        :raises GeneralException: depends on details of error
        :raises InternalError: Vingd internal error (network, server, app)
        
        :see: `verify_purchase`.
        :resource: ``purchases/<purchaseid>``
        :access: authorized users (ACL flag: ``type.business``)
        """
        return self.request(
            'put',
            safeformat('purchases/{:int}', purchaseid),
            json.dumps({'transferid': transferid})
        )