anchor.diff:            (cl-json:encode-object-member :expiration-date credit-card-expiration-date stream)
             (cl-json:encode-object-member :card-code credit-card-security-code stream))))))
   
  +(defmethod cl-json:encode-json ((object order) &optional (stream cl-json:*json-output*))
  +  (with-accessors ((order-invoice-number order-invoice-number)
  +                   (order-description order-description))
  +      object
  +    (cl-json:with-object (stream)
  +      (cl-json:encode-object-member :type order-invoice-number stream)
  +      (cl-json:encode-object-member :email order-description stream))))
  +
  +(defmethod cl-json:encode-json ((object line-item) &optional (stream cl-json:*json-output*))
  +  (with-accessors ((line-item-item-id line-item-item-id)
  +                   (line-item-name line-item-name)
  +                   (line-item-description line-item-description)
  +                   (line-item-quantity line-item-quantity)
  +                   (line-item-unit-price line-item-unit-price))
  +      object
  +    (cl-json:with-object (stream)
  +      (cl-json:encode-object-member :item-id line-item-item-id stream)
  +      (cl-json:encode-object-member :name line-item-id stream)
  +      (cl-json:encode-object-member :description line-item-description stream)
  +      (cl-json:encode-object-member :quantity (princ-to-string line-item-quantity) stream)
  +      (cl-json:encode-object-member :unit-price (let ((wu-decimal:*print-precision-loss* :round))
  +                                                  (format nil "~/wu-decimal:$/" line-item-unit-price))
  +                                    stream))))
  +
  +(defmethod cl-json:encode-json ((object tax) &optional (stream cl-json:*json-output*))
  +  (with-accessors ((tax-amount tax-amount)
  +                   (tax-name tax-name)
  +                   (tax-description tax-description))
  +      object
  +    (cl-json:with-object (stream)
  +      (cl-json:encode-object-member :amount (let ((wu-decimal:*print-precision-loss* :round))
  +                                              (format nil "~/wu-decimal:$/" tax-amount))
  +                                    stream)
  +      (cl-json:encode-object-member :name tax-name stream)
  +      (cl-json:encode-object-member :description tax-description stream))))
  +
  +(defmethod cl-json:encode-json ((object customer) &optional (stream cl-json:*json-output*))
  +  (with-accessors ((customer-type customer-type)
  +                   (customer-id customer-id)
  +                   (customer-email customer-email))
  +      object
  +    (cl-json:with-object (stream)
  +      (cl-json:encode-object-member :type customer-type stream)
  +      (cl-json:encode-object-member :id customer-id stream)
  +      (cl-json:encode-object-member :email customer-email stream))))
  +
   (defmethod cl-json:encode-json ((object customer-address) &optional (stream cl-json:*json-output*))
     (with-accessors ((customer-address-first-name customer-address-first-name)
                      (customer-address-last-name customer-address-last-name)
  
positive.code: (defclass auth-capture-transaction-request (transaction-request)
    ((amount :initarg :amount :reader transaction-request-amount) ; total, including tax, shipping, and other charges; 15 digits
     (payment :initarg :payment :reader transaction-request-payment)
     (bill-to :initarg :bill-to :reader transaction-request-bill-to)
     (settings :initform '() :reader transaction-request-settings))
    (:default-initargs
     :amount #$0.00
      :payment nil
      :bill-to nil))
  
  (defmethod transaction-request-type ((transaction-request auth-capture-transaction-request))
    "authCaptureTransaction")
  
negative.code:                                     stream)
        (unless (null transaction-request-payment)
          (cl-json:encode-object-member :payment transaction-request-payment stream))
        (unless (transaction-request-order)
          (cl-json:encode-object-member :order transaction-request-order stream))
        (unless (null transaction-request-line-items)
          (cl-json:as-object-member (:line-items stream)
            (cl-json:with-object (stream)
              (dolist (line-item transaction-request-line-items)
                (cl-json:encode-object-member :line-item line-item stream)))))
        (unless (transaction-request-tax)
          (cl-json:encode-object-member :tax transaction-request-tax stream))
        (unless (null transaction-request-customer)
          (cl-json:encode-object-member :customer transaction-request-customer stream))
        (unless (null transaction-request-bill-to)
          (cl-json:encode-object-member :bill-to transaction-request-bill-to stream))
        (cl-json:encode-object-member :customer-i-p transaction-request-customer-ip stream)
        (unless (null transaction-request-settings) ; assuming a list implementation
          (cl-json:as-object-member (:transaction-settings stream)
            (cl-json:with-object (stream)
  