Order Fulfillment

Fulfillment webhooks are typically used to send order-specific data to a customer after a checkout is completed. For example generating a license code to activate a piece of software that is sent to the customer after an order.

The response from the fulfillment webhook is emailed to the customer as part of the order process.

Unlike most webhook Alerts, which are sent to a single endpoint defined in your account settings, Fulfillment webhooks are specific to a product or plan.

For one-time products, simply set the fulfillment method to "Server Notification - send a request to your license server or CRM" or “Webhook” during product creation or while editing respectively.

Fulfillment webhooks can also be enabled as a one-off action for subscription plans if enabled on your account. Contact support if you wish to activate this option.

Once enabled, you can open the Webhook Editor, where you should see a page that looks similar to the one below:

On this page, you can fill out the fields to tell us what data to send to your webhook about the order, and in what format, the fields available are:

  • Webhook URL — The URL that we will send the HTTP request to.
  • Request Method — The HTTP request method. (Either GET or POST)
  • Instructions — Some text that will be sent along with the response from your webhook to the customer. Particularly useful for including something like activation instructions along with a license code, for example. You can customize the instructions using the supported HTML tags listed here.
  • Separate Multibuy — For multi-quantity orders, choose whether we send a single webhook request (with a quantity field) or individual webhook requests for each quantity item.
  • Custom Fields — In addition to the standard fields below, you may additionally include custom fields such as the checkout hash, transaction ID, customer email, customer name (if collected) or a static value or message as well. Please note that changes made here (adding or removing fields) will not be reflected in the "Test Webhook" function until you click "Save Changes".

To complete the fulfillment process, your server should respond within 30 seconds with an HTTP 200 status code containing a string value in the response body no larger than 600KB in size, to indicate that you have successfully fulfilled the order. Typically, this would be a license code that you wish to distribute to your customer.

If we receive anything other than an HTTP 200, if there is no response within 30 seconds, or if the response body exceeds 600KB, we will retry the call to your fulfillment URL every 10 minutes for a maximum of 4 times.

If your response contains any character that has a special meaning in Markdown's formatting syntax (but you would like to display it literally), you will need to either:

  • Add a backslash character (\) in front of it. Click here to see a list of characters you can escape.
  • Denote it as a code (see above)