Answers.Body: <p>Your use case is quite valid, however, the assumption that once a contribution has been marked as completed, there should be no need for further payment processing, and, AFAIK, is meant to preserve data integrity. That said, aside from what Pete suggested, the only other way I can think of would be for you to charge the amount due directly via your payment processor portal (i.e. outside of Civi), and then update the pending contribution to a status of completed and include the transaction ID for good measure.  In this way, your event income reporting will remain accurate without having to cancel the participant registration and re-record it. </p>
  
  <p>Hope this helps! 
  Tamar</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-14T22:54:05.157Z
Answers.Text: Couldn't there be multiple payments applied against an event registration instead of just one?
Answers.UserDisplayName: Zachary
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-15T00:04:00.830Z
Answers.Text: Unfortunately this is currently only possible for back office registrations that are initially created as partially paid, but that won't suit your use case. I agree, it would be useful, but it would be considered an enhancement that would either require funding for the core team to do or code could be contributed - I am not a developer so unfortunately I can't be of further service in this regards. Good luck!
Answers.UserDisplayName: Tamar Meir - Cividesk
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-13T17:29:30.213Z
Answers.LastActivityDate: 2016-08-13T17:29:30.213Z
Answers.UserDisplayName: Tamar Meir - Cividesk
Answers.Body: <p>One option would be to delete their initial registration, then use the public registration form either Incognito or the 'register as other' and submit their new registration with their credit card payment.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-13T00:44:59.753Z
Answers.Text: I appreciate the answer, but this is really not a logical workflow in the end, while it may be the only solution currently.
Answers.UserDisplayName: Zachary
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-07T06:34:12.070Z
Answers.LastActivityDate: 2016-08-07T06:34:12.070Z
Answers.UserDisplayName: petednz - fuzion
Body: <p>Drupal 7 Civi 4.6.15</p>
  
  <p>How do we manage this workflow?</p>
  
  <ol>
  <li>Participant registers for event using discount code, pays $0. </li>
  <li>Calls, wants to add non-free items to registration, we edit the
  Registration and add them.</li>
  <li>Registration now says $250 with status payment pending</li>
  </ol>
  
  <p>How do we apply a new credit card charge to this changed registration? On the backend it lets us enter credit card payment details, but doesn't let us charge it, AFAIK.</p>
  
  <p>We are also having similar issue seen here: <a href="https://civicrm.stackexchange.com/questions/7369/having-issues-with-recording-new-payments-for-registrations-paid-with-credit-car">Having issues with recording new payments for registrations paid with credit cards</a></p>
  
  <p>If we mark the registration as 'Partially Paid', then try to record payment, Civi error spits out in log</p>
  
  <pre><code>Notice: Undefined variable: paymentVal in CRM_Core_BAO_FinancialTrxn::getPartialPaymentWithType()
  </code></pre>
  
  <p><a href="https://i.sstatic.net/cFYL1.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/cFYL1.png" alt="How can we actually charge the card when editing the registration?"></a></p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-08-03T20:00:25.703Z
