> Send checkout, invoice and upsell data to any URL with a Send Webhook step, with your own payload and headers. Start a sequence from your system with a catch URL.

Source: https://plandalf.com/products/automations/webhooks

Automations feature

# Send the sale to  
your own code

Add a Send Webhook step to any sequence and Plandalf posts the order to your URL, with the payload and headers you choose.

[Start your 14-day free trial](https://admin.plandalf.dev/signup)[How it works](#how-it-works)

No credit card required. No coding required.

P**Send Webhook**Step 2 · after Checkout CompletedTested

Webhook URL**https://api.fieldkit.app/hooks/plandalf**

HTTP Method**POST**

Headers**Authorization: Bearer ••••**

Payload

{
  "event": "{{trigger.event\_type}}",
  "invoice": "{{trigger.invoice\_number}}",
  "email": "{{trigger.customer\_email}}",
  "total": "{{trigger.total}}",
  "items": "{{trigger.line\_items}}"
}

200 OK · 182 ms

How it works

## An event in, a request out

A webhook is a step in a sequence, so it runs on any trigger a sequence can start on.

1.  Trigger
    
    ### An event fires
    
    A checkout completes, an invoice is paid or refunded.
    
2.  Send Webhook
    
    ### Plandalf calls your URL
    
    Your method, your headers, a JSON body built from the order.
    
3.  Your app
    
    ### You do the rest
    
    Grant access, write a record, kick off your own job.
    

Set it up

## Out to your app, or in from it

Both directions are built in Automation. There is nothing to register first.

1.  1
    
    ### Start a sequence on the event
    
    Create a sequence with a trigger such as Checkout Completed, Invoice Paid or Upsell Accepted.
    
2.  2
    
    ### Add a Send Webhook step
    
    Set the URL, the method, the JSON payload with fields from the order, and any headers.
    
3.  3
    
    ### Test it and turn it on
    
    Run the step against a sample order, check your endpoint, then switch the sequence to Active.
    
4.  4
    
    ### Going the other way
    
    Use the Webhook Trigger to get a catch URL. Posting to it starts the sequence with your data.
    
5.  [Read the webhook docs →](https://plandalf.com/docs/api/webhooks)

P**Webhook Trigger**Starts this sequence when your system posts to it

Catch URL**https://admin.plandalf.dev/hooks/catch/seq\_8f2…/trg\_31c…**

curl -X POST "$CATCH\_URL" \\
  -H "Content-Type: application/json" \\
  -d '{"email":"harriet@studio.co","plan":"pro"}'

Post once and pick the request as the sample, then map its fields into the next steps.

Details

## Plain HTTP, built your way

No fixed schema to code against. You decide what is sent and how it is checked.

-   ### Your payload
    
    Write the JSON and drop in order fields: email, items, totals, invoice number.
    
-   ### Any method, any headers
    
    POST, PUT, PATCH, GET or DELETE, with the headers your endpoint expects.
    
-   ### Your own auth
    
    Requests are not signed by Plandalf. Add a secret header and check it on your server.
    
-   ### On any trigger
    
    Checkout, invoice, upsell and cart events, or chained after other steps.
    
-   ### Inbound catch URL
    
    Start a sequence from your system or a form tool by posting JSON to it.
    
-   ### Runs on record
    
    Each run of the sequence is listed, so you can see what was sent and when.
    

Works with

## What webhooks pairs with

-   [**Purchase automations**What happens after the sale: access, emails, tags, alerts.](https://plandalf.com/products/automations/purchase-automations)
-   [**Hosted checkout**A checkout link to share, or a button that opens it on your site.](https://plandalf.com/products/checkouts/hosted-checkout)
-   [**Invoices**An invoice for every payment, with receipts in your brand.](https://plandalf.com/products/checkouts/invoices)

[See everything in Automations →](https://plandalf.com/products/automations)

Integrations

## Keep your site. Upgrade how it sells.

Plus a fully documented REST API and webhook layer for whatever’s not in the list.

-   ![Stripe](https://plandalf.com/images/integrations/stripe.svg)
-   ![PayPal](https://plandalf.com/images/integrations/paypal.png)
-   ![Klaviyo](https://plandalf.com/images/integrations/klaviyo.png)
-   ![Mailchimp](https://plandalf.com/images/integrations/mailchimp.png)
-   ![ConvertKit](https://plandalf.com/images/integrations/convertkit.png)
-   ![ActiveCampaign](https://plandalf.com/images/integrations/activecampaign.png)
-   ![MailerLite](https://plandalf.com/images/integrations/mailerlite.png)
-   ![Drip](https://plandalf.com/images/integrations/drip.png)
-   ![Flodesk](https://plandalf.com/images/integrations/flodesk.png)
-   ![Beehiiv](https://plandalf.com/images/integrations/beehiiv.png)
-   ![Customer.io](https://plandalf.com/images/integrations/customer_io.png)
-   ![Postmark](https://plandalf.com/images/integrations/postmark.png)
-   ![SendGrid](https://plandalf.com/images/integrations/sendgrid.png)
-   ![HubSpot](https://plandalf.com/images/integrations/hubspot.png)
-   ![Intercom](https://plandalf.com/images/integrations/intercom.png)
-   ![Kajabi](https://plandalf.com/images/integrations/kajabi.png)
-   ![Teachable](https://plandalf.com/images/integrations/teachable.png)
-   ![Circle](https://plandalf.com/images/integrations/circle.png)
-   ![Ghost](https://plandalf.com/images/integrations/ghost.png)
-   ![MemberPress](https://plandalf.com/images/integrations/memberpress.png)
-   ![Webflow](https://plandalf.com/images/integrations/webflow.png)
-   ![Framer](https://plandalf.com/images/integrations/framer.png)
-   ![Shopify](https://plandalf.com/images/integrations/shopify.png)
-   ![WordPress](https://plandalf.com/images/integrations/wordpress.png)
-   ![Squarespace](https://plandalf.com/images/integrations/squarespace.png)
-   ![Wix](https://plandalf.com/images/integrations/wix.png)
-   ![Next.js](https://plandalf.com/images/integrations/nextjs.png)
-   ![React](https://plandalf.com/images/integrations/react_app.png)
-   ![Vue](https://plandalf.com/images/integrations/vue_app.png)
-   ![Avalara](https://plandalf.com/images/integrations/avalara.svg)
-   ![TaxJar](https://plandalf.com/images/integrations/taxjar.svg)
-   ![Slack](https://plandalf.com/images/integrations/slack.png)
-   ![Zapier](https://plandalf.com/images/integrations/zapier.svg)
-   ![Tolt](https://plandalf.com/images/integrations/tolt.png)

-   [\+ more](https://plandalf.com/integrations "All integrations")

Questions

## Common questions about webhooks

The short answers. The docs have the long ones.

How do I send purchase data to my app?

Create a sequence on a trigger such as Checkout Completed or Invoice Paid and add a Send Webhook step pointing at your endpoint.

Are webhooks signed?

No. Add a secret header in the step and verify it on your server.

Can my system start a Plandalf automation?

Yes. The Webhook Trigger gives you a catch URL. Post JSON to it and the sequence starts with that data.

Are failed calls retried?

Do not rely on it. Make your endpoint idempotent and check the sequence’s runs.

The team

## Built by a team obsessed with conversion.

![Aarogorn](https://plandalf.com/images/faces/aarongorn.png)![Bilbert](https://plandalf.com/images/faces/bilbert.png)![Buildo](https://plandalf.com/images/faces/buildo.png)![Foundo](https://plandalf.com/images/faces/foundo.png)![Legoli](https://plandalf.com/images/faces/legoli.png)

15\+ years testing every pricing model under the sun. Every part of Plandalf comes from a real checkout problem we’ve had to solve ourselves.

[Start your 14-day free trial](https://admin.plandalf.dev/signup)

No credit card required. Nothing to migrate.
