Data Flow
How to set up webhook in the Stripe Dashboard
Go to Developers > Webhooks > Add endpoint.
When the Add endpoint is clicked, the image below will be shown
Expected Stripe Objects
Charge
Invoice
Payouts
You must select what event to listen to for the selected object. Each object has different events, so carefully select what is only needed → as much as possible do not select all events available.
Invoices
Fundraising Extension uses invoices for gift transaction scheduled payments. PosiPayments needs to have a facility to listen to any invoice events.
The payload is sent out to salesforce from the stripe webhook.
Invoice payments can:
Request payment on specific future dates Automatically charge a payment
Enable the following events on the invoice object:
1. invoice.created
2. invoice.payment_failed
3. invoice.payment_succeeded
Payouts
After the payment, several things can happen. If the payment succeeds normally, you can focus on payout options from Stripe, sending email receipts, and triggering workflows to fulfill the customer’s order. When it’s more complicated, Stripe provides guidance for things like declined cards, refunds, disputes, and fraud. More about payouts here
How to configure payouts on your dashboard
Go to Balances and click Manage. See the sample screenshot below.
When the Manage payout schedule is clicked, a user can select either manual or automatic.
More details about the payout schedule are here.
Gateway Event Mapping (Stripe → Salesforce)
Gateway Invoice Field | Response Field | Notes |
Event ID | id (Event) |
|
Raw Request |
| Full JSON body |
Webhook Event Object |
data.object.object |
|
Gateway Account |
data.object.metadata.gateway_id |
|
Gateway Transaction Mapping (Stripe → Salesforce)
Gateway Invoice Field | Response Field | Notes |
---|---|---|
Payment Intent ID | data.object.charges.data.payment_ intent |
|
Charge ID | data.object.latest_charge |
|
Balance Transaction ID |
data.object.charges.data.balance_ transaction |
|
Amount |
data.object.amount |
|
Transaction Currency |
data.object.currency |
|
Payment Type | data.object.charges.data.payment_ method_details.type | If the type is “card”, the Payment Type is set to “Cards”. If the type is “au_becs_debit”, the Payment Type is set to “Bank Debits”. |
Transaction Status |
data.object.status | If the status is “succeeded”, the Transaction Status is set to “Success”. If the status is “processing”, the Transaction Status is set to “Pending”. Otherwise, Transaction Status is set to “Failed”. |
Payment Date | created |
|
Decline Code |
data.object.last_payment_error.de cline_code |
|
Result Code | data.object.last_payment_error.co de |
|
Result Message | data.object.last_payment_error.me ssage |
|
Gateway Invoice Mapping (Stripe → Salesforce)
Gateway Invoice Field | Response Field | Notes |
Invoice ID | data.object.id (Event) |
|
Payment Intent ID |
data.object.payment_intent |
|
Amount Paid |
data.object.amount_paid |
|
Invoice Status |
data.object.status | If the status is “paid”, the Invoice Status is set to “Paid”. |