Comments.Text: Can you clarify: You are able to charge the participant $250 but that's not the correct amount, or are you unable to charge the participant the $250 and that's the issue?
Comments.UserDisplayName: naomisl
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-08-03T21:36:39.937Z
Comments.Text: #2. Their event registration went through for $0 because it was completely discounted. When we edited their registration after the fact, and added some price set options, it added $250 to the related contribution with a 'Pending - Pay Later' status. We are not sure how to to charge a credit card using the backoffice interface in a way that will link the event/contribution together correctly. We can edit the event registration/contribution and record a payment note, but it doesn't actively process the card like the 'submit credit card contribution' feature. Hope this helps.
Comments.UserDisplayName: Zachary
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-08-04T08:31:11.777Z
Comments.Text: what payment processor are you using?
Comments.UserDisplayName: Ramesh - ARTECH Consultancy
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-08-05T18:09:58.940Z
Comments.Text: Paypal Website Payment Pro. Also, to clarify, when I say it "does not let us charge", I mean there is no interface presented to enter in credit card details and submit a charge, when editing the event registration. Where would we do this?
Comments.UserDisplayName: Zachary
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-08-07T06:32:27.230Z
Comments.Text: Can you just cancel their registration and then use the registration form to reregister in their name and use their credit card?
Comments.UserDisplayName: petednz - fuzion
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-08-08T17:30:54.993Z
Comments.Text: It is a very complex registration using price sets. Theoretically I could do this, but that would present a challenge for changing registrations in a time efficient way. We are holding a conference and want to do this on the spot if at all possible.
Comments.UserDisplayName: Zachary
Tags: <civievent><civicontribute>
Title: Credit Card Payment after Editing Event Registration with more Choices
ThreadText: # Credit Card Payment after Editing Event Registration with more Choices
  
  (Asked by: username_0 on 2016-08-03)
  
  Drupal 7 Civi 4.6.15
  How do we manage this workflow?
  
  Participant registers for event using discount code, pays $0. 
  Calls, wants to add non-free items to registration, we edit the
  Registration and add them.
  Registration now says $250 with status payment pending
  
  How do we apply a new credit card charge to this changed registration? On the backend it lets us enter credit card payment details, but doesn't let us charge it, AFAIK.
  We are also having similar issue seen here: Having issues with recording new payments for registrations paid with credit cards
  If we mark the registration as 'Partially Paid', then try to record payment, Civi error spits out in log
  Notice: Undefined variable: paymentVal in CRM_Core_BAO_FinancialTrxn::getPartialPaymentWithType()
  
  **Tags:** civievent, civicontribute
  
  > **Comments:**
  > **username_1**: Can you clarify: You are able to charge the participant $250 but that's not the correct amount, or are you unable to charge the participant the $250 and that's the issue?  
  > **username_0**: #2. Their event registration went through for $0 because it was completely discounted. When we edited their registration after the fact, and added some price set options, it added $250 to the related contribution with a 'Pending - Pay Later' status. We are not sure how to to charge a credit card using the backoffice interface in a way that will link the event/contribution together correctly. We can edit the event registration/contribution and record a payment note, but it doesn't actively process the card like the 'submit credit card contribution' feature. Hope this helps.  
  > **username_2**: what payment processor are you using?  
  > **username_0**: Paypal Website Payment Pro. Also, to clarify, when I say it "does not let us charge", I mean there is no interface presented to enter in credit card details and submit a charge, when editing the event registration. Where would we do this?  
  > **username_3**: Can you just cancel their registration and then use the registration form to reregister in their name and use their credit card?  
  > **username_0**: It is a very complex registration using price sets. Theoretically I could do this, but that would present a challenge for changing registrations in a time efficient way. We are holding a conference and want to do this on the spot if at all possible.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_4 on 2016-08-13. Score: 1 | Accepted answer
  
  Your use case is quite valid, however, the assumption that once a contribution has been marked as completed, there should be no need for further payment processing, and, AFAIK, is meant to preserve data integrity. That said, aside from what Pete suggested, the only other way I can think of would be for you to charge the amount due directly via your payment processor portal (i.e. outside of Civi), and then update the pending contribution to a status of completed and include the transaction ID for good measure. In this way, your event income reporting will remain accurate without having to cancel the participant registration and re-record it.
  
  Hope this helps!
  Tamar
  
  > **Comments:**
  > **username_0**: Couldn't there be multiple payments applied against an event registration instead of just one?  
  > **username_4**: Unfortunately this is currently only possible for back office registrations that are initially created as partially paid, but that won't suit your use case. I agree, it would be useful, but it would be considered an enhancement that would either require funding for the core team to do or code could be contributed - I am not a developer so unfortunately I can't be of further service in this regards. Good luck!  
  
  ---
  
  ### Answer by username_3 on 2016-08-07. Score: 1
  
  One option would be to delete their initial registration, then use the public registration form either Incognito or the 'register as other' and submit their new registration with their credit card payment.
  
  > **Comments:**
  > **username_0**: I appreciate the answer, but this is really not a logical workflow in the end, while it may be the only solution currently.  
  
  ---
  
  