Manage external purchase listeners through the API
You can now set up a listener for ClickBank or CopeCart purchases without opening the app. GET and POST /api/v2/workspaces/:workspace_id/webhooks/incoming/external_purchase_endpoints list and create the endpoints, filterable by id, provider and live_mode, and GET, PATCH and DELETE /api/v2/webhooks/incoming/external_purchase_endpoints/:id maintain one. Each endpoint hands you the url to paste into the provider's webhook settings, and suppress_order_system_emails decides whether ClickFunnels emails the buyer about the orders it creates. provider and live_mode are set once, at creation.
Product mappings decide what an incoming purchase actually invoices: GET and POST /api/v2/webhooks/incoming/external_purchase_endpoints/:id/product_mappings, then GET, PATCH and DELETE /api/v2/webhooks/incoming/external_purchase_product_mappings/:id. Map the identifier the provider reports for what was bought to one ClickFunnels variant and price. A purchase whose identifier is not mapped is still recorded, but never becomes an order, so map the product before the first sale you want to invoice.
Retained deliveries are read from GET /api/v2/webhooks/incoming/external_purchase_endpoints/:id/events, which is where you find out what happened, filterable by event_type and processing_status. processing_status and processing_errors say whether a delivery became an order and, when it did not, why. Fetch a single event with GET /api/v2/webhooks/incoming/external_purchase_events/:id to read its raw provider payload.
Signing secrets are no longer all-or-nothing: every endpoint now reports webhook_secret_last_four, so you can tell whether a secret is set and whether it still matches the one you hold. The full value is still returned only in the create response. Outgoing webhook endpoints report it too.
Agent examples: stand up a CopeCart listener, map its product to a price and confirm the first purchase became an order · list an endpoint's skipped events and explain which mapping is missing.
Resources: Webhooks::Incoming::ExternalPurchaseEndpoint
Building with an AI agent? Point it at the External Purchases skill.