Skip to content

Give Plugin

The Genius Checkout for Give plugin accepts donations on Give forms through Genius Checkout. It uses only the public /api/v1/* endpoints — there is no Give-specific surface on the GC backend.

Install

  1. Download the plugin zip from your merchant dashboard.
  2. WordPress admin → Plugins → Add New → Upload Plugin → upload, activate.
  3. Give itself must be installed and active first — the plugin shows a yellow admin notice and stays inert if it isn't.

Configure

Give admin → Donations → Settings → Payment Gateways → Genius Checkout:

SettingValue
API Keygc_test_… or gc_live_… from your GC dashboard
Webhook SecretSame value you set on GC Dashboard → Developers → Webhooks
API Base URLLeave default (https://app.geniuscheckout.com); override only for staging

Then in the GC dashboard, set the webhook endpoint URL to:

https://your-wp-site.example.com/gc-give-webhook

Subscribe the endpoint to at least: payment.completed, payment.failed, payment.refunded, payment.voided.

Donation flow

  1. Donor fills a Give form and selects Credit / Debit Card (the GC method).
  2. On submit, the plugin creates a checkout session via POST /api/v1/checkout-sessions and 302-redirects the donor to the GC hosted checkout.
  3. Donor completes payment (3DS handled by GC). They return to the Give success page.
  4. GC POSTs payment.completed to /gc-give-webhook. The handler marks the donation Complete and records the gateway transaction id on the donation.

Supported features

CapabilityStatus
Refunds (full + partial)Yes
TokenizationYes — every successful donation auto-creates a token
Recurring donations (subscriptions)Yes — verified live across multiple renewal cycles
Localized buyer decline messagesYes — en/es/fr/pt-BR

Refunds

Give admin → donation detail → Refund. The plugin calls POST /api/v1/payments/{transaction_id}/refund with the donation amount. Refund posts back via payment.refunded webhook and updates the donation status.

Webhook security

Every inbound webhook is signed by GC with HMAC-SHA256 over {timestamp}.{body} (hex) in the X-GC-Signature header, with a 5-minute replay window enforced against X-GC-Timestamp. See Webhooks → Signature Verification.

Troubleshooting

  • Donation stuck in Pending — confirm the webhook URL is reachable and the secret matches between WP and the GC dashboard.
  • Refund button missing — only appears for donations with a recorded gateway transaction id (set on payment.completed webhook arrival).
  • Recurring renewals not firing — check that the donor's payment token is active in your GC dashboard. Cancelled tokens won't renew.

Architectural rule

The Give plugin uses only POST /api/v1/checkout-sessions, POST /api/v1/payments/{id}/refund, and the standard payment-event webhooks. There are no Give-specific routes on the platform. Any future donation platform that integrates with us follows the same pattern.

Released under the proprietary Genius Checkout license.