Newer
Older
This extension comes with several APIs to help you troubleshoot problems. These can be run via /civicrm/api or via `cv api Stripe.xxx`.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#### `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.
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
### 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 doc](https://stripe.com/docs/api/subscriptions/list)
* `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 doc](https://stripe.com/docs/api/subscriptions/list)
* `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
* [Stripe doc](https://stripe.com/docs/api/subscriptions/list)
#### Customers
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
* `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 doc](https://stripe.com/docs/api/customers/list)
* `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 doc](https://stripe.com/docs/api/customers/list)
* `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
* [Stripe doc](https://stripe.com/docs/api/customers/list)
#### 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](https://stripe.com/docs/api/charges/list)
* `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).
#### `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.
#### `StripePaymentintents.Process`
This API is used by the client javascript integration and by third-party frontend integrations.
Please contact [MJW Consulting](https://mjw.pt/stripe) 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"