Answers.Body: <p>I might be on deep water here, but I would propose this workflow:</p>
  
  <ol>
  <li><p>You create a new CiviRules trigger to trigger on System_log created. That would probably be as simple(?!) as to copy another trigger like Contact created or Contribution created, and replace the values with details on system_log.</p></li>
  <li><p>You have a condition on field value comparison for a value in system_log that is unique for failed Authorize.net-payments.</p></li>
  <li><p>Action is to schedule an activity to the appropriate staff member, and include in the activity detail the URL for the API Explorer site, filled in with tokens to show the value for the corresponding system_log (the same way as checksum is used)</p></li>
  </ol>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-10-11T20:54:16.173Z
Answers.Text: Thanks Flying, I'm checking that out. Have not had a chance to take a stab at this - "You create a new CiviRules trigger to trigger on System_log created. That would probably be as simple(?!) as to copy another trigger like Contact created or Contribution created, and replace the values with details on system_log."
Answers.UserDisplayName: Joe McLaughlin
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-10-10T22:40:16.673Z
Answers.LastActivityDate: 2016-10-10T22:40:16.673Z
Answers.UserDisplayName: Flying
Body: <p>We're on Civi 4.6.21 and Drupal 7. We use Authorize.net for payment processing.</p>
  
  <p>Error messages from Authorize are displayed in civicrm_system_log in the context field as json encoded data. The error messages are useful for determining <em>exactly</em> why a transaction failed - a card was declined, the billing address info is wrong (an "AVS mismatch") or other reason. </p>
  
  <p>I'd like to be able to see the error message info in the Civi interface, without having to go in to the back end MySQL table - civicrm_system_log - as I do now. </p>
  
  <p>There is a way to see the system_log data using the API - see the screenshot below.<a href="https://i.sstatic.net/zCyX3.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/zCyX3.png" alt="screenshot"></a></p>
  
  <p>I want to be able to include the error message info in assigned Activities to renew a membership, ideally using a rule created using CiviRules as part of a membership renewal workflow, and for the assigned caller to be able to easily see <em>exactly</em> why the previous transaction did not go through - the card was declined, the billing address is wrong, etc - and to get the correct info from the target/member. </p>
  
  <p>So how can I do this? </p>
  
Tags: <api><payment-processor><authorize.net><recurring-contributions>
Title: How can I display detailed Authorize.net error code info from civicrm_system_log in the Civi interface?
ThreadText: # How can I display detailed Authorize.net error code info from civicrm_system_log in the Civi interface?
  
  (Asked by: username_0 on 2016-09-13)
  
  We're on Civi 4.6.21 and Drupal 7. We use Authorize.net for payment processing.
  
  Error messages from Authorize are displayed in civicrm\_system\_log in the context field as json encoded data. The error messages are useful for determining *exactly* why a transaction failed - a card was declined, the billing address info is wrong (an "AVS mismatch") or other reason.
  
  I'd like to be able to see the error message info in the Civi interface, without having to go in to the back end MySQL table - civicrm\_system\_log - as I do now.
  
  There is a way to see the system\_log data using the API - see the screenshot below.[![screenshot](https://i.sstatic.net/zCyX3.png)](https://i.sstatic.net/zCyX3.png)
  
  I want to be able to include the error message info in assigned Activities to renew a membership, ideally using a rule created using CiviRules as part of a membership renewal workflow, and for the assigned caller to be able to easily see *exactly* why the previous transaction did not go through - the card was declined, the billing address is wrong, etc - and to get the correct info from the target/member.
  
  So how can I do this?
  
  **Tags:** api, payment-processor, authorize.net, recurring-contributions
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2016-10-10. Score: 2 | Accepted answer
  
  I might be on deep water here, but I would propose this workflow:
  
  1. You create a new CiviRules trigger to trigger on System\_log created. That would probably be as simple(?!) as to copy another trigger like Contact created or Contribution created, and replace the values with details on system\_log.
  2. You have a condition on field value comparison for a value in system\_log that is unique for failed Authorize.net-payments.
  3. Action is to schedule an activity to the appropriate staff member, and include in the activity detail the URL for the API Explorer site, filled in with tokens to show the value for the corresponding system\_log (the same way as checksum is used)
  
  > **Comments:**
  > **username_0**: Thanks username_1, I'm checking that out. Have not had a chance to take a stab at this - "You create a new CiviRules trigger to trigger on System_log created. That would probably be as simple(?!) as to copy another trigger like Contact created or Contribution created, and replace the values with details on system_log."  
  
  ---
  
  