Skip to content

Zapier & Make.com ​

The Genius Checkout Zapier and Make.com apps both talk to the same three REST-hook endpoints. They use the standard Bearer API key — no separate OAuth flow — and emit the same webhook payload shapes documented in Webhooks.

You can also call these endpoints directly from any system that supports the REST-hook pattern (Zapier, Make, Pipedream, n8n, custom integration code).

How Zapier / Make consume the endpoints ​

A REST-hook trigger has three parts:

  1. Subscribe — Zapier POSTs the buyer's target URL when the Zap turns on.
  2. Receive events — Genius Checkout pushes signed webhooks to that URL as events happen.
  3. Unsubscribe — Zapier DELETEs the subscription when the Zap is turned off or deleted.

For initial setup, Zapier shows a "Test trigger" UI that pulls a sample payload from /zapier/sample-payments so the user can map fields without needing a real transaction. Make.com's "Watch events" module works the same way.

Subscribe ​

http
POST /api/v1/zapier/subscriptions
FieldTypeRequiredDescription
target_urlstringYesHTTPS URL Zapier / Make supply. We push events here.
eventstringYesSingle event to subscribe to. See list below.

Supported events ​

EventFires whenCommon Zap pattern
payment.createdA checkout session is initiatedNotify the rep the buyer reached the payment page
payment.completedA payment captures successfullyPost a Slack message, append a Sheets row, create a CRM contact
payment.failedA payment is declined or failsPage the on-call team; auto-email the buyer with a retry link
payment.refundedA refund is issued (full or partial)Update accounting; mark the order refunded in the CRM
subscription.createdA new recurring subscription is set upAdd the subscriber to a drip campaign
subscription.chargedA subscription renewal succeeds (a.k.a. "payment succeeded")Send a thank-you email; update revenue dashboard
subscription.charge_failedA renewal attempt fails (a.k.a. "payment failed")Alert the merchant; mark the subscriber past-due in CRM
subscription.cancelledA subscription is cancelledSend a win-back email; remove the user from premium tier
checkout_session.completedA hosted checkout session is marked completeCapture funnel-completion data

Response (201) ​

json
{
  "id": "whe_zap_abcdef123456",
  "event": "payment.completed",
  "target_url": "https://hooks.zapier.com/hooks/catch/123/abc/"
}

The id is the subscription handle Zapier / Make stores and presents to the unsubscribe endpoint when the Zap is turned off. Internally we model each subscription as a first-class GC webhook endpoint, so merchants can also see the wiring on their Dashboard → Webhooks page.

Unsubscribe ​

http
DELETE /api/v1/zapier/subscriptions/{id}

Returns { "ok": true } on success. 404 if the subscription doesn't exist for the authenticated merchant.

Sample payments (for the "Test trigger" UX) ​

http
GET /api/v1/zapier/sample-payments

Returns up to 3 recent payments for the authenticated merchant, in the same shape as the real webhook payload (id, receipt_number, amount, currency, status, card_brand, card_last4, mode, created_at, metadata).

If the merchant has no transactions yet, we return a single synthetic sample so the Zap-builder UX never stalls on a brand-new account.

bash
curl -H "Authorization: Bearer $GC_API_KEY" \
  https://app.geniuscheckout.com/api/v1/zapier/sample-payments

Putting it together ​

js
// Node — subscribe Zapier to payment.completed events
const sub = await fetch('https://app.geniuscheckout.com/api/v1/zapier/subscriptions', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.GC_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    target_url: 'https://hooks.zapier.com/hooks/catch/123/abc/',
    event: 'payment.completed',
  }),
}).then(r => r.json())

// Later, when the Zap is turned off:
await fetch(`https://app.geniuscheckout.com/api/v1/zapier/subscriptions/${sub.id}`, {
  method: 'DELETE',
  headers: { Authorization: `Bearer ${process.env.GC_API_KEY}` },
})

Webhook payload + signing ​

