anchor.diff:  (defclass transaction-response () ())
   
   (defgeneric transaction-response-response-code (transaction-response))
  +
  +(defconstant +transaction-response-code-approved+ 1)
  +(defconstant +transaction-response-code-declined+ 2)
  +(defconstant +transaction-response-code-error+ 3)
  +(defconstant +transaction-response-code-held-for-review+ 4)
  +
  +(defun transaction-response-response-code-description (transaction-response)
  +  (ecase (transaction-response-response-code transaction-response)
  +    (+transaction-response-code-approved+ :approved)
  +    (+transaction-response-code-declined+ :declined)
  +    (+transaction-response-code-error+ :error)
  +    (+transaction-response-code-held-for-review+ :held-for-review)))
   
   (defclass auth-capture-transaction-response (transaction-response)
     ((response-code :initarg :response-code :reader transaction-response-response-code)
  
positive.code:           (error 'transaction-failed :request request :raw-response raw-response))
          (when (null (raw-response-transaction-response raw-response))
            (error 'transaction-failed :request request :raw-response raw-response))
          (when (null (raw-response-transaction-response-message raw-response))
            (error 'transaction-failed :request request :raw-response raw-response))
          (make-instance 'response
                         :ref-id (raw-response-ref-id raw-response)
                         :result-code (raw-response-result-code raw-response)
                         :message-code (raw-response-message-code raw-response)
                         :message-text (raw-response-message-text raw-response)
                         :transaction-response (make-transaction-response-for-transaction-request
                                                (request-transaction-request request)
                                                (raw-response-transaction-response raw-response)))))))
  
negative.code:    (account-type :initarg :account-type :reader transaction-response-account-type)
     (message-code :initarg :message-code :reader transaction-response-message-code)
     (message-description :initarg :message-description :reader transaction-response-message-description)
     (error-code :initarg :error-code :reader transaction-response-error-code)
     (error-text :initarg :error-text :reader transaction-response-error-text)
     ;; LATER other fields...
     )
    (:default-initargs
     :response-code nil
      :auth-code nil
      :avs-result-code nil
      :cvv-result-code nil
      :cavv-result-code nil
      :trans-id nil
      :ref-trans-id nil
      :trans-hash nil
      :account-number nil
      :account-type nil
      :message-code nil
      :message-description nil
      :error-code nil
      :error-text nil))
  
  ;; TODO refun-transaction-response
  ;; TODO void-transaction-response
  