Overview

We have many custom syncs to handle the integration with various point of sales systems. This specification details our Generic Webhook which can be made available for Third Party integrations who have the ability to send order details via a webhook.

Approach

Yellow Dog Inventory will provide a webhook URL for Third Parties to send data and configure a secondary application to read and process data captured via the webhook.

Sync Frequency

The Third Party will control the frequency at which sales are provided to Yellow Dog. Our secondary application to process will be scheduled hourly at default with additional configuration options avaialble.

Requirements

POS Partner

In order to use the Generic Webhook the following is preferred (additional options can be discussed):

  • Data supplied to the webhook must be the full order payload

    • This approach does not support Yellow Dog having to reach back to another API to get order detail

  • The webhook must send the payload in the body of the request

  • The webhook must use the POST method in the request

  • The webhook must have an unique ID per customer

    • This allows for mulit-instance support

  • The webhook order data must have an unique order id and a date that we can reference to pull unprocessed orders as needed

Yellow Dog

Yellow Dog will provide the following:

  • Webhook URL

  • Third Party Secret Key (used for configuring the URL)

Configuration

Our Generic Sales Webhook supports multiple orders sent in a single payload

Data

The following lists required data:

  • orderKeyTokenPath - path to the unique order it to be used as the OrderKey example: ‘check_id’

  • orderDateTokenPath - path to the date field to be referenced when pulling orders for processing example: ‘modified_date’

The following lists optional data:

  • ordersTokenPath - OPTIONAL - use when the order data is presented in array.

  • orderTokenPath - OPTIONAL - use when the order data is a single JSON Object.

  • orderLocationTokenPath - OPTIONAL - used to identify revenuecenter/locationid of the order - it not provided a value of 0 will be used

Note: if ordersTokenPath and orderTokenPath are blank we assume the root is in the order data itself.

Sample Order Payload

Sample Order Payload

Limitations