Post-purchase web SDKs
Offer a branded impact experience after payment using ekko’s post‑purchase SDKs. ekko renders the components server‑side, and the SDK provides a simple way to drop them into your confirmation flow.
See our post-purchase SDKs in action at https://pwa.ekko.earth/
When to use
- You want a hosted impact experience
- You prefer ekko to process the compensation/ contribution payment separately from the main payment
- You need fast time to value with low engineering effort
Options at a glance
| Option | Placement in journey | Effort | Best for |
|---|---|---|---|
| Full page takeover SDK | Between payment complete → order confirmation | Medium | A focused, immersive impact journey |
| Embedded SDK | Inside your existing confirmation page | Medium | A native‑feeling module within your own layout |
How they work (shared flow)
-
Create a brand. Use
POST /organisations/brand/onboardingto create a brand and get aproductId. -
Create an ImpactPay session. Your backend calls
POST /impactpay/sessionswith order context and merchant details. You receive animpactPaySessionIdand a short-livedclientSecretto initialise the SDK. -
Initialise the SDK on the client. Pass the
clientSecretto the SDK to authenticate the session. ekko server-side renders the component. -
Customer reviews and contributes. Customers see their footprint, learn more about projects, and can make a contribution using ekko’s hosted payment page.
-
Set up webhooks. To keep your systems in sync, ekko provides webhook events for post-purchase payments:
IMPACT_PAYMENT→ fired when a contribution payment is successfully processedIMPACT_PAYMENT_REVERSAL→ fired when a processed payment is refunded or voided
-
Records and reconciliation. Compensations, contributions and any reversals appear in Impact Records. Since ekko processes the payment, settlement shows
fundsFlow = receivablefor the client’s service fee share.
What’s shared across both SDKs
- Server-side rendered content and visuals that stay up to date as we apply new learnings and local insights - without you needing to make changes
- Short‑lived
clientSecretfor secure initialisation - Resilience features so existing confirmation pages remain usable if the SDK fails to load
Updated 7 months ago
