def federation_payment(self,
                           fed_address,
                           amount,
                           asset_code='XLM',
                           asset_issuer=None,
                           source=None,
                           allow_http=False):
        """Append a :class:`Payment <stellar_base.operation.Payment>` operation
        to the list of operations using federation on the destination address.

        Translates the destination stellar address to an account ID via
        :func:`federation <stellar_base.federation.federation>`, before
        creating a new payment operation via :meth:`append_payment_op`.

        :param str fed_address: A Stellar Address that needs to be translated
            into a valid account ID via federation.
        :param str amount: The amount of the currency to send in the payment.
        :param str asset_code: The asset code for the asset to send.
        :param str asset_issuer: The address of the issuer of the asset.
        :param str source: The source address of the payment.
        :param bool allow_http: When set to `True`, connections to insecure http protocol federation servers
            will be allowed. Must be set to `False` in production. Default: `False`.
        :return: This builder instance.

        """
        fed_info = federation(
            address_or_id=fed_address, fed_type='name', allow_http=allow_http)
        if not fed_info or not fed_info.get('account_id'):
            raise FederationError(
                'Cannot determine Stellar Address to Account ID translation '
                'via Federation server.')
        self.append_payment_op(fed_info['account_id'], amount, asset_code,
                               asset_issuer, source)
        memo_type = fed_info.get('memo_type')
        if memo_type is not None and memo_type in ('text', 'id', 'hash'):
            getattr(self, 'add_' + memo_type.lower() + '_memo')(fed_info['memo'])
Append a :class:`Payment <stellar_base.operation.Payment>` operation
        to the list of operations using federation on the destination address.

        Translates the destination stellar address to an account ID via
        :func:`federation <stellar_base.federation.federation>`, before
        creating a new payment operation via :meth:`append_payment_op`.

        :param str fed_address: A Stellar Address that needs to be translated
            into a valid account ID via federation.
        :param str amount: The amount of the currency to send in the payment.
        :param str asset_code: The asset code for the asset to send.
        :param str asset_issuer: The address of the issuer of the asset.
        :param str source: The source address of the payment.
        :param bool allow_http: When set to `True`, connections to insecure http protocol federation servers
            will be allowed. Must be set to `False` in production. Default: `False`.
        :return: This builder instance.