Native platform integration

Offer ISFY as a built-in option of your platform. Any merchant, store or brand on your platform enables sales recovery in one click, and every abandoned checkout, failed payment or new lead they generate becomes a phone call from an ISFY agent within seconds.

This guide is for platforms — checkout systems, storefront builders, telehealth and subscription platforms, CRMs, funnel builders, marketplaces and payment processors — that want to integrate ISFY once and make it available to all of their merchants. ISFY already consumes the native webhook formats of more than twenty platforms in production; the patterns below are the same for every one of them.

Integration models

A platform integration has two independent parts: the data path (how events reach us) and the handshake (how a merchant gets connected). Pick one of each.

Data path

ModelHow it worksBest when
Native webhooks Your platform already emits webhooks. We consume your existing format and signature scheme as-is; you change nothing about your payloads. You have a webhook system today. Fastest path for most platforms.
Events API You POST our canonical JSON (four event types, one endpoint) from your webhook triggers. You are building the integration from scratch or prefer a fixed schema.
Feed API You expose a read-only feed and we poll it. Webhooks are impractical on your side.

Handshake

ModelHow it worksMerchant experience
Manual The merchant signs up with ISFY, receives a dedicated endpoint URL from the ISFY portal and pastes it into your webhook settings. Five minutes, no platform work. This is how every integration starts.
One-click connect An "Enable ISFY" action in your platform redirects the merchant to ISFY, and we register the endpoint with you on their behalf. One click. Recommended for a listed / marketplace integration.
Provisioning API Your backend calls our provisioning endpoint when a merchant toggles ISFY on; we return their endpoint and secret and you register the webhook yourself. Invisible. Best when your platform owns the whole settings UI.
Nothing to install, nothing to host. Every model above is an HTTPS exchange. There is no SDK, no library, no fee, and no change to your checkout or your data model.

Native webhooks: we consume your format

If your platform already sends webhooks, the integration is a dedicated ISFY endpoint per merchant that speaks your format. We build and maintain the adapter; you send us what you already send everyone else.

POST {BASE_URL}/webhooks/{platform}/{CONNECTION_ID}/{SECRET}

What we adapt to

Signature schemes we verify

We verify every delivery with a constant-time comparison before anything is processed. Supported out of the box:

SchemeTypical header
HMAC-SHA256 of the raw body, hex or base64 encodedX-{Platform}-Signature, X-Webhook-Signature
Prefixed digests (sha256=…)X-Hub-Signature-256 style
Timestamped signatures (t=…, v1=…) with replay window{Platform}-Signature
HMAC over {timestamp}.{body} with a separate timestamp headerX-Signature + X-Timestamp
Passphrase digests (SHA-512 / SHA-256 over sorted fields)in-body sha_sign style
Secret-in-URL only (no signature)none; the endpoint URL is the credential

If your scheme is not listed, send us your webhook documentation. Adding a scheme is a small, well-trodden change on our side.

Delivery semantics

Event mapping

Whatever your vocabulary, every event maps to one of four things ISFY does. During onboarding we agree the mapping from a list of your event names; the table shows the categories and typical native names.

ISFY categoryTypical native eventsWhat happens
New lead lead.created, contact.created, opt_in, form.submitted Enters the dial queue as a fresh lead.
Abandoned checkout checkout.started, cart.abandoned, order_form.filled, intake.incomplete, checkout_initiated Enters the recovery queue. Highest-value event: an agent calls within minutes. A recovery link, when your platform provides one, is shown to the agent.
Failed payment payment.failed, payment.declined, rebill.missed, invoice.payment_failed, subscription.past_due Enters the payment-recovery queue with the amount at stake.
Sale order.completed, payment.succeeded, subscription.renewed, purchase Completes the earlier lead, records revenue, suppresses further calls, and feeds buyer programmes (upsell, reorder, win-back) where the merchant runs them.
Refund / chargeback order.refunded, charge.disputed Recorded against the order; original paid amount is preserved for reporting.
Everything else step telemetry, page views, tag changes, shipping updates Accepted and stored, never dialed.
Contact fields must be present on the event. A lead is callable only if the delivery carries a phone number (email and name are strongly recommended). If your platform has a privacy mode that strips contact fields from webhooks, the integration must allow merchants to send contact data to ISFY without also sending sensitive or regulated data they do not need to share. See Security & data.

One-click connect

