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 extensions

How it works

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Orders from an e-shop
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.
Parcel status from a carrier
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

  1. Enter the address

    In the webhook settings of your e-shop or program, enter the address your assistant gave you.

  2. 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.

  3. 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 save
The 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