Zapier Integration
Connect Swft to 7,000+ apps automatically when orders complete, payments fail, or carts are abandoned.
Events available
Section titled “Events available”| Event | When it fires |
|---|---|
order.completed | A payment succeeds and the order is confirmed |
order.failed | A payment attempt fails |
cart.abandoned | A checkout session expires without payment |
refund.issued | A refund is processed via Stripe |
- Go to zapier.com/apps/swft
- Click Connect Swft
- Enter your merchant API key from the dashboard Settings page
- Choose your trigger event
- Map the fields to your action (Mailchimp, Slack, Airtable, HubSpot, etc.)
Payload fields
Section titled “Payload fields”Every event delivers a payload in this shape:
| Field | Type | Description |
|---|---|---|
event | string | One of order.completed, order.failed, cart.abandoned, refund.issued |
created_at | string | ISO 8601 timestamp |
swft_version | string | Always 1.0 |
merchant_id | string | Your merchant UUID |
data.order_id | string | WooCommerce order number (empty for order.failed) |
data.session_id | string | Swft checkout session ID |
data.customer.email | string | Customer email address |
data.customer.first_name | string | |
data.customer.last_name | string | |
data.customer.phone | string | undefined | |
data.billing_address.line1 | string | |
data.billing_address.city | string | |
data.billing_address.postcode | string | |
data.billing_address.country | string | ISO 3166-1 alpha-2 |
data.shipping_address.line1 | string | |
data.shipping_address.city | string | |
data.shipping_address.postcode | string | |
data.shipping_address.country | string | |
data.items | array | Line items (see below) |
data.subtotal_pence | number | Cart subtotal in minor units |
data.tax_pence | number | Tax in minor units |
data.shipping_pence | number | Shipping cost in minor units |
data.discount_pence | number | Discount applied in minor units |
data.total_pence | number | Order total in minor units |
data.currency | string | ISO 4217 — e.g. GBP |
data.payment_method | string | card, klarna, clearpay, ideal, etc. |
data.coupon_code | string | undefined | First applied coupon code |
data.b2b | object | undefined | Present for B2B orders |
Line item fields
Section titled “Line item fields”| Field | Type |
|---|---|
product_id | string |
name | string |
quantity | number |
price_pence | number |
total_pence | number |
B2B fields (when present)
Section titled “B2B fields (when present)”| Field | Type |
|---|---|
company_name | string |
vat_number | string | undefined |
po_number | string | undefined |
payment_terms | string | undefined |
REST Hooks API
Section titled “REST Hooks API”Zapier uses REST Hooks — it registers a callback URL when a Zap is activated, and unregisters it when turned off. The Swft API endpoints are:
POST /merchants/zapier/subscribe — register a subscriptionDELETE /merchants/zapier/unsubscribe — remove a subscriptionGET /merchants/zapier/sample/:event — fetch a sample payload for testingAll endpoints authenticate via x-swft-api-key header or api_key query param.
Webhook signature verification
Section titled “Webhook signature verification”Every delivery includes an X-Swft-Signature header:
X-Swft-Signature: sha256=<hmac>For Zapier-managed subscriptions the HMAC is unsigned (no shared secret per-subscription). For your primary webhook URL configured in Settings, the HMAC uses your Webhook Secret shown in the Settings page.