> Choose the JSON your server receives after checkout. Configure the request, inspect the response and verify the destination record.

Source: https://plandalf.com/platforms/custom-api

Developer integration

# Send checkout data to your API

Choose the JSON your server receives after checkout. Configure the request, inspect the response and verify the destination record.

[Start your 14-day free trial](https://admin.plandalf.dev/signup)[Setup guide](https://plandalf.com/docs/product-guides/platforms/custom-api)

Requires your own endpoint. Start with a sandbox receiver.

**Stripe**

**Plandalf**

**Custom API**

-   `plandalf.present()`
-   `checkout.completed`
-   `webhook → your API`

Overview

## How Custom API and Plandalf split the work

Plandalf sends the configured request. Your server records the order or performs the next step.

Webhook path available

Add Send Webhook to a checkout sequence and choose the URL, method, JSON payload and headers. The guide shows a real local action test and duplicate handling. A paid-trigger replay and failure recovery remain required before fulfilment goes live.

Custom API owns

-   Your app, login and permissions
-   Granting access in your own database

Plandalf owns

-   Opening the checkout
-   Payment, receipts and subscriptions
-   Telling your backend what was bought

Set it up

## Connect Custom API in three steps

The short version. The Custom API setup guide has the full walkthrough and the test-mode checks.

1.  1
    
    ### Create a paused sequence
    
    Open your test checkout, choose Automation, then New. Check the linked Checkout completed trigger and keep the sequence off during setup.
    
2.  2
    
    ### Configure the request
    
    Add Plandalf → Send Webhook. Set your sandbox URL, POST method and JSON payload. Use only the headers your receiver requires.
    
3.  3
    
    ### Test and reconcile
    
    Run the action test, check the HTTP status and destination record, then replay the same request. Finish with a new sandbox payment and a matching paid invoice.
    
4.  **Also with Promos:** enrol participants from your own code. [Promos docs →](https://plandalf.com/docs/timers/embedded-promos)
5.  [Read the Custom API setup guide →](https://plandalf.com/docs/product-guides/platforms/custom-api)

Plandalf · Automations

![Real local Send Webhook configuration using a synthetic invoice and loopback receiver.](https://plandalf.com/images/integrations/custom-api/webhook-config-desktop.jpg)

## Choose the event and verify the result

Follow the setup for each product, then verify its customer outcome.

Product

Set it up

Verify before launch

[Checkouts →](https://plandalf.com/docs/product-guides/platforms/custom-api#verify-a-paid-checkout)

A paid checkout linked to a sequence.

Provider payment, paid invoice and matching destination record.

[Automations →](https://plandalf.com/docs/product-guides/platforms/custom-api#configure-send-webhook)

Send Webhook with the JSON your receiver expects.

HTTP status, response, durable deduplication and failure recovery.

[Timers / Promos →](https://plandalf.com/docs/product-guides/platforms/custom-api#connect-a-promo)

A separate inbound enrolment workflow and campaign.

Stable participant, deadline and matching checkout price.

[Affiliates →](https://plandalf.com/docs/product-guides/platforms/custom-api#track-affiliate-sales)

Choose Plandalf checkout attribution or the sales API.

Attributed sale, commission, duplicate, refund and renewal.

Local tests reached the receiver, rejected HTTP 503 after a local repair, and recovered to HTTP 200. The repair is not deployed; the complete paid journey remains unverified.

[Read the automation scope →](https://plandalf.com/docs/product-guides/platforms/custom-api#check-failures-explicitly)

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 Custom API and Plandalf

The short answers. The docs have the long ones.

Does Send Webhook automatically sign the request?

No. It sends the payload and headers you configure. The separate webhook endpoint API supplies Plandalf signatures and its own delivery contract.

Does a successful test prove a sale?

An action test can use sample data. Verify a new provider test payment, its paid invoice, the sequence event and your destination record separately.

How do I handle duplicate requests?

Deduplicate in your receiver before creating an order or granting access. Use a durable unique key based on the event, invoice and organization.

Can I test against localhost?

Only when the Plandalf app making the request can reach that local receiver. Hosted accounts need a reachable HTTPS endpoint.

Where should credentials go?

Keep private credentials in an approved vault and use dedicated sandbox access. Headers and test details can display values, so keep them out of guides, screenshots and replay reports.

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.
