Zapier
Start Zaps from referrals, commissions and payouts, and create partners, links and conversions from any app, using REST hooks and your own API key.
The Referalli app for Zapier connects with your own API key. Its triggers are instant: when a Zap turns on, Zapier subscribes a REST hook, and Referalli sends each event to it as it happens.
Connect
In Referalli, open Settings → API keys and create a key. A full key works, or a custom key with the scopes your Zaps use (
integrations:writeto subscribe triggers, pluspartners:write,links:write,billing:writeorreferrals:writefor the actions).In Zapier, add the Referalli app and paste the key. If your Referalli runs on your own domain, enter it as Referalli URL.
Zapier checks the key with GET /v1/me, which answers for an API key with the key and its org:
{ "user": null, "memberships": [], "apiKey": { "id": "key_…", "name": "Zapier", "scopes": ["full"] }, "org": { "id": "org_…", "name": "Acme" } }Triggers
Trigger | Event |
|---|---|
New Referral |
|
Commission Earned / Reversed |
|
Commission Settled as Credit |
|
Payout Sent / Failed |
|
Partner Applied / Enrolled / Approved |
|
Deal Registered |
|
Fraud Case Opened |
|
Each event arrives as one flat item: the event's fields (the same as in webhooks), plus id (the event id), event and createdAt.
{ "id": "evt_01J…", "event": "referral.created", "createdAt": "2026-10-22T12:00:00.000Z",
"referralId": "ref_01J…", "programId": "prg_01J…", "partnerId": "ptr_01J…", "customerRef": "cus_123", "matchedVia": "coupon", "status": "active" }Actions and searches
Action | What it calls |
|---|---|
Create or Update Partner |
|
Create Tracked Link |
|
Record Conversion |
|
Attribute Signup |
|
Find Partner |
|
The REST-hook API
You don't call these yourself; the Zapier app does. They're documented for other automation tools.
Call | Body | Response |
|---|---|---|
|
|
|
| none |
|
| none | The subscribed hooks. |
| none | The latest events of that kind, newest first, in the delivery shape. Always a plain array. |
| none | The event names a hook can subscribe to. |
Each delivery is a POST of one item to target_url. A 2xx answer means delivered. A 410 Gone unsubscribes the hook, which is what Zapier answers once a Zap is off. Any other failure is retried with exponential backoff (30 seconds, doubling, at most 6 hours between tries) for 3 days. Settings → Integrations lists recent deliveries, and failed ones can be retried there.
Record a conversion
POST /v1/zapier/conversions reports a payment, or a refund, through your generic billing connection, so the partner who referred the customer earns their commission. No signature is needed, because the API key authenticates it.
{ "providerEventId": "pay_123", "customerRef": "cus_123", "amountMinor": 4900, "currency": "usd", "type": "invoice_paid" }Field | Required | Meaning |
|---|---|---|
| yes | Unique per payment. Resending the same id returns |
| yes | The id you attributed the customer under at signup. |
| yes | Integer minor units: 4900 means $49.00. The Zapier action converts "49.00" for you. |
| no | Defaults to |
| no |
|
| no |
|
| no | A specific generic connection. Defaults to the org's first active one. |
Create the generic connection once, with POST /v1/billing/connections {"provider": "generic", "name": "Zapier"}. Without one, the call returns 400 create a generic billing connection first.