Integrations

Connect integration

Changed on

Connects an API-key / webhook-secret integration: polar, paddle, dodo, lemon_squeezy, whop, revenuecat, superwall, creem, chargebee, clerk, posthog, segment, affonso, attio, or sparkloop. Credentials are validated, stored encrypted, and never returned. Lemon Squeezy creates a managed signed webhook when webhookSecret is omitted, or uses a caller-managed secret as fallback. Payment providers queue their initial revenue backfill, except RevenueCat and Superwall, which are webhook-only; Affonso queues its affiliate backfill; PostHog and Segment can optionally import event history. Attio registers its own webhook when inbound mappings are saved, so it takes no webhookSecret. SparkLoop registers its webhook in SparkLoop during connect and receives partner referrals for one publication (providerAccountId, required only when the account has several). Reconnecting replaces stored credentials. OAuth and app-install providers require the dashboard. Requires the integrations:manage scope.

post/integrations/connect

Request

  • Base URL
    https://api.sequenzy.com/api/v1
  • URL
    https://api.sequenzy.com/api/v1/integrations/connect
  • Auth
    HTTP bearer

Request body

provider'polar' | 'paddle' | 'dodo' | 'lemon_squeezy' | 'whop' | 'revenuecat' | 'superwall' | 'creem' | 'chargebee' | 'clerk' | 'posthog' | 'segment' | 'affonso' | 'attio' | 'sparkloop' required

Provider to connect.

webhookSecretstring

Signing secret of the provider webhook. Optional for lemon_squeezy managed provisioning and for sparkloop, and not used by attio; required for other providers. Lemon Squeezy manual secrets use 16-40 characters. For Chargebee, pass username:password. For RevenueCat, pass at least 16 characters: the authorization header value set on the RevenueCat webhook, or its HMAC signing secret. For Superwall, pass the webhook's whsec_ signing secret, the only credential it needs. For Segment, use 16-153 UTF-8 bytes. For SparkLoop, omit it so Sequenzy authenticates deliveries with a secret in the webhook URL it registers, or pass the account's webhook authentication token to verify the SparkLoop-Token header instead.

apiKeystring

Provider API key. Required for polar, paddle, dodo, lemon_squeezy, whop, revenuecat, creem, chargebee, affonso, attio, and sparkloop. RevenueCat uses a secret REST API v2 key with Projects read and Customers read permissions. Attio uses the workspace access token. SparkLoop uses the API key from Settings → Integrations.

providerAccountIdstring

Provider account id: Paddle seller ID, Dodo business ID, Lemon Squeezy numeric store ID, Whop company ID, Creem store ID, or Chargebee site name. Polar resolves it from the API key. RevenueCat resolves its project ID from the API key; pass it only when the key can access several projects. Superwall does not use one. SparkLoop: the publication ID (pub_...), required only when the account has several publications.

Response

Integration connected

successboolean
webhookUrlstring

Provider webhook URL. Lemon Squeezy managed mode installs it automatically; manual mode uses the supplied secret. SparkLoop's is already registered in SparkLoop. Empty for Attio.

webhookProvisioning'managed' | 'manual'

Lemon Squeezy only. Whether Sequenzy manages the provider webhook.

testModeboolean

Lemon Squeezy only. Whether the connected store uses test mode.

revenueSyncQueuedboolean

Payment providers only. Whether the initial revenue backfill was queued.

backfillQueuedboolean

Affonso only. Whether the affiliate backfill was queued.

Example response

{
  "success": true,
  "integration": {
    "provider": "shopify",
    "name": "Shopify",
    "lastSyncSkipped": {
      "records": [
        {
          "reasonCode": "invalid_email_domain",
          "reason": "Invalid domain for \"buyer@example.com\": Domain cannot receive email (no MX records)"
        }
      ]
    }
  }
}

Changes

    • breaking

      the response's body type changed from object to no type for status

    • breaking

      removed the required property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • info

      added the new optional request property /

    • info

      added the new sparkloop enum value to the request property

    • info

      added subschema #2 to the response body allOf list for the response status

    • info

      added the non-success response with the status

    • info

      added the optional property to the response with the status

    • info

      added the new superwall enum value to the request property