For app owners
Receive events from other systems
Let your e-shop, carrier or another program send news straight into the app: an order, a parcel status or a payment.
Check what you need first
An inbound webhook is an address another system posts news to by itself: an order from your e-shop, a change of parcel status or a paid invoice. The app stores it as a new or changed record and nobody retypes anything.
You need two things. The Webhooks extension on the app (check availability and price in Extensions) and a system that can call an address you give it after an event. In an e-shop or program it is usually called Webhooks or Notifications. If it cannot, Zapier or Make can send the events with a fixed header.
Check app extensionsHow it works
The app gets an address
For each inbound webhook your assistant creates an address and a secret. The secret is shown once, so save it right away.
The sender signs the event
Your e-shop or program adds a signature to the event that can only be made with that secret. The app refuses an event without the right signature.
The app stores it
The data in the event goes into the columns you choose. The write passes the same rules as a form: required fields, checks and limits.
A repeat is not stored twice
When the sender posts the same event again because it got no answer, the app stores it only once.
Ask your assistant
Your assistant sets the webhook up. Tell it where the events come from and what should happen with them. If the sender generates its own secret, give it to the assistant when you ask, so it uses that one instead of making a new one.
In my app [name] add an inbound webhook for e-shop orders. First check that the app has the Webhooks extension. Store an order created event as a new order with its items, taking the order number and e-mail from the event. Never store the same event twice. Tell me the address, the secret and how events are signed so I can set it up in the e-shop.
Add an inbound webhook for the carrier: when a new parcel status arrives, change the status of the order with the same parcel number. The carrier sends the secret in the Authorization header.
What to set in the sender
Enter the address
In the webhook settings of your e-shop or program, enter the address your assistant gave you.
Set the secret and the signature
The assistant tells you which header and which signature the app expects. Enter the secret where the sender’s settings ask for it, and nowhere else.
Choose the kinds of event
Send only the ones you want stored. The app acknowledges and drops the rest, so the sender does not complain.
Try it out
Create a test order or change the status of a test parcel and check the record in the app. Senders usually show whether the last delivery succeeded. Before going live also try an event that should not be stored and a repeated delivery of the same event.
When it does not work
The sender reports error 401
The signature or secret does not match. Check that the sender uses the secret from your assistant and the same header. If the signature matches but the delivery is old, the app refuses it as a repeat; check the sender’s clock.
The sender reports error 400 or 422
The event could not be stored: a value the app requires is missing, or a rule refused it. Tell your assistant the app name and the time of the attempt. Refused events are in the error log under the webhook’s name.
When data does not saveThe order is not in the app, but the sender reports success
It is probably a kind of event the webhook does not take. The rest are acknowledged and dropped. Ask your assistant which kinds of event the webhook accepts.
I lost the secret
It cannot be shown again. Ask your assistant to delete the webhook and create it again, and enter the new secret in the sender.
I want to change the webhook
A change is made by deleting it and creating it again. The secret is then new and has to be entered in the sender.
Safety and limits
The sender has no access to the app or its data. It can only post an event, and the app stores it through one fixed procedure, with its rules. Never send the secret by e-mail or in a chat other than your own assistant.
Only JSON up to 512 kB is accepted. The webhook calls nothing back: status for the sender goes out through outbound webhooks. Payment gateways with their own procedure, such as Comgate or GoPay, cannot be connected this way yet. Card payments through Stripe have their own extension.
Accept card payments
Vibee