By following the steps that can be found below, you can set up your side to receive the order in your store.
Please note, this method can only be used if your store is running on your own server with a custom solution.
If your store is using a platform that is supported by Syncee, the orders will be synced automatically when the customers pay for their order in our application.
Before setting up the webhooks on your side, you will need to contact our team to enable this setting for your account. You can request this at the support@syncee.com email address.
When our team enables this for you, you will be able to create a webhook, and your team can use this data to receive the orders.
Overview
This webhook is sent when an order event occurs (new paid order).
Your server must expose an HTTPS endpoint that can receive POST requests with a JSON body.
The webhook delivers:
Order data (items, totals, supplier, buyer account)
Helpful URLs (order page, chat)
Shipping and billing addresses
A signature header for verifying authenticity
HTTP Request
Method: POST
URL: Your registered webhook URL (configured in the platform, Webhooks menu)
Request Headers
Content-Type: application/json
X-Webhook-Signature: {sha256 signature}
A SHA-256 based signature of the request body (and/or additional data), used to verify the webhook came from a trusted source.
Signature Verification
Your endpoint should verify the X-Webhook-Signature header before processing the payload.
Recommended approach (example):
Read the raw request body as a string.
Compute a SHA-256 (typically HMAC-SHA256) hash using your webhook secret (HMAC Key in Webhooks menu) and the raw body.
Compare the computed hash (in hex string format) with the value in X-Webhook-Signature.
If they don’t match, return 401 Unauthorized or 400 Bad Request.
You can adapt the exact implementation based on your language/framework.
Request Body
The payload is a JSON object with the following structure:
{
"order": {
"id": "123456789",
"line_items": [
{
"id": "1001",
"syncee_order_id": "123456789",
"title": "Product Name",
"quantity": 2,
"price": {
"value": "29.99"
},
"img_url": "https://example.com/image.jpg",
"syncee_product_id": "prod_123",
"wsp_price": {
"value": "25.00"
}
}
],
"supplier": {
"id": "500",
"company_name": "Supplier Company",
"contact_email": "supplier@example.com",
"payment_currency": "USD"
},
"shipping_cost": {
"value": "10.00"
},
"shipping_tax": {
"value": "1.00"
},
"tax": {
"value": "5.00"
},
"currency": "USD",
"user_account": {
"id": "100",
"username": "johndoe",
"email": "john@example.com"
},
"payment_transaction_id": "txn_abc123xyz"
},
"chat_url": "https://example.com/chat/order/123456789",
"order_url": "https://example.com/orders/123456789",
"shipping_address": {
"address1": "123 Main Street",
"address2": "Apt 4B",
"city": "New York",
"company": "ACME Corp",
"country": "United States",
"first_name": "John",
"last_name": "Doe",
"phone": "+1234567890",
"province": "New York",
"zip": "10001",
"country_code": "US"
},
"billing_address": {
"address1": "123 Main Street",
"address2": "Apt 4B",
"city": "New York",
"company": "ACME Corp",
"country": "United States",
"first_name": "John",
"last_name": "Doe",
"phone": "+1234567890",
"province": "New York",
"zip": "10001",
"name": "John Doe",
"province_code": "NY",
"country_code": "US",
"eu_vat": "VAT123456",
"tax": "5.00"
}
}
Important note: this can only be used to receive the order data into your store, and can not be used to upload your products to our Marketplace, or access our catalog.
In case you have any questions about the webhook, or you need any assistance, feel free to contact us at support@syncee.com email address or via our in-app chat, which you can access at the bottom right corner.