Events delivered to the Zapier / Make target URL use the standard GC webhook envelope and HMAC-SHA256 signature. See Webhooks → Signature Verification. Zapier's and Make.com's request inspectors expose the X-GC-Signature and X-GC-Timestamp headers if you need to debug a delivery.

What's in the payload (v3) ​

Every payment.completed / payment.failed / payment.refunded event ships the same enriched shape so your Zap can branch on any of these fields:

FieldExampleWhy it matters in a Zap
modelive or testFilter out sandbox traffic from production reports
sourcepayment_link, hosted_checkout, api, woocommerce, give, highlevel, wix, ecwid"Only Slack me on payment_link payments"
origin_domainmystore.myshopify.comBranch by which storefront sent the payment
order_idcs_… (our session id)Cross-reference with checkout_session.completed events
gateway.name / gateway.slugPowerTranz Direct / powertranz_direct"Skip the Zap when the payment came through mpgs_hosted"
payment_link.id / payment_link.title / payment_link.slug / payment_link.urlpl_abc, VIP Onboarding, vip-onboarding, https://app.geniuscheckout.com/pay/vip-onboardingBranch per-link: "Only fire for the VIP-Onboarding link"
payment_method.type / payment_method.card_brand / payment_method.card_last4card / visa / 4242Display "card ending 4242" in the downstream message
customer.id / name / email / phonecust_…, Alex Johnson, [email protected], +1…Pipe into CRM / mailing list
custom_field_responses[][{id, label, type, value}, ...]Map per-form-field values into downstream tools. Fields flagged pii: true carry value: "<redacted>" — design intent.
metadata{ crm_deal_id: …, … }Anything you attached at session creation; survives end-to-end
card_brand / card_last4visa / 4242Same data, flat (kept for back-compat with existing integrations)
created_at2026-06-05T17:32:14+00:00When the transaction was captured
receipt_numberGC-001234Human-friendly reference for downstream emails

The gateway and payment_link blocks are null when not applicable (e.g. payments via direct API don't have a payment_link).

Same enriched shape is also what /api/v1/zapier/sample-payments returns, so Zapier's field-mapper UX exposes every field above when you build a Zap.

Actions (Zaps that do things in Genius Checkout) ​

In addition to triggers (above), Zapier Zaps and Make scenarios can take actions on your Genius Checkout account. All actions use the same Bearer API key and the same /api/v1 endpoints documented elsewhere in these docs.

http
POST /api/v1/payment-links
Authorization: Bearer gc_live_…
Content-Type: application/json

{
  "title": "Invoice INV-1042",
  "amount_type": "fixed",
  "fixed_amount": 12500,
  "currency": "USD",
  "max_payments": 1,
  "expires_at": "2026-07-01T23:59:59Z",
  "metadata": { "crm_deal_id": "DEAL_98213" }
}

Returns the full payment link including the public url. Common Zap pattern: "When a HubSpot deal hits Negotiation, create a payment link and Slack-message the rep."

Every field that's editable in the merchant portal is settable here — subscription_* fields for recurring links, custom_fields for buyer-data capture, branding_overrides, etc. See Payment Links API for the full schema.

Refund a transaction ​

http
POST /api/v1/payments/{payment_id}/refund
Authorization: Bearer gc_live_…
Content-Type: application/json

{
  "amount": 5000,
  "reason": "Customer requested partial refund"
}

Omit amount for a full refund. Returns the refund record. Common Zap pattern: "When a Zendesk ticket is tagged refund-approved, refund the linked GC transaction."

Look up a transaction ​

http
GET /api/v1/payments/{payment_id}
Authorization: Bearer gc_live_…

Returns the full transaction (status, amount, card brand+last4, customer, custom-field responses, gateway, refund history). Useful as a Zap step that pulls fresh data before deciding what to do next — e.g. "Every morning, check the status of yesterday's borderline transactions and post a digest to Slack."

Next ​

  • Webhooks — payload shape, signature header, replay window
  • Rate Limits — Zapier subscribe/unsubscribe falls under the writes tier
  • Payment Links API — the full create-link schema for the "Create payment link" Zap action

Released under the proprietary Genius Checkout license.