Mark order as paid when webhook received
When your bank, invoicing or payment system confirms a payment through your webhook, mark the matching order as paid. Built for bank transfer, invoice and cash on delivery orders that Shopify cannot capture itself.
One trigger from Workflow Webhooks and Shopify's built-in actions, no other app needed.

What it needs
A webhook in Workflow Webhooks with this payload mapping. See Payload mapping and Flow variables.
| Field | What to map to it |
|---|---|
fieldOne |
The order number, for example #1001 |
A call to the webhook then looks like this:
bash
curl -X POST https://<your webhook URL> \
-H "Content-Type: application/json" \
-H "X-Api-Key: <your token>" \
-d '{"orderNumber": "#1001"}'Get the workflow
- Download the
.flowfile attached at the bottom of this page. - In your Shopify admin open Flow, click Import and choose the file.
- Check the steps, then click Turn on workflow.
The file is an export from Shopify Flow itself. Do not edit it by hand; change the workflow in Flow after importing it.
How it works
- Webhook Trigger starts the workflow each time your webhook URL is called and hands it the mapped fields.
- Get order data looks up the order with the query
name:{{fieldOne}}and keeps at most one result. - For each runs once for the order it found, and not at all when no order matches.
- Mark order as paid records the outstanding balance of that order as paid.
Make it yours
- Add a condition on
requestHeadersor a mapped amount field and compare it with the order total before marking it paid. - Add Add order tags after the payment step, for example
paid-by-bank-transfer.
Next steps
- Create your first webhook - create the webhook this workflow listens to.
- Workflow templates - all templates.
- History and troubleshooting - check that the webhook reached Flow.

