Commit 9f6f4e25 authored by mattwire's avatar mattwire
Browse files

Update docs

parent b3ee52b7
......@@ -31,4 +31,18 @@ The api commands are:
* `StripeSubscription.copytrxnidtoprocessorid` - Used to copy trxn_id to processor_id in civicrm_contribution_recur table so we can use cancelSubscription. Hopefully this won't be needed in future versions of CiviCRM if we can pass more sensible values to the cancelSubscription function.
* `StripeSubscription.import` - Use to import subscriptions into CiviCRM that are in Stripe but not CiviCRM.
Accepts various parameters but requires: Payment Processor ID, Stripe subscription ID and CiviCRM contact ID.
\ No newline at end of file
## StripePaymentintents
This API is used internally for tracking and managing paymentIntents. It can be used for querying information about attempted / successful payments using `StripePaymentintent.get`.
It's not advised that you use this API for anything else.
## Scheduled Jobs
* `Job.process_stripe` - this cancels uncaptured paymentIntents and removes successful ones from the local database cache after a period of time:
* delete_old: Delete old records from database. Specify 0 to disable. Default is "-3 month"
* cancel_incomplete: Cancel incomplete paymentIntents in your stripe account. Specify 0 to disable. Default is "-1 day"
......@@ -15,6 +15,19 @@ For a **recurring contribution** an invoice is created for each contribution:
* We set the contribution `trxn_id` = Stripe `Invoice ID`.
* We set individual payments on that contribution (which could be a payment, a failed payment, a refund) to have `trxn_id` = Stripe `Charge ID`
## Uncaptured Charges
Stripe uses **PaymentIntents** to pre-authorise and authenticate a card.
These paymentIntents work in the same way as a pre-authorisation on Credit Card (such as a damage deposit on car-hire).
For this reason they can be problematic when there are multiple failures as a customer card will remain *authorised* for 7 days
and shows as a charge on the customer card. They can be manually cancelled via the Stripe Dashboard.
To mitigate this the Stripe extension tracks and records all paymentIntents created through CiviCRM and manages them
using a scheduled job `Job.process_stripe`.
The defaults for this are to cancel uncaptured payments after 24 hours and clear out old records (from the CiviCRM database) after three months.
## Payment Metadata
When we create a contribution in CiviCRM (Stripe Invoice/Charge) we add some metadata to that payment.
......@@ -24,9 +37,17 @@ When we create a contribution in CiviCRM (Stripe Invoice/Charge) we add some met
## Customer Metadata
Every time we create a new contribution/recurring contribution we create/update a Stripe customer with the following metadata:
A new Stripe [**Customer**]( is created the first time a contribution is created by them in CiviCRM.
Each time a new contribution is created the Stripe Customer metadata is updated.
The following metadata is created for a Stripe Customer:
* Contact Name, Email address
* Description (`CiviCRM: ` + site name).
* Contact ID
* Link to CiviCRM contact record
![Stripe Customer](/images/stripedashboard_customerdetail.png)
In addition, if you have enabled receipts (see [Setup](/setup)) the email address will be sent to Stripe and used to send a receipt to the contact.
## Release 6.2
* Track paymentIntents and cancel uncaptured ones after 24 hours.
> Configurable via scheduled Job.process_stripe and API.
* Refactor to support updating amount and re-confirming once we reach the thankyou page.
* When we don't know the amount, pre-auth the card but don't confirm, then update the amount requested.
> This resolves, for example, registering multiple participants. Users may receive an additional confirmation step such as 3d secure on the *Thankyou* page if their card issuer requires it.
* Refactor passing of token parameters to use pre_approval_parameters.
> This should resolve some issues with *PaymentIntent not found*.
* Improve support for refunds in preparation for work in CiviCRM core (#15476-15479).
## Release 6.1.6
* Fix [#103]( - Allow submission of drupal webform when there are multiple processors on the page (eg. Stripe + Pay later).
......@@ -7,3 +7,7 @@ In addition to the receipts that CiviCRM can send, Stripe will send it's own rec
If you wish to disable this under *Administer->CiviContribute->Stripe Settings* you can find a setting that allows you to disable Stripe from sending receipts:
* Allow Stripe to send a receipt for one-off payments?
## Cancelling abandoned payment attempts
A scheduled job (Job.process_stripe) automatically cancels abandoned (uncaptured) paymentIntents after 24 hours.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment