Quote Checkout Webhook
This webhook is triggered by SalesByte whenever a quote is successfully checked out by a customer (signed or purchased). SalesByte will send a POST request containing detailed information about the checked-out quote to the configured webhook URL in your external system.
Configuration
- URL: Configured by the user in SalesByte's integration settings
- Method:
POST
Purpose
To notify an external system in real-time when a SalesByte quote has been finalized by the customer.
Webhook Payload
SalesByte will send a JSON object in the request body containing detailed information about the checked-out quote.
{
"id": 0,
"quote_profile_name": "string",
"customer_name": "string",
"customer_first_name": "string | null",
"customer_last_name": "string | null",
"customer_company": "string | null",
"customer_phone": "string | null",
"customer_email": "string | null",
"address_firstline": "string | null",
"address_secondline": "string | null",
"address_postcode": "string | null",
"address_city": "string | null",
"custom_fields": {
"Custom Field Label 1": "value",
"Custom Field Label 2": "value"
},
"quote_value": "numeric | null",
"created_at": "string",
"updated_at": "string",
"salesperson": {
"name": "string",
"email": "string"
},
"is_signed": true,
"is_fully_signed": true,
"requires_more_signatures": true,
"is_project_approval_pending": true,
"is_project_approval_signed": true,
"signed_offer": {
"main_document_name": "string",
"main_document_url": "string",
"extra_documents": [
{
"name": "string",
"pdf_url": "string"
}
]
},
"signed_products": {
"original_price_including_vat": "numeric",
"price_including_vat": "numeric",
"discount_including_vat": "numeric",
"currency": "string",
"products": [
{
"sku": "string | null",
"amount": "numeric",
"url": "string | null",
"name": "string",
"original_price_including_vat": "numeric",
"price_including_vat": "numeric",
"original_sum_including_vat": "numeric",
"sum_including_vat": "numeric",
"currency": "string",
"price_unit": "string | null"
}
]
},
"additional_documents_signed": [
{
"name": "string",
"url": "string"
}
],
"additional_documents_requiring_signature": [
{
"name": "string",
"url": "string"
}
],
"statuses": ["string"],
"links": {
"edit": "string",
"customer_view": "string",
"customer_verificate": "string",
"customer_project_approval": "string"
}
}Payload Fields
Basic Information
| Field | Type | Description |
|---|---|---|
id | integer | The unique ID of the quote |
quote_profile_name | string | The name of the quote profile used |
quote_value | numeric | null | The total value of the quote |
created_at | string | Timestamp when quote was created (ISO 8601) |
updated_at | string | Timestamp when quote was last updated (ISO 8601) |
Customer Information
| Field | Type | Description |
|---|---|---|
customer_name | string | The full name of the customer |
customer_first_name | string | null | First name of the customer |
customer_last_name | string | null | Last name of the customer |
customer_company | string | null | Customer's company name |
customer_phone | string | null | Customer's phone number |
customer_email | string | null | Customer's email address |
Address Information
| Field | Type | Description |
|---|---|---|
address_firstline | string | null | First line of verified address |
address_secondline | string | null | Second line of verified address |
address_postcode | string | null | Postcode of verified address |
address_city | string | null | City of verified address |
Salesperson Information
| Field | Type | Description |
|---|---|---|
salesperson.name | string | Name of the assigned salesperson |
salesperson.email | string | Email of the assigned salesperson |
Signature Status
| Field | Type | Description |
|---|---|---|
is_signed | boolean | Quote has at least one signature |
is_fully_signed | boolean | All required signatures collected |
requires_more_signatures | boolean | More signatures still needed |
is_project_approval_pending | boolean | Project approval is pending |
is_project_approval_signed | boolean | Project approval has been signed |
Signed Offer
The signed_offer object contains details about the signed quote option (if applicable):
| Field | Type | Description |
|---|---|---|
main_document_name | string | Name of the main document |
main_document_url | string | URL to the main signed document PDF |
extra_documents | array | Additional documents included in the signed offer |
Signed Products
The signed_products object contains details of signed products if the quote is product-based:
| Field | Type | Description |
|---|---|---|
original_price_including_vat | numeric | Original total price including VAT |
price_including_vat | numeric | Final total price including VAT |
discount_including_vat | numeric | Total discount including VAT |
currency | string | Currency of the product prices |
products | array | Array of signed product details |
Product Object Fields
| Field | Type | Description |
|---|---|---|
sku | string | null | Product SKU |
amount | numeric | Amount of the product |
url | string | null | URL related to the product |
name | string | Product name |
original_price_including_vat | numeric | Original price including VAT per unit |
price_including_vat | numeric | Final price including VAT per unit |
original_sum_including_vat | numeric | Original total sum including VAT |
sum_including_vat | numeric | Final total sum including VAT |
currency | string | Currency of the product |
price_unit | string | null | Price unit (e.g., "pcs") |
Custom Fields
The custom_fields object contains data from custom fields, mapped by label. Up to 10 custom fields that are not disabled will be included.
Links
| Field | Description |
|---|---|
links.edit | URL to edit the quote |
links.customer_view | URL for customer to view the quote |
links.customer_verificate | URL for customer verification |
links.customer_project_approval | URL for customer project approval |
Expected Response
Your external system should respond with an HTTP status code of 200 OK to acknowledge successful receipt of the data.
Any other status code (e.g., 400, 500) will indicate to SalesByte that the delivery failed, and SalesByte may attempt to retry the webhook delivery according to its internal retry policy.
The response body is typically ignored by SalesByte.