help center
  • Introduction
  • Designs
    • Products
    • Design guides
    • Editing designs
    • Personalize (variables)
    • QR codes
    • Branded Links
    • Images
    • Fonts
    • Scaling text
    • Emojis
    • Finishes
    • Colours
    • Coupons
  • Testing
    • Preview
    • Sample Card
  • API
    • API Documentation
    • Authentication and API Keys
    • Example JSON
    • API status codes
    • Address Validation
    • Rate Limiting
    • Idempotency
    • Postman settings
    • CSV automation
    • Webhooks
  • Integrations
    • ActiveCampaign
    • Deployteq
    • HubSpot
    • Klaviyo
    • Laravel
    • Monday
    • Power Automate
    • Shopify
    • AFAS
    • Spotler / Squeezely
    • Zapier
    • Salesforce
    • Microsoft Dynamics 365
    • Odoo CRM
    • Copernica
    • Zoho
  • Mailing
    • Submission
    • Destinations
    • Sustainability
    • Batch
  • Billing
    • Prepaid
    • Invoice
    • Cost centers
  • Support

help center

English
  • Nederlands
  • English
  • Introduction
  • Designs
    • Products
    • Design guides
    • Editing designs
    • Personalize (variables)
    • QR codes
    • Branded Links
    • Images
    • Fonts
    • Scaling text
    • Emojis
    • Finishes
    • Colours
    • Coupons
  • Testing
    • Preview
    • Sample Card
  • API
    • API Documentation
    • Authentication and API Keys
    • Example JSON
    • API status codes
    • Address Validation
    • Rate Limiting
    • Idempotency
    • Postman settings
    • CSV automation
    • Webhooks
  • Integrations
    • ActiveCampaign
    • Deployteq
    • HubSpot
    • Klaviyo
    • Laravel
    • Monday
    • Power Automate
    • Shopify
    • AFAS
    • Spotler / Squeezely
    • Zapier
    • Salesforce
    • Microsoft Dynamics 365
    • Odoo CRM
    • Copernica
    • Zoho
  • Mailing
    • Submission
    • Destinations
    • Sustainability
    • Batch
  • Billing
    • Prepaid
    • Invoice
    • Cost centers
  • Support

Print.one

  • Print.one website

  • Print.one login

  • Terms and Conditions

Copyright © 2024 Print.one - all rights reserved

  • Api
  • Outgoing Webhooks
  • What does a webhook do?
  • Triggers and payloads
  • Timeouts
  • Local testing
  • Triggers
  • Filters
  • Headers
  • Disabling a webhook
  • Validation of requests
  • Verifying requests on the backend

Outgoing Webhooks

With outgoing webhooks, you automatically receive notifications as soon as something changes in Print.one. Your own systems (e.g., a CRM, dashboards, or external software) can therefore respond directly to these updates. Outgoing webhooks are also called HTTP callbacks.

What does a webhook do?

As soon as an event occurs in Print.one, we send an HTTP request to the URL you have set. Your system can read the request and do something with it, such as:

  • Display a status in your dashboard

  • Update a CRM

  • Send an internal notification

Triggers and payloads

There are different types of triggers sent by the Print.one system. These can be found in our API documentation. There you will also find an overview of all available triggers and examples of payloads sent with each trigger.

Timeouts

If your server does not respond within 30 seconds? Then the request expires and is considered failed. It sometimes takes longer than 30 seconds to perform certain actions with webhooks. We therefore recommend processing webhook requests asynchronously. This means that your system first sends back a confirmation, such as a 200 response, so that Print.one knows that the webhook has been received correctly, and only then handles the rest in the background.

Local testing

For local tests, we recommend using httpdump.app for inspecting webhook broadcasts. For building webhook consumers on your development machine, we recommend ngrok.

Setting up webhooks

  1. In the navigation, go to Integrate → Webhooks

  2. Click on Create webhook

  3. Choose the URL, triggers, and any filters

  4. Save the configuration

Triggers

A trigger determines which events cause Print.one to send a webhook to your system. You can select multiple triggers. Each trigger is a separate webhook, and each time a selected event occurs, we send you one webhook.

Filters

Certain triggers support filters to make notifications more specific. If the trigger supports filters, the 'Filters' section will be shown after activating the trigger:

If you set multiple filters, all filters must match before a webhook is sent. Filters can support up to four different 'matchers':

  • equals or not-equals: These check if the property is equal to the specified value → is an exact comparison

  • in or not-in: These check if the property is equal to 1 of the specified values → the value must, or must not, appear in a list

Headers

By default, all webhooks include the following headers:

Headernaam

Waarde

x-webhook-event

trigger-type

x-webhook-hmac-sha256

Webhook signature, used to validate the request

content-type

application/json

user-agent

Print.one Webhook Service

Disabling a webhook

Sometimes you need to disable a webhook, for example, because you need to perform maintenance on the server that receives webhooks or due to other issues. In the configuration, you can pause a webhook and set it to inactive. To do this, uncheck the 'Active' box, and no more requests will be sent to the external server.

Validation of requests

To ensure that a webhook actually comes from us, every webhook is signed with a signature. You can find your webhook secret on the overview page of your webhooks.

You use this secret to:

  1. Calculate the same signature to validate the origin of the request

  2. Check if it matches the signature we send

  3. Confirm whether the request comes from Print.one

Important: do not share your secret with others.

Verifying requests on the backend

To automatically check incoming requests, we offer our JavaScript-library. Are you using a different programming language? Then you can easily replicate the steps.

Previous

« CSV automation

Next

Integrations »

  • What does a webhook do?
  • Triggers and payloads
  • Timeouts
  • Local testing
  • Triggers
  • Filters
  • Headers
  • Disabling a webhook
  • Validation of requests
  • Verifying requests on the backend