The merchant clicks Enable ISFY inside your platform and is connected without touching webhook settings. The flow is a standard redirect handshake.

  1. Redirect. Your platform sends the merchant to the ISFY connect page:
    GET https://app.isellforyou.com/connect/{platform}
        ?merchant_id={your merchant id}
        &merchant_name={display name}
        &email={merchant contact email}
        &return_url={where to send them back}
        &state={opaque anti-CSRF value}
        &sig={HMAC-SHA256 of the query, partner secret}
  2. Account. The merchant signs in to ISFY or creates an account (pre-filled from the query). Existing ISFY customers are linked, not duplicated.
  3. Provisioning. ISFY creates the merchant's connection and mints their endpoint URL and signing secret.
  4. Registration. One of two ways, agreed during onboarding:
    • ISFY calls your webhook registration API with the endpoint URL, secret and subscribed events, using a partner credential you issue to us; or
    • ISFY redirects back to return_url with state, connection_id, endpoint_url and secret, and your platform stores and registers them.
  5. Done. The merchant lands back in your platform with ISFY shown as connected. The first delivery arrives within seconds of their next event.
Partner credential. The connect flow is signed with a per-platform secret we exchange once during onboarding. It identifies your platform, prevents forged connect requests, and lets us report per-platform results to you. Connect and provisioning endpoints are enabled for your platform slug as part of onboarding.

Provisioning API (server-to-server)

When your platform owns the settings UI and prefers no redirect, your backend provisions the connection directly. One call per merchant.

POST {BASE_URL}/partners/{platform}/connections
Authorization: Bearer {partner token}
Content-Type: application/json

{
  "merchant_id":   "m_10293",          // your stable id, idempotency key
  "merchant_name": "Acme Health",
  "email":         "ops@acmehealth.com",
  "phone":         "+15551234567",     // merchant contact, optional
  "events":        ["checkout.started", "payment.failed", "order.completed"],
  "metadata":      { "plan": "pro", "region": "US" }   // optional, echoed back
}

// 201 Created
{
  "connection_id": "c_8f2a…",
  "endpoint_url":  "https://{BASE_URL}/webhooks/{platform}/c_8f2a…/{SECRET}",
  "signing_secret": "whsec_…",     // use it to sign deliveries, if your platform signs
  "status":        "active",
  "portal_url":    "https://app.isellforyou.com/…"   // merchant's ISFY dashboard
}
CallPurpose
POST /partners/{platform}/connectionsCreate (or return the existing) connection for a merchant. Idempotent on merchant_id.
GET /partners/{platform}/connections/{id}Status, last delivery, verified signature, leads ingested in the last 7 days.
POST /partners/{platform}/connections/{id}/rotateMint a new secret; the previous one stops working immediately.
DELETE /partners/{platform}/connections/{id}Disable. Deliveries return 410 Gone; nothing is deleted on the merchant's ISFY account.

Responses are JSON; errors use conventional status codes with a machine-readable error.code. The partner token is issued during onboarding, scoped to your platform, and rotatable on request.

Merchant lifecycle

MomentYour platformISFY
Merchant enables ISFY Connect redirect or provisioning call. Connection created, endpoint registered, merchant sees a dashboard.
First events arrive Nothing. Signature verified, vocabulary confirmed, first leads dialed. Both sides can see the delivery log.
Sale recovered Optional: receive an outcome writeback (see below). Recorded as revenue on the merchant's dashboard, attributed to your platform.
Merchant disables ISFY Delete call, or unregister the webhook. Deliveries stop; the merchant's data and history remain in their ISFY account.
Secret compromised Rotate call, or tell us. New secret minted, old one revoked immediately.

Outcome writeback (optional)

Platforms that want results inside their own product can receive them. When an ISFY agent reaches a lead, books an appointment or recovers a sale, we can push the outcome to your platform as a tag, note, status change or webhook, using your API. This is agreed per platform during onboarding and is already live with several partners.

Testing

Go-live checklist

  1. You send us: your webhook documentation (or one sample payload per event), your signature scheme, and which handshake model you want.
  2. We build the adapter for your format and confirm the event mapping with you. Typical turnaround is days, not weeks.
  3. We exchange partner credentials (connect signing secret or provisioning token).
  4. Pilot with one merchant: connect, fire one event of each category, confirm each landed end-to-end.
  5. Listing. ISFY appears in your integrations directory, marketplace or settings page. We supply copy, logo and a merchant-facing setup guide.

Then we're live: any merchant on your platform enables ISFY in one click, and every event becomes a phone call from an agent within seconds.