API¶
This extension comes with several APIs to help you troubleshoot problems. These can be run via /civicrm/api or via cv api Stripe.xxx
.
The api commands are:
Stripe¶
Stripe.Listevents
:¶
Events are the notifications that Stripe sends to the Webhook. Listevents will list all notifications that have been sent. You can further restrict them with the following parameters:
* `ppid` - Use the given Payment Processor ID. By default, uses the saved, live Stripe payment processor and throws an error if there is more than one.
* `type` - Limit to the given Stripe events type. By default, show invoice.payment_succeeded. Change to 'all' to show all.
* `output` - What information to show. Defaults to 'brief' which provides a summary. Alternatively use raw to get the raw JSON returned by Stripe.
* `limit` - Limit number of results returned (100 is max, 10 is default).
* `starting_after` - Only return results after this event id. This can be used for paging purposes - if you want to retreive more than 100 results.
* `source` - By default, source is set to "stripe" and limited to events reported by Stripe in the last 30 days. If instead you specify "systemlog" you can query the `civicrm_system_log` table for events, which potentially go back farther then 30 days.
* `subscription` - If you specify a subscription id, results will be limited to events tied to the given subscription id. Furthermore, both the `civicrm_system_log` table will be queried and the results will be supplemented by a list of expected charges based on querying Stripe, allowing you to easily find missing charges for a given subscription.
* `filter_processed` - Set to 1 if you want to filter out results for contributions that have been properly processed by CiviCRM already.
Stripe.Populatelog
:¶
This API call will populate your SystemLog with all of your past Stripe Events. You can safely re-run and not create duplicates. With a populated SystemLog - you can selectively replay events that may have caused errors the first time or otherwise not been properly recorded. Parameters:
* `ppid` - Use the given Payment Processor ID. By default, uses the saved, live Stripe payment processor and throws an error if there is more than one.
* `type` - The event type - defaults to invoice.payment_succeeded.
The standard API3 "limit" option is also supported and if specified will limit the total number of events to that limit (default 0).
Stripe.Populatewebhookqueue
:¶
* `ppid` - Use the given Payment Processor ID. By default, uses the saved, live Stripe payment processor and throws an error if there is more than one.
* `type` - The event type - defaults to invoice.payment_succeeded.
The standard API3 "limit" option is also supported and if specified will limit the total number of events to that limit (default 0).
Stripe.Ipn
:¶
Replay a given Stripe Event. Parameters. This will always fetch the chosen Event from Stripe before replaying.
* `id` - The id from the SystemLog of the event to replay.
* `evtid` - The Event ID as provided by Stripe.
* `ppid` - Use the given Payment Processor ID. By default, uses the saved, live Stripe payment processor and throws an error if there is more than one.
* `noreceipt` - Set to 1 if you want to suppress the generation of receipts or set to 0 or leave out to send receipts normally.
Stripe.Retryall
:¶
Attempt to replay all charges for a given payment processor that are completed in Stripe but not completed in CiviCRM.
* `ppid` - Use the given Payment Processor ID. By default, uses the saved, live Stripe payment processor and throws an error if there is more than one.
* `limit` - Limit number of results (25 is default).
Stripe.Cleanup
:¶
Cleanup and remove old database tables/fields that are no longer required.
Import related.¶
Subscriptions¶
When importing subscriptions, all invoice/charges assigned to the subscription will also be imported.
Stripe.importallsubscriptions
- import all subscriptions for a given payment processor.- Parameters:
ppid
: Use the given Payment Processor ID.
- Example
- `drush cvapi Stripe.importallsubscriptions ppid=6
-
Doc
-
Stripe.importsubscriptions
- import some subscriptions for a given payment processor - Parameters:
limit
: Numer of elements to import.ppid
: Use the given Payment Processor ID.starting_after
: Not required, begin after the last subscriber.
- Example
drush cvapi Stripe.importsubscriptions ppid=6 limit=1 starting_after=sub_DDRzfRsxxxx
-
Doc
-
Stripe.importsubscription
- import a single subscription for a given payment processor. - Parameters:
ppid
: Use the given Payment Processor ID.subscription
: the stripe subscription id
- Example
drush cvapi Stripe.importsubscriptions ppid=6 subscription=sub_DDRzfRsxxxx
- Doc
Customers¶
Stripe.importallcustomers
- import all customers for a given payment processor.- Parameters:
ppid
: Use the given Payment Processor ID.
- Example
- `drush cvapi Stripe.importallcustomers ppid=6
-
Doc
-
Stripe.importcustomers
- import some customers for a given payment processor - Parameters:
limit
: Numer of elements to import.ppid
: Use the given Payment Processor ID.starting_after
: Not required, begin after the last customer.
- Example
drush cvapi Stripe.importcustomers ppid=6 limit=1 starting_after=cus_DDRzfRsxxxx
-
Doc
-
Stripe.importcustomer
- import a single customer for a given payment processor. - Parameters:
ppid
: Use the given Payment Processor ID.customer
: the stripe customer id
- Example
drush cvapi Stripe.importcustomers ppid=6 customer=cus_DDRzfRsxxxx
- Doc
Charges¶
Stripe.importcharge
- import a single charge.- Parameters:
ppid
: Use the given Payment Processor ID.
- Example:
drush cvapi Stripe.importcharge ppid=6 charge=ch_DDRzfRsxxxx contact_id=1234
- Stripe doc
StripeCustomer¶
StripeCustomer.get
- Fetch a customer by passing either civicrm contact id or stripe customer id.StripeCustomer.create
- Create a customer by passing a civicrm contact id.StripeCustomer.delete
- Delete a customer by passing either civicrm contact id or stripe customer id.StripeCustomer.updatecontactids
- Used to migrate civicrm_stripe_customer table to match on contact_id instead of email address.StripeCustomer.updatestripemetadata
- Used to update stripe customers that were created using an older version of the extension (adds name to description and contact_id as a metadata field).StripeCustomer.membershipcheck
- Used to look for potential problems and inconsistencies between Stripe and CiviCRM. Does not make any changes.
StripePaymentintents¶
StripePaymentintents.get
¶
It can be used for debugging and querying information about attempted / successful payments.
StripePaymentintents.create
¶
This API is used internally for tracking and managing paymentIntents. It's not advised that you use this API for anything else.
StripePaymentintents.Process
¶
This API is used by the client javascript integration and by third-party frontend integrations. Please contact MJW Consulting if you require more information or are planning to use this API.
Permissions: access Ajax API
+ make online contributions
StripePaymentintents.createorupdate
¶
This API is used by the client javascript integration to create or update the civicrm_stripe_paymentintent
table.
Permissions: access Ajax API
+ make online contributions
Scheduled Jobs¶
-
Job.process_stripe
- this cancels uncaptured paymentIntents and removes successful ones from the local database cache after a period of time: -
Parameters:
- 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 hour"